Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - librería para MetaTrader 5
- Visualizaciones:
- 29
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Visión General
CExecutionSafety es una clase MQL5 ligera diseñada para proteger a los Asesores Expertos de la ejecución de operaciones en condiciones de red o de ejecución deficientes.
Mide dos componentes de latencia: el ping en tiempo real y el retardo de ejecución real, y bloquea los intentos de operación cuando su valor combinado supera un umbral configurable.
El problema que resuelve
La mayoría de los EA se ejecutan a ciegas, independientemente de las condiciones de la red. Un pico en el ping o un retraso en la ejecución por parte del broker durante una orden crítica puede dar lugar a deslizamientos, recotizaciones o ejecuciones fallidas.
CExecutionSafety introduce una puerta de seguridad pre-negociación que impide la ejecución cuando las condiciones se degradan.
Funcionamiento
La clase utiliza dos fuentes de datos:
- TERMINAL_PING_LAST: lee el ping más reciente registrado por MetaTerminal (en milisegundos)
- RecordExecDelay(): acepta una medida de reloj de pared que envuelve cualquier operación de CTrade
Estos dos valores se suman y se comparan con el umbral configurado. Si la latencia combinada supera el umbral, CheckExecutionSafety() devuelve false e imprime una entrada de registro de diagnóstico.

Protección de desconexión
Cuando el terminal no tiene contacto con el servidor, TERMINAL_PING_LAST devuelve -1. La clase detecta esto y automáticamente devuelve false, evitando intentos de comercio en un terminal desconectado.
Ejemplo de integración
Incluya el archivo e instancie la clase en su EA:
¡#include <DeeFX/CExecutionSafety.mqh> CExecutionSafety safety; int OnInit() { safety.Init(150); // 150ms umbral combinado return INIT_SUCCEED; } void OnTick() { if(!safety.CheckExecutionSafety()) return; ulong t0 = GetTickCount64(); trade.PositionClose(ticket); safety.RecordExecDelay(GetTickCount64() - t0); }
Accesores
Los siguientes accesores de sólo lectura están disponibles para la visualización del cuadro de mandos o la lógica externa:
- GetPingMs(): ping actual del terminal en ms
- GetExecDelayMs(): último retardo de ejecución registrado en ms
- GetCombinedMs(): ping + retardo de ejecución combinados (devuelve 9999 si está desconectado)
- HasExecSample(): verdadero cuando se ha registrado al menos una medición
- GetThresholdMs(): umbral de seguridad configurado
Registro de cambios
- v1.0 - Versión inicial
- v1.1 - Cambio de nombre de la macro Guard. Los especificadores de formato %I64u se han sustituido por conversiones (cadena).
- v1.2 - Tipo de retorno de Init() cambiado void → bool. Se restablece el estado al reiniciar para evitar muestras obsoletas
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/70033
Combine Multi Timeframe Trends into one trend using MA.
Combinar Tendencias Multi Timeframe en una tendencia usando MA.
Modern Time Panel - Candle Time
Panel de Tiempo Moderno para MT5 El Panel de Tiempo Moderno es un indicador personalizado elegante y minimalista para MetaTrader 5 que le ayuda a seguir el tiempo con precisión. Fijado en la esquina superior derecha de su gráfico, muestra la hora actual del broker, la hora local, y una cuenta atrás hasta la siguiente vela (nueva barra). Construido con un temporizador independiente de 1 segundo, la cuenta atrás se ejecuta continuamente, incluso cuando el mercado es lento o no hay ticks entrantes. Totalmente personalizable y compatible con el modo oscuro, es la herramienta no intrusiva perfecta para asegurarse de que nunca se pierda el cierre de una vela.
Accumulation/Distribution
El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.
Accelerator Oscillator (AC)
El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.