Características del lenguaje mql5, sutilezas y técnicas - página 168
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
Cuando se recibe un mensaje sobre una fuga de memoria, significa que no hubo un comando explícito para liberar esa memoria.
Cuando el programa termina (que es cuando se reciben estos mensajes), libera toda la memoria, incluida la memoria filtrada, de todos modos.
Puede que haya utilizado el término "fuga" con demasiada ligereza. La cuestión es que se deja un recurso colgado en la memoria, cuyo nombre ni siquiera es reconocible si se borra el objeto. Y si conoces su nombre, no puedes borrarlo en ningún sitio más que en el programa que creó el recurso.
Ahora es muy fácil escribir un script para Market que suspenda (no necesariamente de forma premeditada) el Terminal en el VPS, llenando toda la memoria con recursos que no se borran tras la ejecución del script.
Algunos servidores de negociación pueden albergar más de un tipo de cuenta a la vez. Por ejemplo, ECN y estándar. En este caso los símbolos pueden no tener prefijos, es decir, los nombres son los mismos.
En este caso, el historial de barras (incluido el valor actual de compra/venta/último en el gráfico) y el historial de ticks siempre se corresponden con un solo tipo de cuenta.
Y los datos de Market Watch corresponden a los que están conectados.
Debido a esto, es fácil observar que el Market Watch es completamente inconsistente con los gráficos y el historial de ticks.
Varias veces me he encontrado con un cambio accidental (manual) del símbolo de la carta donde se encuentra un consejero de combate.
Protección contra el cambio de símbolos.
En consecuencia, tomo la historia una semana antes de la compilación. Es conveniente.
Al iniciar un EA, a menudo hay que decidir el momento a partir del cual se debe obtener el historial de precios. Para evitar tener que introducirlo manualmente cada vez, lo hice así.
En consecuencia, tomo la historia una semana antes de la compilación. Conveniente.
¿Por qué hay que confiar demasiado en el optimizador? Es mejor:
#define SEMANA 604800
Función de interrupción de emergencia, parece funcionar bien
Función de interrupción de emergencia, parece que funciona bien
es lo que hay que hacer - me alegré de que pasara..., lo solucionamos con@Victhttps://www.mql5.com/ru/forum/318246/page10#comment_12651569
pero esto:
- noSalir http://www.delphibasics.ru/Exit.php
- noAbortar http://www.delphibasics.ru/Abort.php
esHalt http://www.delphibasics.ru/Halt.php
UPD: un guión así es muy necesario
aquí está el problema que resolvimos con@Victhttps://www.mql5.com/ru/forum/318246/page10#comment_12651569
pero esto:
- noSalir http://www.delphibasics.ru/Exit.php
- noAbortar http://www.delphibasics.ru/Abort.php
esHalt http://www.delphibasics.ru/Halt.php
UPD: un guión así es muy necesario
Este no ha funcionado todavía(((.
No veo por qué lo necesito.
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()
No veo por qué lo necesito.
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()
Bueno, no podía, todavía no...