Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Bibliothèque

CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - bibliothèque pour MetaTrader 5

Dennis Muchiri Miano
Dennis Muchiri Miano
  • Software & Systems Developer à  Remote
  • Kenya
  • 578
I specialize in turning traders’ handwritten, screenshot, or PDF strategies into precise MQL4/MQL5 code, with clear specs, transparent milestones, and test builds along the way. With 7+ years of software engineering focused on MetaTrader, I convert clearly defined trading rules into robust
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
124
Note:
(3)
Publié:
Mise à jour:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Vue d'ensemble

CExecutionSafety est une classe d'inclusion MQL5 légère conçue pour protéger les Expert Advisors contre l'exécution de transactions dans de mauvaises conditions de réseau ou d'exécution.
Elle mesure deux composants de latence : le ping du terminal en direct et le délai d'exécution de l'horloge murale réelle. Elle bloque les tentatives de transactions lorsque leur valeur combinée dépasse un seuil configurable.

Le problème résolu

La plupart des EA s'exécutent à l'aveugle, sans tenir compte des conditions du réseau. Un pic de ping ou un retard d'exécution côté courtier lors d'un ordre critique peut entraîner des dérapages, des requêtes ou des remplissages ratés.
CExecutionSafety introduit une barrière de sécurité pré-transaction qui empêche l'exécution lorsque les conditions sont dégradées.

Fonctionnement

La classe utilise deux sources de données :

  • TERMINAL_PING_LAST : lit le ping le plus récent enregistré par MetaTerminal (en millisecondes)
  • RecordExecDelay() : accepte une mesure de l'horloge murale que vous intégrez à toute opération CTrade.

Ces deux valeurs sont additionnées et comparées au seuil configuré. Si la latence combinée dépasse le seuil, CheckExecutionSafety() renvoie faux et imprime une entrée de journal de diagnostic.
Figure 1 : Terminal_Ping_Last

Protection contre la déconnexion

Lorsque le terminal n'a pas de contact avec le serveur, TERMINAL_PING_LAST renvoie -1. La classe détecte cette situation et renvoie automatiquement false, ce qui empêche les tentatives d'échange sur un terminal déconnecté.

Exemple d'intégration

Incluez le fichier et instanciez la classe dans votre EA :

#include <DeeFX/CExecutionSafety.mqh> CExecutionSafety safety ; int OnInit() { safety.Init(150) ; // seuil combiné de 150ms return INIT_SUCCEEDED ; } void OnTick() { if( !safety.CheckExecutionSafety()) return ; ulong t0 = GetTickCount64() ; trade.PositionClose(ticket) ; safety.RecordExecDelay(GetTickCount64() - t0) ; }

Accesseurs

Les accesseurs en lecture seule suivants sont disponibles pour l'affichage du tableau de bord ou la logique externe :

  • GetPingMs() : ping actuel du terminal en ms
  • GetExecDelayMs() : dernier délai d'exécution enregistré en ms
  • GetCombinedMs() : ping + délai d'exécution combinés (renvoie 9999 en cas de déconnexion)
  • HasExecSample(): vrai si au moins une mesure a été enregistrée
  • GetThresholdMs() : seuil de sécurité configuré

Changelog

  • v1.0 - Version initiale
  • v1.1 - La macro Guard a été renommée. Les spécificateurs de format %I64u sont remplacés par des casts (string)
  • v1.2 - Le type de retour de Init() a été modifié void → bool. Réinitialisation de l'état lors de la réinitialisation pour éviter les échantillons périmés.

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/70033

Institutional Unmitigated Order Block Matrix Institutional Unmitigated Order Block Matrix

A dynamic Smart Money utility that identifies institutional Order Blocks backed by volume anomalies and automatically tracks their mitigation state to keep your charts clean and focused on fresh liquidity.

Institutional Toxic Flow and Tick Speedometer Institutional Toxic Flow and Tick Speedometer

A high-frequency trading utility designed to measure real-time tick velocity and detect toxic order flow spikes before they reflect entirely on standard price candles.

Institutional Cumulative Volume Delta (CVD) Institutional Cumulative Volume Delta (CVD)

An advanced order flow engine that approximates tick-by-tick aggressor data to calculate the true Cumulative Volume Delta, it exposes institutional absorption and divergence hidden within standard price candles.

ASQ Divergence Detector ASQ Divergence Detector

ASQ Divergence Detector scans your chart for regular and hidden RSI divergences and marks them with color-coded, non-repaint arrows.