![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
¿Cómo puedo saber el beneficio de una posición pasando por una operación mágica? El comercio de cierre no va allí porque no tiene un magik.
IDENTIFICADOR_DE_POSICIÓN
El ID de la posición es un número único que se da a cada posición recién abierta y no cambia a lo largo de su vida. Un vuelco de la posición no cambia el identificador de posición.
largo
DEAL_POSITION_ID
Identificador de la posición, en la apertura, modificación o cierre de la que ha intervenido esta operación. Cada posición tiene un identificador único, que se asigna a todas las operaciones realizadas en el instrumento durante la vida de la posición.
largo
La terminación anormal significa que el Asesor Experto está en bucle, no comprueba IsStopped y es forzado a detenerse por el terminal.
Puedo notar que la terminación anormal no es sólo debido al código MQL, sino también debido a hipo interno del propio tiempo de ejecución. Digamos que la terminación anormal es incontrolable desde MQL.
Por ejemplo, cuando el código MQL envía un comando para eliminar ObjectDelete un objeto de un gráfico que ya existe (ni objeto ni gráfico). Pero estaba allí en el momento en que se envió la orden.
Y el código MQL no esperará la respuesta del comando, ya que el cuelgue no se ha producido en el código MQL, sino en las profundidades de la ejecución. Es decir, en el propio ObjectDelete. como resultado obtendremos una terminación Anormal
El segundo caso popular es la operación de la función ObjectsDeleteAll. Como es síncrono, también se cuelga al borrar objetos que ya han sido borrados, pero sólo después de ser llamado.
El tercer caso es el más perjudicial, cuando el tiempo de ejecución no puede completar el comando del Asesor Experto desde Deinit, porque el EA ha sido eliminado del gráfico y el gráfico está cerrado. También obtendremos la congelación del entorno y la terminación anormal incontrolada.
Todo lo que he descrito anteriormente, todo se relaciona específicamente con la terminación del trabajo del expansor en la función OnDeinit. En algún lugar en las profundidades del código, hay una inconsistencia entre las acciones de terminación, en primer lugar con la presencia del gráfico, y en segundo lugar - con el comportamiento del medio ambiente en Deinit del experto.
Alguien hace algo antes y provoca una terminación anormal.
Por supuesto, en algunos casos pude resolver este problema comprobando adicionalmente la disponibilidad. Pero rara vez se produce uno de los problemas de sincronización descritos. La eliminación/instalación de un indicador en un gráfico que está tratando de cerrar, la eliminación de objetos.
Me gustaría que me respondieran cómo puede haber una Reducción Absoluta MÁS que el Saldo Inicial.
Aunque por definición.
Absolute Drawdown
Просадка от начального баланса показывает, насколько уменьшался баланс относительно первоначального значения. Максимально может быть равно начальному балансу, если потеряны все деньги.
Detallado en el temahttps://www.mql5.com/ru/forum/8996
La terminación anormal significa que el EA está en bucle y no comprueba IsStopped y es detenido a la fuerza por el terminal.
No es así.
Debo señalar que la terminación anormal no sólo se debe al código MQL, sino también a los contratiempos internos del propio tiempo de ejecución.
Sí, y hay muchas sorpresas de este tipo.
He experimentado un cuelgue del terminal y la imposibilidad de borrar el Asesor Experto debido a la memoria insuficiente. En este caso, incluso el registro no siempre queda registrado.
No es así.
Sí, y hay muchas sorpresas así.
Me he encontrado con cuelgues del terminal y con la imposibilidad de borrar el EA si no hay suficiente memoria. En este caso, ni siquiera el registro funciona siempre.
IDENTIFICADOR_DE_POSICIÓN
El identificador de la posición es un número único que se asigna a cada posición recién abierta y no cambia a lo largo de su vida. La inversión de una posición no cambia el identificador de posición.
largo
DEAL_POSITION_ID
Identificador de la posición, en la apertura, modificación o cierre de la que ha intervenido esta operación. Cada posición tiene un identificador único, que se asigna a todas las operaciones realizadas en el instrumento durante la vida de la posición.
largo
Según he entendido este tema dehttps://www.mql5.com/ru/forum/8278 está relacionado con esta misma cuestión.
No, se trataba de los indicadores.
Un Asesor Experto que supera algún límite de memoria simplemente cuelga el terminal de forma silenciosa. Sucede, por ejemplo, cuando se cargan muchos gráficos de diferentes símbolos/períodos con indicadores.
Puedo notar que la terminación anormal no se debe sólo al código MQL, sino también a los contratiempos internos del propio tiempo de ejecución. Así que digamos que la terminación anormal es incontrolable desde MQL.
Por ejemplo, cuando el código MQL envía un comando para eliminar un objeto ObjectDelete de un gráfico que ya existe (ni un objeto, ni un gráfico). Pero estaba allí en el momento en que se envió la orden.
Y el código MQL no esperará la respuesta del comando, ya que el cuelgue no se ha producido en el código MQL, sino en las profundidades de la ejecución. Es decir, en el propio ObjectDelete. como resultado obtendremos una terminación Anormal
El segundo caso popular es la operación de la función ObjectsDeleteAll. Como es síncrono, también se cuelga al borrar objetos que ya han sido borrados, pero sólo después de ser llamado.
El tercer caso es el más perjudicial, cuando el tiempo de ejecución no puede completar el comando del Asesor Experto desde Deinit, porque el EA ha sido eliminado del gráfico y el gráfico está cerrado. También obtendremos la congelación del entorno y la terminación anormal incontrolada.
Todo lo que he descrito anteriormente, todo se relaciona específicamente con la terminación del trabajo del expansor en la función OnDeinit. En algún lugar en las profundidades del código, hay una inconsistencia entre las acciones de terminación, en primer lugar con la presencia del gráfico, y en segundo lugar - con el comportamiento del medio ambiente en Deinit del experto.
Alguien hace algo antes y provoca una terminación anormal.
Por supuesto, en algunos casos pude resolver este problema comprobando adicionalmente la disponibilidad. Pero rara vez se produce uno de los problemas de sincronización descritos. La eliminación/instalación de un indicador en un gráfico que está tratando de cerrar, la eliminación de objetos.
No, se trataba de los indicadores.
Un Asesor Experto que supera algún límite de memoria simplemente cuelga el terminal de forma silenciosa. Esto ocurre, por ejemplo, cuando se cargan muchos gráficos de diferentes símbolos/períodos con indicadores.