Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - librería para MetaTrader 5

Visualizaciones:
29
Ranking:
(2)
Publicado:
MQL5 Freelance ¿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.
Figura 1: Terminal_Ping_Last

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. Combine Multi Timeframe Trends into one trend using MA.

Combinar Tendencias Multi Timeframe en una tendencia usando MA.

Modern Time Panel - Candle Time 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 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) 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.