Si los desarrolladores hubieran dado exit / abort como estándar, entonces sería posible terminar correctamente el procesamiento de datos, si, por ejemplo, TF no está listo - datos OHLC, también sería útil para el procesamiento de envío de órdenes al servidor... sería conveniente interrumpir el código en cualquier lugar y salir antes del siguiente tick sin necesidad de un interminable return() para salir de OnTick()
En realidad es posible implementar una muleta, pero la usabilidad es mala ahí, ni siquiera te la voy a mostrar aunque debería funcionar.
Aunque la usabilidad parece haber mejorado. En general, toda función o llamada a un método con posible salida, incluidas las funciones anidadas, debe estar envuelta en la macro _call. Para los interesados, siéntanse libres de escribir el resto para todos los manipuladores. Se escribió sobre una manivela, como prueba de una idea, por lo que no se probó, desde la palabra - en absoluto.
En MT5 no hay protección contra el cierre accidental del terminal. Hace poco hubo un escenario de este tipo.
El terminal y el navegador están abiertos a toda la ventana. Estoy en el navegador.
El navegador está congelado, hago clic en la cruz de la esquina superior derecha.
No se cierra, lo presiono unas cuantas veces más.
En algún momento durante la pulsación, el navegador se cierra - la ventana desaparece. Y en este momento la cruz de la terminal bajo el cursor, donde presioné.
El terminal se cierra, tan rápidamente que simplemente no se nota. Especialmente cuando muchas terminales están abiertas.
Esta es una situación muy desagradable durante, por ejemplo, la optimización de lotes. Pero es aún peor para el Asesor de Batalla. Puedes ser estúpido si no te das cuenta de que has matado tu terminal de batalla.
Has puesto una protección así.
voidOnDeinit( constint Reason )
{
if (Reason == REASON_CLOSE)
MessageBox("Terminal is being closed!");
}
Al cerrarlo, aparece un mensaje durante cinco segundos. Para que puedas averiguar lo que realmente sucedió. Es extraño que no haya protección en la Terminal.
En MT5 no hay protección contra el cierre accidental del terminal. Hace poco hubo un escenario de este tipo.
El terminal y el navegador están abiertos a toda la ventana. Estoy en el navegador.
El navegador está congelado, hago clic en la cruz de la esquina superior derecha.
No se cierra, lo presiono unas cuantas veces más.
En algún momento durante la pulsación, el navegador se cierra - la ventana desaparece. Y en este momento la cruz de la terminal bajo el cursor, donde presioné.
El terminal se cierra, tan rápidamente que simplemente no se nota. Especialmente cuando muchas terminales están abiertas.
Esta es una situación muy desagradable durante, por ejemplo, la optimización de lotes. Pero es aún peor para el Asesor de Batalla. Puedes ser estúpido si no te das cuenta de que has matado tu terminal de batalla.
Has puesto una protección así.
Al cerrarlo, aparece un mensaje durante cinco segundos. Para que puedas averiguar lo que realmente sucedió. Es extraño que la Terminal no tenga protección.
Hay algunas opciones más sencillas.
Mantén el Terminal de Combate minimizado.
Mantener el terminal de batalla en el VPS
Ata las manos traviesas y aléjate del ordenador. )))
Ata tus manos traviesas y aléjate del ordenador. )))
Tengo que pensar, tal vez surja algo...))
En VPS puede cerrar también. Tengo expertos allí enviando Push.
Y es muy fácil equivocarse de cruz cuando la interfaz del viento se ralentiza. Lo he hecho, ahora lo cierro en la barra de tareas en el menú contextual.
Para cualquier implementación de una sentencia mql, tiene sentido utilizar la función DebugBreak para el modo de depuración. Facilita mucho la vida a la hora de depurar y es mucho más útil que el hecho de que se cuelgue.
En una cobertura, una posición puede consistir en varias operaciones IN. Esto se hace mediante la ejecución parcial.
En este caso la orden que se ejecuta parcialmente cambiará su ORDER_TIME_SETUP(_MSC) a la hora de la primera (posiblemente penúltima) operación. En otras palabras, sería imposible determinar a partir del historial cuándo, por ejemplo, se colocó BuyLimit.
Como consecuencia, la posición en la cobertura puede tener un precio de apertura fraccionario, como se puede ver a menudo en la compensación.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Por cierto, el análogo de Assert
¡no puedo estar seguro de necesitarlo!
Si los desarrolladores hubieran dado exit / abort como estándar, entonces sería posible terminar correctamente el procesamiento de datos, si, por ejemplo, TF no está listo - datos OHLC, también sería útil para el procesamiento de envío de órdenes al servidor... sería conveniente interrumpir el código en cualquier lugar y salir antes del siguiente tick sin necesidad de un interminable return() para salir de OnTick()
Aunque la usabilidad parece haber mejorado. En general, toda función o llamada a un método con posible salida, incluidas las funciones anidadas, debe estar envuelta en la macro _call. Para los interesados, siéntanse libres de escribir el resto para todos los manipuladores. Se escribió sobre una manivela, como prueba de una idea, por lo que no se probó, desde la palabra - en absoluto.
En MT5 no hay protección contra el cierre accidental del terminal. Hace poco hubo un escenario de este tipo.
Esta es una situación muy desagradable durante, por ejemplo, la optimización de lotes. Pero es aún peor para el Asesor de Batalla. Puedes ser estúpido si no te das cuenta de que has matado tu terminal de batalla.
Has puesto una protección así.
Al cerrarlo, aparece un mensaje durante cinco segundos. Para que puedas averiguar lo que realmente sucedió. Es extraño que no haya protección en la Terminal.
En MT5 no hay protección contra el cierre accidental del terminal. Hace poco hubo un escenario de este tipo.
Esta es una situación muy desagradable durante, por ejemplo, la optimización de lotes. Pero es aún peor para el Asesor de Batalla. Puedes ser estúpido si no te das cuenta de que has matado tu terminal de batalla.
Has puesto una protección así.
Al cerrarlo, aparece un mensaje durante cinco segundos. Para que puedas averiguar lo que realmente sucedió. Es extraño que la Terminal no tenga protección.
Hay algunas opciones más sencillas.
Hay algunas opciones más sencillas.
En VPS puede cerrar también. Tengo expertos allí enviando Push.
Y es muy fácil equivocarse de cruz cuando la interfaz del viento se ralentiza. Lo he hecho, ahora lo cierro en la barra de tareas en el menú contextual.
Hay algunas opciones más fáciles.
Instala un gestor de escritorios y dedica un escritorio al navegador y demás, y dedica otro escritorio a los terminales.
O instalar Linux (el gestor de escritorio viene con él :) )
Por cierto, el análogo de Assert
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bibliotecas: MT4Orders
fxsaber, 2020.04.07 18:47
La ejecución parcial es muy fácil de encontrar en MT5.En una cobertura, una posición puede consistir en varias operaciones IN. Esto se hace mediante la ejecución parcial.
En este caso la orden que se ejecuta parcialmente cambiará su ORDER_TIME_SETUP(_MSC) a la hora de la primera (posiblemente penúltima) operación. En otras palabras, sería imposible determinar a partir del historial cuándo, por ejemplo, se colocó BuyLimit.
Como consecuencia, la posición en la cobertura puede tener un precio de apertura fraccionario, como se puede ver a menudo en la compensación.