Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
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

Vues:
74
Note:
(3)
Publié:
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é-négociation 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 le détecte et renvoie automatiquement false, empêchant ainsi les tentatives d'échanges 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 Z-Score Statistical Reversion Institutional Z-Score Statistical Reversion

A professional quantitative oscillator that replaces traditional retail momentum indicators like the RSI, it calculates the statistical standard deviation of price action to identify mathematically exhausted reversals.

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 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.