Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1392

 

Saludos. ¿Puedes darme una pista?

Si he entendido bien, la ejecución de OnTick() se produce cuando llega un nuevo tick y siempre que la ejecución (después del tick anterior) ya haya terminado.

De ahí una pregunta: ¿qué tiempo de ejecución deOnTick() se considera normal y cuál es ya un gran tiempo?

 
Y otra pregunta: el Asesor Experto tiene un algoritmo de negociación y un diseño gráfico. ¿Es posible organizar la prioridad del comercio algorítmico sobre el diseño visual? Y si es así, ¿cómo?
 
Andrey Sokolov:

Saludos. ¿Puedes darme una pista?

Si he entendido bien, la ejecución de OnTick() se produce cuando llega un nuevo tick y siempre que la ejecución (después del tick anterior) ya haya terminado.

De ahí la pregunta: ¿qué tiempo de ejecución deOnTick() se considera normal y qué tiempo es ya largo?

Depende de la herramienta. Si sólo hay 3-5 milisegundos entre ticks, la ejecución de OnTick() no debería ser más larga. Y hay herramientas de este tipo en las que el tick se retrasa hasta 1 segundo o incluso más.

 
Andrey Sokolov:
Y otra pregunta: mi Asesor Experto tiene trading algorítmico y visualización gráfica. ¿Es posible organizar la prioridad de los algoritmos de negociación sobre el diseño visual? Y si es así, ¿cómo?

¿Cambia este diseño visual en cada tic? ¿Es suficiente con insertarlo en OnInit()?

 
Alexey Viktorov:

¿Cambia este diseño visual en cada tic? ¿Tal vez sea suficiente con insertarlo en OnInit()?

Hay diferentes cuentas en el panel y objetos en el gráfico que cambian.


Si en el momento de la ejecución de OnTimer() se produce un nuevo tick, ¿qué se ejecuta y en qué orden?

 
Andrey Sokolov:

Hay diferentes recuentos en el panel y objetos en el gráfico que cambian.


Si se produce un nuevo tick mientras se ejecuta OnTimer(), ¿qué se hace y en qué orden?

Por orden de llegada
 
MakarFX:
Por orden de prioridad

Si no es un secreto, ¿puedo obtener un enlace a la fuente de información?

Hay algunas dudas de queOnTick() se ejecute en este caso.

 
Andrey Sokolov:

Si se produce un nuevo tick durante la ejecución de OnTimer(), ¿qué y en qué orden se ejecuta?

no en cualquier orden

si se produce un nuevo evento durante los cálculos complejos dentro de la función OnTimer() o OnTick(), se omitirá

busque en el foro "tick skipping" debería encontrar una discusión y los administradores han escrito repetidamente sobre ello

por cierto, en MT4 para la sincronización con los nuevos datos de los ticks existía RefreshRates() - tal vez incluso en la ayuda sobre esta función hay una mención a la omisión de ticks

 
Andrey Sokolov:

Si no es un secreto, ¿puedo obtener un enlace a la fuente de información?

Existe la duda de queOnTick() se ejecute en este caso.

Andrey Sokolov:

Hay diferentes cuentas en el panel y objetos en el gráfico que cambian.

Si se ejecuta un nuevo tick durante OnTimer(), ¿qué se ejecuta y en qué orden?

Si hay OnTimer () todo lo demás se pone en cola excepto el nuevo OnTimer() - se salta.

Tuve una situación similar y puse OnTimer() antes de OnTick() y ejecuté EventSetMillisecondTimer(100).

Por fin he resuelto mi problema.

 

Igor Makanu, MakarFX, ¿quién tiene razón? Intentemos encontrar la descripción y averiguarlo. Lo he visto una vez, pero no lo encuentro en todo el día.


Otro consejo, por favor: si hay más de un EA en el terminal, ¿en qué orden procesarán los ticks, si su procesamiento toma más tiempo que la pausa entre ticks?