Igor Makanu, MakarFX, ¿quién tiene razón? Intentemos encontrar la descripción y averiguarlo. Lo vi una vez pero no puedo encontrarlo en todo el día.
Tengo razón
Compruébelo usted mismo, no es difícil - Asesor Experto en el que hay un temporizador, en el temporizador hay un bucle, digamos, para 100 000 iteraciones y en el cuerpo del bucle Sleep(1), obtenemos 100 segundos, en OnTick() escribir Print("Tick")
y el segundo Asesor Experto en el segundo gráfico con Print( "Tick") en OnTick()
El primer experto estará en silencio durante 100 segundos, y no es seguro que tenga tiempo de escribir un nuevo tick en el registro - si el temporizador se lanza de nuevo
O busca en el foro - mi búsqueda tiene el mismo efecto que la tuya.
Andrey Sokolov:
Otro consejo: si hay más de un EA en el terminal, ¿en qué orden procesarán los ticks, si su procesamiento tarda más que la pausa entre ticks?
no en cualquier orden
Cada EA trabaja en su propio hilo, es decir, todos trabajan en paralelo, no dependen unos de otros y reciben mensajes del terminal simultáneamente
" El programa sólo recibe eventos de la agenda en la que se está ejecutando. Todos los eventos se procesan uno tras otro en el orden en que se reciben. Si ya hay un eventoOnTimer() o OnTick() durante un cálculo complejo, se saltará " - sólo se saltará si es el mismo evento.
Si hay opciones de cómo implementar la prioridad de los cálculos sobre los visuales, estoy deseando hacerlo.
Si hay variantes de cómo implementar la prioridad del cálculo sobre el diseño visual, lo espero con interés.
Utilizar el esquema estándar para varios paneles de negociación - procesar los mensajes del ratón en OnChartEvent(), y en OnTick() trabajar a la llegada de un tick.
Si utiliza cálculos muy pesados enOnTick() - intente que salgan en el indicador
Si necesita un temporizador, llame aOnTick() después de la salida del temporizador
ZZY: MT4 está trabajando muy rápido ahora, usted debe tratar de saltar ticks ))))
" El programa sólo recibe eventos de la agenda en la que se está ejecutando. Todos los eventos se procesan uno tras otro en el orden en que se reciben. Si ya hay un eventoOnTimer() o OnTick() durante un cálculo complejo, se saltará " - sólo se saltará si es el mismo evento.
Si hay opciones de cómo implementar la prioridad de los cálculos sobre los visuales, estoy deseando hacerlo.
corrígeme si me equivoco.
Las reglas son claras. Si necesitas cada tick, puedes obtenerlos de un indicador de terceros, escribirlos en un array y luego, tras el cálculo, arrastrar el array y compararlo. Ni siquiera se trata del tiempo de ejecución de las operaciones.
Buenas tardes a todos. Estoy mejorando mi máquina del Grial ;-) y tengo entendido que ahora mismo sólo hay un soporte para los tratos: arrastre por parabólica. Es irrealmente bajo((((( ¿Quién tiene la función de arrastre fractal? Por favor, comparte el código. Si tengo una función de orden de cierre por señal estocástica invertida. Si tengo una orden de compra, hay un beneficio y cuando el estocástico sale de su zona de sobrecompra, la orden se cierra si hay un beneficio en ella. Es imposible cambiar esto con la máquina del Grial). Si quieres compartir este código con nosotros, no dudes en hacerlo...
Многофункциональный трал, с массой настроек и огромными возможностями. Может тралить по пунктам, по свечам, по фракталам, по индикаторам ATR и Parabolic.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Igor Makanu, MakarFX, ¿quién tiene razón? Intentemos encontrar la descripción y averiguarlo. Lo vi una vez pero no puedo encontrarlo en todo el día.
Tengo razón
Compruébelo usted mismo, no es difícil - Asesor Experto en el que hay un temporizador, en el temporizador hay un bucle, digamos, para 100 000 iteraciones y en el cuerpo del bucle Sleep(1), obtenemos 100 segundos, en OnTick() escribir Print("Tick")
y el segundo Asesor Experto en el segundo gráfico con Print( "Tick") en OnTick()
El primer experto estará en silencio durante 100 segundos, y no es seguro que tenga tiempo de escribir un nuevo tick en el registro - si el temporizador se lanza de nuevo
O busca en el foro - mi búsqueda tiene el mismo efecto que la tuya.
Otro consejo: si hay más de un EA en el terminal, ¿en qué orden procesarán los ticks, si su procesamiento tarda más que la pausa entre ticks?
no en cualquier orden
Cada EA trabaja en su propio hilo, es decir, todos trabajan en paralelo, no dependen unos de otros y reciben mensajes del terminal simultáneamente
https://docs.mql4.com/ru/runtime/running
" El programa sólo recibe eventos de la agenda en la que se está ejecutando. Todos los eventos se procesan uno tras otro en el orden en que se reciben. Si ya hay un eventoOnTimer() o OnTick() durante un cálculo complejo, se saltará " - sólo se saltará si es el mismo evento.
Si hay opciones de cómo implementar la prioridad de los cálculos sobre los visuales, estoy deseando hacerlo.
corrígeme si me equivoco.
Si hay variantes de cómo implementar la prioridad del cálculo sobre el diseño visual, lo espero con interés.
Utilizar el esquema estándar para varios paneles de negociación - procesar los mensajes del ratón en OnChartEvent(), y en OnTick() trabajar a la llegada de un tick.
Si utiliza cálculos muy pesados enOnTick() - intente que salgan en el indicador
Si necesita un temporizador, llame aOnTick() después de la salida del temporizador
ZZY: MT4 está trabajando muy rápido ahora, usted debe tratar de saltar ticks ))))
Andrey Sokolov:
Si hay opciones de cómo implementar la prioridad de los cálculos sobre los visuales, estoy deseando hacerlo.
Corrígeme si me equivoco.
Tengo mucho cálculo teniendo en cuenta la extensión y limitando su expansión. Ha habido algunas aperturas comerciales con límites violados.
Después de poner OnTimer() antes de OnTick() y ejecutar EventSetMillisecondTimer(100) no hay errores todavía.
No soy programador... todo por intuición))
https://docs.mql4.com/ru/runtime/running
" El programa sólo recibe eventos de la agenda en la que se está ejecutando. Todos los eventos se procesan uno tras otro en el orden en que se reciben. Si ya hay un eventoOnTimer() o OnTick() durante un cálculo complejo, se saltará " - sólo se saltará si es el mismo evento.
Si hay opciones de cómo implementar la prioridad de los cálculos sobre los visuales, estoy deseando hacerlo.
corrígeme si me equivoco.
Las reglas son claras. Si necesitas cada tick, puedes obtenerlos de un indicador de terceros, escribirlos en un array y luego, tras el cálculo, arrastrar el array y compararlo. Ni siquiera se trata del tiempo de ejecución de las operaciones.
O bien la tarea no se entiende del todo.
Buenas tardes a todos. Estoy mejorando mi máquina del Grial ;-) y tengo entendido que ahora mismo sólo hay un soporte para los tratos: arrastre por parabólica. Es irrealmente bajo((((( ¿Quién tiene la función de arrastre fractal? Por favor, comparte el código. Si tengo una función de orden de cierre por señal estocástica invertida. Si tengo una orden de compra, hay un beneficio y cuando el estocástico sale de su zona de sobrecompra, la orden se cierra si hay un beneficio en ella. Es imposible cambiar esto con la máquina del Grial). Si quieres compartir este código con nosotros, no dudes en hacerlo...
Comparta el código fraternalmente por favor, no sea un pesado ...
Tienes una extraña forma de hablar...
Mira en CodeBase.
Tienes una extraña forma de hablar...
Buscar en CodeBase
No puedo buscar allí por mi discapacidad visual :-( Por eso pido ayuda...
https://www.mql5.com/ru/code/28975
https://www.mql5.com/ru/code/28975