Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Não há OnStart() nas EA's, mas entendi o que você quis dizer. Entretanto, o OP mesmo em resposta aos seus comentários disse e cito:
Sim, eu quis dizer OnTick(). Você ainda está atribuindo demasiada importância ao "enquanto a EA estiver funcionando". Isso não significa necessariamente, ou mesmo o mais plausível, "enquanto a EA estiver executando seu OnTick()", ao invés de "enquanto a EA estiver anexada a um gráfico, ou seja, durante toda sua vida útil".
Precisamos de mais informações do paranoyakX.
Sim, eu quis dizer OnTick(). Você ainda está atribuindo demasiada importância ao "enquanto a EA estiver funcionando". Isso não significa necessariamente, ou mesmo o mais plausível, "enquanto a EA estiver executando seu OnTick()", em vez de "enquanto a EA estiver anexada a um gráfico, ou seja, durante toda sua vida útil".
Precisamos de mais informações do paranoyakX.
Oi, pessoal,
deixe-me esclarecer isto. Meu código está procurando um padrão muito básico nas barras anteriores e decidirei se um pedido será aberto, mas a abertura de um novo pedido será verificada somente quando uma nova barra surgir. o que eu quero dizer é que estou esperando a última barra fechar, então verifique o padrão se está tudo bem, eu abrirei o pedido. então a abertura de um pedido está acontecendo na abertura de uma nova barra. como @jjc disse, estou mantendo informações básicas do padrão em variáveis globais, como quando meu padrão começou e terminou, qual é o valor mais alto e mais baixo, etc.
De alguma forma, se eu tiver que executar EA novamente, quero encontrar essas informações básicas novamente (barra de início e fim de padrão, preço mais alto, mais baixo etc.) e preencher minhas variáveis globais novamente, é por isso que eu preciso disso. Vou usar as informações de início e fim para decidir quando fechar meu pedido. portanto, é suficiente se uma nova barra não surgir no OnInit, enquanto a EA estiver funcionando, não é um problema.
Sim, eu quis dizer OnTick(). Você ainda está atribuindo demasiada importância ao "enquanto a EA estiver funcionando". Isso não significa necessariamente, ou mesmo o mais plausível, "enquanto a EA estiver executando seu OnTick()", ao invés de "enquanto a EA estiver anexada a um gráfico, ou seja, durante toda sua vida útil".
Precisamos de mais informações do paranoyakX.
Oi, pessoal,
deixe-me esclarecer isto. Meu código está procurando um padrão muito básico nas barras anteriores e decidirei se um pedido será aberto, mas a abertura de um novo pedido será verificada somente quando uma nova barra surgir. o que eu quero dizer é que estou esperando a última barra fechar, então verifique o padrão se está tudo bem, eu abrirei o pedido. então a abertura de um pedido está acontecendo na abertura de uma nova barra. como @jjc disse, estou mantendo informações básicas do padrão em variáveis globais, como quando meu padrão começou e terminou, qual é o valor mais alto e mais baixo, etc.
De alguma forma, se eu tiver que executar EA novamente, quero encontrar essas informações básicas novamente (barra de início e fim de padrão, preço mais alto, mais baixo etc.) e preencher minhas variáveis globais novamente, é por isso que eu preciso disso. Vou usar as informações de início e fim para decidir quando fechar meu pedido. portanto, é suficiente se uma nova barra não surgir no OnInit, enquanto a EA estiver funcionando, não é um problema.
Você NÃO deveria estar fazendo tudo isso no OnInit(). Você deveria estar fazendo toda essa lógica (incluindo a recuperação) no OnTick(). Isto é importante! Fazê-lo no OnInit() lhe causará mais problemas que você não previu e deixará sua EA em um estado de "inicialização" enquanto você estiver fazendo toda essa lógica. Portanto, faça-o corretamente! Faça apenas sua inicialização (tais como variáveis, verificações de parâmetros externos, etc.) no OnInit() e tudo mais no OnTick().
Não, não, não! Eu não consegui explicar o quanto lamento, estou administrando tudo no OnTick. mas simplesmente verifiquei se este carrapato pertence a um novo bar e faço meu pessoal. O que eu corro no OnInit é, reencontrar as ordens e o padrão que eu calculei antes, recalculá-lo. Eu disse que isto está rodando no OnInit, encontrei meu padrão a que a ordem atualmente aberta pertence.
Espero poder explicar.
Não, não, não! Eu não consegui explicar o quanto lamento, estou administrando tudo no OnTick. mas simplesmente verifiquei se este carrapato pertence a um novo bar e faço meu pessoal. O que eu corro no OnInit é, reencontrar as ordens e o padrão que eu calculei antes, recalculá-lo. Eu disse que isto está rodando no OnInit, encontrei meu padrão a que a ordem atualmente aberta pertence.
Espero poder explicar.
Sim, eu entendi isso em seu posto! O que estou dizendo é NÃO FAÇA isso no OnInit(). Você deve encontrar suas ordens e padrões e todo esse cálculo no OnTick().
Basta definir uma variável estática local no OnTick() e fazer toda a sua verificação e definição de padrões, e então definir a variável como falsa.
Sim, eu entendi isso em seu posto! O que eu estou dizendo é NÃO fazer isso no OnInit(). Você deve encontrar suas ordens e padrões e todo esse cálculo no OnTick().
Basta definir uma variável estática local no OnTick() e fazer toda a sua verificação e definição de padrões, e então definir a variável como falsa.
Desculpe então, eu o entendi mal antes. Por que eu não faço isso no OnInit ? Não é mais conveniente? Quando eu faço isso, para cada tick depois do primeiro, eu estarei correndo e se a declaração não for verdadeira todas. Pensei que o código era carregado desnecessariamente.
não é a razão pela qual o OnInit existe, para inicializar algo como minhas variáveis globais ?
Espero poder explicar.
Creio que precisamos ver algum código para ter certeza do que você está falando. Por exemplo, não está claro se você está procurando o padrão histórico que gerou um comércio aberto existente porque (a) que lhe diz como administrar o comércio aberto, onde/quando fechá-lo etc, ou (b) apenas para desenhar alguns marcadores no gráfico explicando a você mesmo porque o comércio existente foi aberto.
Eu geralmente concordo com a FMIC que você deve tentar fazer o máximo possível em OnTick(), e manter o menor estado possível em variáveis globais.
Desculpe então, eu o entendi mal antes. Por que eu não faço isso no OnInit ? Não é mais conveniente? Quando eu faço isso, para cada tique depois do primeiro, eu estarei correndo e se a declaração não for verdadeira a cada tique, eu estarei correndo. Pensei que o código era carregado desnecessariamente.
não é a razão pela qual o OnInit existe, para inicializar algo como minhas variáveis globais ?
obrigado pelo conselho, aqui está uma versão muito simples do meu código, este não é meu código real, mas espero que isto seja mais claro.
como eu disse que este não é o código real, encontrar padrão etc. é apenas um exemplo. a razão pela qual abri este tópico é a função DetectExistingPattern()