Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1392

 

Saudações. Você pode me dar uma dica?

Se entendi corretamente, a execução do OnTick() ocorre quando um novo tick chega e desde que a execução (após o tick anterior) já esteja concluída.

Daí a pergunta: que tempo de execução doOnTick() é considerado normal e o que já é um longo tempo?

 
E outra pergunta: o Expert Advisor tem um algoritmo comercial e um projeto gráfico. É possível organizar a prioridade do comércio algorítmico sobre o projeto visual? E se sim, como?
 
Andrey Sokolov:

Saudações. Você pode me dar uma dica?

Se entendi corretamente, a execução do OnTick() ocorre quando um novo tick chega e desde que a execução (após o tick anterior) já esteja concluída.

Daí a pergunta: que tempo de execução daOnTick() é considerado normal e que tempo já é longo?

Depende da ferramenta. Se houver apenas 3-5 milissegundos entre os carrapatos, a execução do OnTick() não deve ser mais longa. E existem tais ferramentas onde o tique é atrasado até 1 segundo ou até mais.

 
Andrey Sokolov:
E outra pergunta: meu consultor especializado tem algoritmos de comercialização e visualização gráfica. É possível organizar a prioridade dos algoritmos de negociação sobre o projeto visual? E se sim, como?

Este projeto visual muda a cada tique? É suficiente inseri-lo no OnInit()?

 
Alexey Viktorov:

Este projeto visual muda a cada tique? Talvez seja o suficiente para inseri-lo no OnInit()?

Há diferentes contagens no painel e objetos no gráfico que mudam.


Se no momento da execução do OnTimer() ocorrer um novo tick, o que é executado e em que ordem?

 
Andrey Sokolov:

Há diferentes contagens no painel e objetos no gráfico que mudam.


Se um novo tick ocorrer enquanto OnTimer() estiver funcionando, o que está feito e em que ordem?

Por ordem de chegada, por ordem de chegada
 
MakarFX:
Em ordem de prioridade

Se não for um segredo, posso obter um link para a fonte da informação?

Há algumas dúvidas de quea OnTick() será executada neste caso.

 
Andrey Sokolov:

Se um novo tick ocorrer durante a execução do OnTimer(), o que e em que ordem ele é executado?

não em nenhuma ordem

se um novo evento ocorrer durante cálculos complexos dentro da função OnTimer() ou OnTick(), ele será pulado

procurar através do fórum "tick skipping" deve encontrar uma discussão e os administradores têm escrito repetidamente sobre isso

a propósito, no MT4 para sincronização com novos dados de tick havia RefreshRates() - talvez até na ajuda sobre esta função haja uma menção de tick skipping

 
Andrey Sokolov:

Se não for um segredo, posso obter um link para a fonte da informação?

Há algumas dúvidas de quea OnTick() será executada neste caso.

Andrey Sokolov:

Há diferentes contagens no painel e objetos no gráfico que mudam.

Se um novo tick é executado durante o OnTimer(), o que é executado e em que ordem?

Se houver OnTimer() tudo o resto é enfileirado, exceto o novo OnTimer() - ele é pulado.

Eu tive uma situação semelhante e coloquei OnTimer() antes de OnTick() e corri EventSetMillisecondTimer(100).

Finalmente eu resolvi meu problema.

 

Igor Makanu, MakarFX, qual de vocês está certo? Vamos tentar encontrar a descrição e descobrir. Já o vi uma vez, mas não consigo encontrá-lo o dia todo.


Outra dica, por favor: se houver mais de uma EA no terminal, em que ordem eles processarão os carrapatos, se seu processamento levar mais tempo do que uma pausa entre os carrapatos?