Errores, fallos, preguntas - página 2220
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
En mi opinión, se trata de un error cuando una orden está en el servidor de comercio, pero después del OrderSend sincrónico en el terminal no hay rastro de ella.
He decidido comprobar cuánto duran estas órdenes fantasma cuando la orden está presente en el sistema pero no en el terminal.
El resultado es
¡Una orden está presente en el sistema pero no en el Terminal durante 32 milisegundos! Imagínese las consecuencias si la lógica comercial se ejecutara en este intervalo...
Es interesante que las órdenes fantasma se presentan con mayor frecuencia sólo en los tipos de transacciónTRADE_TRANSACTION_ORDER_DELETE y en TRADE_TRANSACTION_DEAL_ADD (mucho más raro).
Muy mal el matiz de la plataforma.
ZZY La velocidad de las transacciones comerciales en el 5 es cuestionable, por desgracia.
He decidido comprobar cuánto duran estas situaciones de órdenes fantasma, cuando una orden está en el sistema pero no en el terminal.
El resultado es
Durante 32 milisegundos, hay una orden pero no está en la Terminal. Imagínese las consecuencias si la lógica comercial se ejecutara durante este intervalo.
Sí, eso no es bueno. Como puedes ver, estos resultados de la transacción se envían en diferentes paquetes. Deberían estar en uno solo.
Como puede ver, los resultados de estas transacciones se envían en diferentes paquetes, mientras que deberían estar en uno solo.
Resulta que la orden puede ser fantasma justo después de OrderSend y el Asesor Experto paralelo con OnTradeTransaction no siempre puede captar este estado. Es decir, el propio OnTradeTransaction a veces se ralentiza.
En general, en la arquitectura de MT5 hay retrasos en diferentes lugares que apenas se eliminan. Se trata de retrasos en las llegadas de garrapatas y, ahora, en las transacciones comerciales. Hay que tener claro de qué es capaz la plataforma si se confía en la velocidad de ejecución. Por ejemplo, los ticks que llegan con un retraso decente, luego las transacciones... y eventualmente alguien más en MT5 u otra plataforma puede adelantarse, incluso si usted mismo está sentado justo al lado de la bolsa.
Las transacciones comerciales van en paquetes prioritarios, superando a las demás. Esto reduce considerablemente la latencia.
¿Cómo es posible que el script detecte una situación de orden fantasma después de OrderSend, pero OnTradeTransaction en un EA paralelo no lo haga (no siempre, pero sucede)?
Las transacciones comerciales vienen en paquetes prioritarios, superando a los demás. Esto reduce considerablemente la latencia.
El problema es que las transaccionesTRADE_TRANSACTION_ORDER_DELETE yTRADE_TRANSACTION_HISTORY_ADD vienen en paquetes diferentes y por eso no importa la prioridad que tengan, la latencia de la red lo hará igualmente.Y estas transacciones deben ejecutarse de forma sincrónica, una tras otra, sin ningún estado intermedio. Es decir, es una operación atómica en esencia, porque poner una orden eliminada en la lista del historial no tiene nada que ver con un intercambio.
Es decir, aquí hay dos opciones: o bien estas dos transacciones vienen juntas en un solo paquete, o bien la primera transacción no se ejecuta en el terminal hasta que llega la segunda.
Es decir, hay dos opciones: o bien estas dos transacciones vienen juntas en un solo paquete, o bien la primera transacción no se ejecuta en el terminal hasta que llega la segunda.
Hay situaciones en las que TRADE_TRANSACTION_DEAL_ADD es anterior a la transacción TRADE_TRANSACTION_ORDER_DELETE. En este caso, incluso antes de TRADE_TRANSACTION_ORDER_DELETE la orden sigue siendo fantasma.
Los agentes remotos han dejado de optimizar
Supongo que es por el nuevo compilador, ¿cómo se pueden actualizar para que funcione?
Además, sólo una parte del optimizador pasa 13 de 28 debido a este error.Mirando el código del paquete Alglib. Está lleno de estas construcciones, lo que hace que el código sea más difícil de leer:
¿No es más sencillo así?
Me parece que la velocidad de ejecución sería aún más rápida.
¿Por qué han complicado tanto el código? ¿O simplemente se ha portado de otro idioma, sin ningún ajuste? Pero sigo preguntándome por qué tanta complicación en el original.