¿Con qué sustituir OnTradeTransaction() en mql4?

 

En realidad, esta es mi pregunta. Estoy usando MT5 desde hace mucho tiempo, pero tengo que usar MT4 por alguna razón. Pero mql4 no tiene OnTrade() y OnTradeTransaction() lo que es muy triste.

Por lo tanto, tengo que resolver el problema con un pequeño coste (en términos de recursos).

Hasta ahora, no se me ha ocurrido nada mejor que revisar las órdenes abiertas y comparar el estado actual con el anterior.

Quizá haya soluciones más razonables.

 
Esta es exactamente la solución más razonable. Y es el más razonable para MT5 también, porque uno no puede confiar sólo en OnTrade() y OnTradeTransaction(). No están garantizados.
 
Aleksandr Volotko:

En realidad, esta es mi pregunta. Estoy usando MT5 desde hace mucho tiempo, pero tengo que usar MT4 por alguna razón. Pero mql4 no tiene OnTrade() y OnTradeTransaction() lo que es muy triste.

Por lo tanto, tengo que resolver el problema con un pequeño coste (en términos de recursos).

De momento, no se me ha ocurrido nada mejor que repasar las órdenes abiertas y comparar el estado actual con el anterior.

Quizá haya soluciones más razonables.

No es la variante más fácil, familiarizarse con los artículos de Artem Trishkin. Y hay 31 en total o 32 ya. Lo comprobé y me comuniqué con él al respecto. Todos los sucesos se cogen "con ganas".

Por supuesto, si no intentas entrar en la esencia del contenido de sus códigos, debería ser más fácil.


ps; Oh... Acabo de volver de este hilo y el hilo de discusión de la parte 32 del artículo me llamó la atención inmediatamente. El artículo en sí está aquí.

Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
  • 2020.01.24
  • www.mql5.com
Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка орде...
 

Igor tiene razón, es difícil idear algo más inteligente y sencillo al mismo tiempo, porque cualquier otra solución se basará en la misma llamada a OrdersTotal() con filtrado de pedidos según el gusto y posterior procesamiento de fechas.

Me detengo ahí por ahora, servirá para mi problema.

 
Ihor Herasko:
Esta es exactamente la solución más razonable. Y es el más razonable para MT5 también, porque uno no puede confiar sólo en OnTrade() y OnTradeTransaction(). No están garantizados.

Debe haber pasado mucho tiempo desde que se interesó por ella. La noción de que una transacción puede perderse fue eliminada de la documentación hace mucho tiempo. Así que, para mql5, no hay nada mejor que OnTradeTransaction(). He comprobado la velocidad de obtención del evento de activación de la orden pendiente en OnTradeTransaction() y a través de la biblioteca de Artem. OnTradeTransaction() es más rápido. No lo he medido. Tengo que hacer más mediciones para hacer una estimación justa, pero era demasiado codicioso para gastar tiempo en ello.

 
Para ser justos, nunca he tenido ningún problema con OnTradeTransaction() en MT5, todo fue siempre suave. No hay pérdidas.
 
Alexey Viktorov:

Es probable que no hayas investigado esto durante mucho tiempo. Hace tiempo que eliminaron la advertencia de que la transacción puede perderse de la documentación. Por lo tanto, no hay nada mejor que OnTradeTransaction() para mql5. He comprobado la velocidad de obtención del evento de activación de la orden pendiente en OnTradeTransaction() y a través de la biblioteca de Artem. OnTradeTransaction() es más rápido. No lo he medido. Tengo que hacer más mediciones para hacer una estimación justa, pero era demasiado codicioso para gastar tiempo en ello.

Es natural: he establecido una frecuencia de exploración del entorno. Por lo tanto, el hecho del evento enen el terminal y el hecho del cambio de entorno se suceden. Pero se capta el hecho del cambio del entorno, no la llegada del evento. Esto tiene su mérito. Pero los niegas de todos modos ;) Así que no tiene sentido debatir.
 
Artyom Trishkin:
Es natural: tengo una frecuencia establecida para escudriñar el entorno. Por lo tanto, el hecho del evento enen el terminal y el hecho del cambio de entorno se suceden. Pero en mi caso lo que se capta es el hecho del cambio de entorno, no la llegada del evento. Esto tiene su mérito. Pero los niegas de todos modos ;) Así que no tiene sentido debatir.

¿Qué ventajas estoy negando? Sólo tengo una negación. Quiero entender cómo funcionan las cosas, y si sólo es posible entender las cosas no mi mente, entonces no me siento cómodo usándolas, y cualquier cosa con la que no me sienta cómodo la niego. Ya te he dicho que escribes más cartas de las que puedo leer en el resto de mi vida. No la tomes conmigo...

 
Ihor Herasko:
Esta es exactamente la solución más razonable. Y es el más inteligente para MT5 también, porque uno no puede confiar sólo en OnTrade() y OnTradeTransaction(). No están garantizados.

Estás irremediablemente atrasado.

Desde hace mucho tiempo, estos eventos están garantizados.

 
Fallo de comunicación durante (después de) la ejecución de OrderSend (-Async) - pérdida de OnTrade*.
 
prostotrader:

Estás irremediablemente atrasado.

Estos eventos están garantizados desde hace mucho tiempo.

¿Y la disponibilidad de luz e internet? Por no hablar de la habitual pérdida de paquetes de la red. Qué guay se ha vuelto MetaQuotes: ¡lo garantizan todo! ))

Razón de la queja: