Errores, fallos, preguntas - página 2186

 
fxsaber:

Pregunta de MT4.

Ya me encontré con esto una vez y volví a tropezar con este error en una prueba de HFT.

Pongo BuyLimit, el precio lo rompe y se queda abajo durante muchos minutos. Al mismo tiempo BuyLimit se enciende en amarillo pero "no se ejecuta".


Los intentos de modificarlo dan como resultado

2018.04.09 19:15:41.242 '89015117': modification of invalid order #108362456

Cuando lo vi, recordé esta situación de hace tiempo. La receta de entonces y de ahora es siempre la misma: reconectar. Después del contacto resulta que BuyLimit ha sido durante mucho tiempo (desde el momento del cruce) una posición de compra.

Al mismo tiempo, antes de la reconexión, podíamos negociar otras órdenes y todo estaba bien con ellas, sólo el BuyLimit estaba rondando.


Resulta que no hay ninguna notificación en el terminal MT4 de que BuyLimit se ha convertido en una posición de compra. Y, en consecuencia, es un fastidio hasta que haces un reinicio de sesión.

Tengo que recordar cómo resolví esta situación. Pero estoy 99% seguro de que en caso de errores o rarezas sólo me obligaron a volver a iniciar sesión a través de WinAPI.

¿Tiene sentido escribir a SD sobre esto, ya que después de todo es MT4? No he notado nada parecido en el 5.


Parece ser de la misma idea:

Hola. En MT4, cuando se elimina una orden Limit colocada dentro del spread suele darse una situación de error: la orden a eliminar se cuelga, lo que sólo se puede solucionar recargando el terminal. Por lo que he entendido del mecanismo , ocurre de la siguiente manera:

1 ) Establecemos un límite dentro del spread, cercano al precio Ask (para órdenes de compra Limit) o Bid (para órdenes deventa Limit) y después de un tiempo intentamos eliminarlo.

2 ) Enviamos una orden OrderDelete(), mientras esta orden va al servidor, la orden puede estar ya ejecutada en el servidor (está dentro del spread, muy cerca del precio de activación). Parece que cuando la orden llegue al servidor, se aplicará a la orden de mercado y nos dará un error en el terminal y una orden congelada. En este caso, la orden en el terminal sigue siendo una orden limitada (también definida como orden limitada por la función OrderType()) y sólo aparecerá como orden de mercado tras un reinicio del terminal. Si sigue borrando como límite uno , verá un error en el registro del Asesor Experto con el código: 3, y en el registro de la terminal:[Parámetrosinválidos ]. En realidad, no es posible realizar ninguna acción con una orden suspendida de este tipo: es una orden limitada en el terminal del cliente y una orden de mercado en el servidor . La orden tampoco puede ser eliminada manualmente.

Adjunto un EA simplificado (sólo para Buy Limit), para la reproducción del error y un perfil con 8 EAs instalados en paralelo (el error aparece más rápido, que si el error es captado por un solo EA - aunque también ocurre con un solo EA instalado). La orden de compra El límite se establece en 1 punto de cinco dígitos por debajo del precio de venta y se elimina después de 1 segundo después de ser establecido. Si establece una orden incluso 5 puntos por debajo del precio Ask y la elimina después de cualquier número de segundos/minutos/horas, el error seguirá ocurriendo de vez en cuando, sólo que con menos frecuencia porque el mecanismo de su aparición no cambia.

Debe iniciar el terminal y esperar a que aparezca la orden pendiente. Por lo general, no debe esperar más de una hora, dependiendo de la actividad del mercado.


Solicitud abierta, Iniciada: 2017.06.06.12:37, #1766459


En octubre de 2017, me escribieron desde servicedesk que habían conseguido reproducir esta situación y que estaban trabajando en una solución al problema. Y desde entonces ha habido silencio...

 
Pavel Kolchin:

El producto no se puede descargar del mercado, ¿qué puedo hacer?


Inténtalo de nuevo.

 
zenz:


Esto es de la misma línea, como parece:

Hola: En MT4, al eliminar una orden limitada situada dentro de un spread, suele producirse una situación de error: la orden eliminada se cuelga, lo que sólo puede solucionarse reiniciando el terminal. Por lo que he entendido del mecanismo , ocurre de la siguiente manera:

1 ) Establecemos un límite dentro del spread, cercano al precio Ask (para órdenes de compra Limit) o Bid (para órdenes deventa Limit) y después de un tiempo intentamos eliminarlo.

2 ) Enviamos una orden OrderDelete(), mientras esta orden va al servidor, la orden puede estar ya ejecutada en el servidor (está dentro del spread, muy cerca del precio de activación). Parece que cuando la orden llega al servidor, se aplica a la orden de mercado y nos da un error en el terminal y una orden congelada. En este caso, la orden en el terminal sigue siendo una orden limitada (también definida como orden limitada por la función OrderType()) y sólo aparecerá como orden de mercado tras un reinicio del terminal. Si sigue borrando como límite uno , verá un error en el registro del Asesor Experto con el código: 3, y en el registro de la terminal:[Parámetrosinválidos ]. En realidad, no es posible realizar ninguna acción con una orden suspendida de este tipo: es una orden limitada en el terminal del cliente y una orden de mercado en el servidor . La orden tampoco puede ser eliminada manualmente.

Adjunto un EA simplificado (sólo para Buy Limit), para la reproducción del error y un perfil con 8 EAs instalados en paralelo (el error aparece más rápido, que si el error es captado por un solo EA - aunque también ocurre con un solo EA instalado). La orden de compra El límite se establece en 1 punto de cinco dígitos por debajo del precio de venta y se elimina después de 1 segundo después de ser establecido. Si establece una orden incluso 5 puntos por debajo del precio Ask y la elimina después de cualquier número de segundos/minutos/horas, el error seguirá ocurriendo de vez en cuando, sólo que con menos frecuencia porque el mecanismo de su aparición no cambia.

Debe iniciar el terminal y esperar a que aparezca la orden pendiente. Por lo general, no debe esperar más de una hora, dependiendo de la actividad del mercado.


Solicitud abierta, Iniciada: 2017.06.06.12:37, #1766459


En octubre de 2017, me escribieron desde servicedesk que habían conseguido reproducir esta situación y que estaban trabajando en una solución al problema. Y desde entonces ha habido silencio....

Bien hecho por llegar al fondo de la cuestión, ¡incluyendo la reproducción! En efecto, el entorno de negociación en el Terminal sigue sin estar sincronizado con el Trade Server.

Sin embargo, no hubo actualizaciones después de mayo de 2017 (build 1090) y el problema se reprodujo en octubre. El momento es difícil de decir incluso para MT5, y aún más para el 4.

Al parecer, los desarrolladores no consideraron que este fallo fuera crítico. Creo que es inaceptable. Creo que es inaceptable, porque casi nadie trabaja con órdenes limitadas y dentro del spread.


ZZY En tu solicitud para el BOD, saluda de mi parte. Tal vez sea banal, lo olvidaron.

 
Fast235:

¿por qué dice Backtest cuando se guarda un informe de operaciones?



Este es el informe de la pestaña "Backtest" en el probador de estrategias, ¿verdad?

 
Alexander:

Este es el informe de la pestaña "Backtest" en el probador de estrategias, ¿verdad?


Es sólo una forma oculta de promocionar su informe.

 

¿Podría decirme cuál es el error?

(2018.04.10 15:20:13.844 La versión de depuración de "MQL5\Experts\Probe5.ex5" puede ser optimizada sólo en agentes locales, no en la nube, no en la granja)

Ya estoy jodido con la optimización. O acepta funcionar en la red local, o no lo hace.

 
AVAAR:

¿Podría decirme cuál es el error?

(2018.04.10 15:20:13.844 La versión de depuración de "MQL5\Experts\Probe5.ex5" puede ser optimizada sólo en agentes locales, no en la nube, no en la granja)

Ya estoy jodido con la optimización. O acepta funcionar en la red local o no lo hace.

Compilar con F7, no con F5.

 
AVAAR:

¿Podría decirme cuál es el error?

(2018.04.10 15:20:13.844 La versión de depuración de "MQL5\Experts\Probe5.ex5" puede ser optimizada sólo en agentes locales, no en la nube, no en la granja)

Ya estoy jodido con la optimización. O está de acuerdo en la red local, o no lo está.

El texto resaltado es la raíz de su error.

Hay que compilar el archivo antes de optimizarlo.

 
Alexander:

Este es el informe de la pestaña Backtest en el probador de estrategias, ¿verdad?

No, esto es del modo Herramientas, trading real, quería mostrar el resultado, pero dice Backtest)

desde el Probador de Estrategias campos adicionales en el informe

 
Vladislav Andruschenko:


Es sólo una forma encubierta de promocionar su informe.

al menos no es un pipsqueak)