Errores, fallos, preguntas - página 2106

 
Andrey Khatimlianskii:

Un tiempo de espera indica que la respuesta del servidor no se ha recibido en un tiempo razonable. Pero no el resultado de la orden.


Hola.

Gracias.

En este caso: cuando se agota el tiempo - hay que esperar a que aparezca un nuevo ticket en el historial de operaciones, si aparece un nuevo ticket - entonces la operación u orden está abierta.

Por cierto, esto sólo ocurre en MQL5 VPS

No es un problema en un servidor doméstico.

Lo pensaré...


Lo pensaré.

Пользовательский интерфейс - Начало работы - MetaTrader 5
Пользовательский интерфейс - Начало работы - MetaTrader 5
  • www.metatrader5.com
Интерфейс платформы предоставляет доступ ко всем инструментам, необходимым для торговли на финансовых рынках. Он включает в себя различные меню, панели инструментов и служебные окна. Главное меню В главном меню собраны практически все команды и функции, которые можно выполнять в торговой платформе. Оно позволяет работать с графиками...
 
Vladislav Andruschenko:

En este caso: cuando se agota el tiempo - hay que esperar a que aparezca un nuevo ticket en el historial de operaciones, si aparece un nuevo ticket - entonces la operación u orden está abierta.

Si una orden comercial se envió a través de OrderSend sincrónico, entonces no hay manera de salir de la ejecución de OrderSend. Todo parece un error de la Terminal VPS.
 
fxsaber:
Si una orden de negociación fue enviada a través de un OrderSend sincrónico, entonces no hay manera de salir de la ejecución del OrderSend. Todo parece un error de la Terminal VPS.


a través de ella.

El problema se puede resolver en principio, después de recibir un error de tiempo de espera para ejecutar la función de búsqueda de nuevos tickets en el historial.

De lo contrario, el EA simplemente envía una nueva solicitud y vuelve a obtener un error de tiempo de espera, sin obtener un ticket.

Gracias.

 
Vladislav Andruschenko:

El problema se puede resolver en principio, después de recibir un error de tiempo de espera, ejecutar la función de recuperación de nuevos tickets en el historial.

Tienes que escribirlo en SD. De lo contrario, después de cada OrderSend esperará tres minutos para un timeout, obteniendo los riesgos comerciales correspondientes.

 
fxsaber:

Es necesario escribir en el CD. De lo contrario, después de cada OrderSend esperará tres minutos a que se agote el tiempo y obtendrá los riesgos comerciales correspondientes.


Y así lo hice.

Este error ocurre 1 de cada 1000, y hasta ahora sólo ocurría en VPS de MQL...
 
Vladislav Andruschenko:

En consecuencia, el Asesor Experto obtiene el error 10012 e intenta colocar la orden de nuevo.

Me quitaría mi condición de Vendedor durante un año por un código así en el Mercado
 
A100:
Te privaría del estatus de vendedor durante un año por un código así en el Mercado.

Es la primera vez que me encuentro con este error.

No tengo ese error en mi código. ningún ticket significa que una operación no se ha abierto. significa que el EA está tratando de abrir una operación de nuevo.
 
Vladislav Andruschenko:

En principio, el problema se puede resolver, después de recibir un error de tiempo de espera, ejecute la función de recuperación de nuevos tickets en el historial.

La historia no tiene nada que ver. OrderSend envía el pedido y éste aparece en el Terminal con el estado ORDER_STATE_STARTED.

Pero esto no significa que OrderSend haya terminado de ejecutarse. El OrderSend continuará ejecutándose hasta que el estado de la orden cambie.

Por lo tanto, si ve un tiempo de espera, es 99% seguro que el estado del pedido es ORDER_STATE_STARTED(yo loveo, pero no está claro cuando tomé la captura de pantalla).

Además, el mismo tiempo de espera puede ocurrir sin su OrderSend - cuando el servidor MT5 hace el OrderSend por sí mismo (TP/SL/MC/Expiration). Pero no lo verás en la Terminal.

 
Vladislav Andruschenko:
No tengo ese error en mi código. no hay entrada - significa que el comercio no se abrió. significa que el Asesor Experto está tratando de abrir el comercio de nuevo.

Esta es una lógica incorrecta. Después de que OrderSend falle y OrderSend tenga éxito, el entorno comercial actual debe ser leído completamente de nuevo. Esta norma debería estar siempre en vigor.

Sobre los códigos de devolución. No los analizo en mis EAs. Creo que la lógica del comercio no debería depender de ellos.

 
fxsaber:

Esta es una lógica incorrecta. Después de que OrderSend falle y OrderSend tenga éxito, el entorno comercial actual debe leerse completamente de nuevo. Esta norma debería estar siempre en vigor.


Estoy de acuerdo. Hay que cambiarlo.