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
Indicateurs

CME Gap Tracker for Gold and Bitcoin: Open Gaps, Fill Rate and a Fade-Trade Test - indicateur pour MetaTrader 5

Ali Akbar
Ali Akbar
  • MQL5 Developer & Algorithmic Trading Specialist à  Freelance
  • Pakistan
  • 2423
Hi, I'm Ali. 24 years old, trading for around 5 years, and developing MQL5/MQL4 tools. I mainly work on automating manual strategies, fixing broken EA logic, and building clean indicators. I care more about clean architecture and proper risk management than over-complicated code. Always down to talk
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
40
Note:
(1)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Outil de suivi des écarts CME pour l'or et le Bitcoin : écarts ouverts, taux de comblement et test de stratégie « fade-trade »

Identifie les écarts CME du week-end sur les graphiques de l’or et du Bitcoin (24h/24, 7j/7), conserve chaque écart non comblé sur le graphique jusqu’à ce que le cours y revienne, et indique la fréquence à laquelle les écarts se comblent, leur vitesse de comblement, l’amplitude initiale du mouvement de prix, ainsi que le rendement qu’aurait généré une stratégie de « fade-trade ». Sans repeint, avec des tampons pour un Expert Advisor.

L’idée

« Les écarts CME se comblent toujours » : c’est une affirmation que l’on entend dans tous les chats consacrés au Bitcoin, ainsi que dans de nombreux canaux consacrés à l’or. Les contrats à terme CME cessent d’être négociés le vendredi à 16 h, heure de Chicago, et reprennent le dimanche à 17 h. Tout ce que le marché a fait entre-temps apparaît sous la forme d’un écart sur le graphique des contrats à terme, et l’on considère généralement que le cours revient pour le combler.

Je voulais deux réponses avant d’y croire. À quelle fréquence ce gap se comble-t-il réellement ? Et s’il se comble, peut-on gagner de l’argent en spéculant dans ce sens, ou le cours part-il d’abord dans la direction opposée et provoque-t-il un stop ? Cet indicateur répond à ces deux questions directement sur votre propre graphique.

Fonctionnement

  • Il convertit la clôture du vendredi du CME et l’ouverture du dimanche à l’heure du serveur de votre courtier, en tenant compte de la règle de l’heure d’été américaine pour Chicago et de celle de l’horloge de votre serveur.
  • Il prend en compte le cours de votre graphique à ces deux moments. La différence correspond à l’écart. Les écarts inférieurs à InpMinGapPct (0,30 % par défaut) sont ignorés.
  • Il trace chaque écart sous forme de rectangle et l'annote de sa taille. Un écart non comblé reste sur le graphique, prolongé vers la droite, jusqu’à ce qu’une barre fermée revienne au cours de clôture du vendredi. Le rectangle devient alors gris et l’annotation indique le nombre d’heures qu’il a fallu pour combler l’écart.
  • Place une flèche sur la barre correspondant à l’ouverture du CME : vers le haut pour un écart à la baisse, vers le bas pour un écart à la hausse, dans le sens du comblement.
  • Affiche un panneau de tableau de bord pour les dernières semaines InpWeeksBack (104 par défaut).

Sur un graphique Bitcoin où les transactions se poursuivent tout le week-end, il n’y a pas de gap visible entre la dernière barre du vendredi et la première barre du lundi ; un outil classique de détection des gaps de week-end ne trouve donc rien. Le gap du CME n’apparaît que lorsque l’on examine le cours aux deux moments correspondants du CME, ce que fait cet indicateur. Pour l’or, le marché au comptant ferme également pendant le week-end ; le « gap CME » et le « gap de week-end » du courtier sont donc pratiquement identiques.

Une précision s’impose : l’indicateur utilise les cours du graphique sur lequel il s’applique, et non les cours des contrats à terme. Sur un graphique au comptant ou de CFD, vous obtenez l’évolution au comptant pendant le week-end du CME. L’écart sur le graphique réel des contrats à terme peut varier légèrement, car ceux-ci se négocient avec une prime ou une décote par rapport au cours au comptant.

Ce que montre le tableau

  • Le nombre de gaps, répartis entre haussiers et baissiers, ainsi que le nombre de week-ends où la taille était inférieure au seuil minimum.
  • Le nombre de gaps comblés, ainsi que la part de ceux qui ont été comblés dans les 24 heures et dans les 7 jours.
  • Le délai médian de comblement, ainsi que le temps nécessaire aux 10 % de gaps les plus lents.
  • «Heat» avant comblement : distance parcourue par le cours par rapport au niveau de comblement avant de revenir, exprimée en multiples de la taille de l’écart. Un «heat» de 2,0x sur un écart de 1 % signifie que le cours s’est d’abord écarté de 2 % supplémentaires dans la mauvaise direction.
  • Test de « fade-trade » : entrée à l’ouverture du CME vers la clôture du vendredi, stop à InpStopGapMult fois l’amplitude du gap dans la direction opposée, sortie après InpMaxHoldDays jours si aucun des deux niveaux n’est atteint. Le spread de la barre d’entrée est pris en compte. Lorsque le stop et l’objectif se trouvent tous deux à l’intérieur d’une même barre, le stop est pris en compte.
  • Le nombre de gaps ouverts dans la fenêtre prise en compte, ainsi que les niveaux d’exécution ouverts les plus proches au-dessus et en dessous du cours actuel (ces deux éléments examinent chaque gap dans l’historique chargé).

Ce qu’il a trouvé sur l’or

XAUUSD H1, données MetaQuotes-Demo, paramètres par défaut sauf indication contraire. Les deux fenêtres se chevauchent de quelques jours fin décembre 2025.

2026, 38 semaines jusqu’au 18 septembre 2026, 38 semaines jusqu'au 18 septembre 2025, 52 semaines jusqu'au 31 décembre 2025, 52 semaines jusqu'au 31 décembre
Écart minimum 0,30 % 0,10 % 0,30 % 0,10 %
Écarts (à la hausse / à la baisse) 24 (10 / 14) 33 (13 / 20) 6 (2 / 4) 19 (9 / 10)
Comblés 23 (96 %) 32 (97 %) 5 (83 %) 18 (95 %)
Postes pourvus dans les 24 heures 58 % 67 50 % 68
Postes pourvus dans les 7 jours 83 % 85 % 50 % 74 %
Délai médian de recrutement 7 h 3 h 3 h 3 h
Chaleur médiane avant remplissage 2,18 fois l'écart 2,31 fois l'écart 2,16 fois l'écart 1,70 fois l'écart
Opérations de vente à découvert, stop à 1x l'écart 24 33 6 19
Taux de réussite des positions à contre-tendance 29,2 % 27,3 % 16,7 % 26,3 %
Facteur de profit « Fade » 0,41 0,37 0,20 0,35
Total des paris « Fade » -10,1R -15,1 R -4,0R -9,1R

Le dicton s’avère donc globalement vrai pour l’or : entre 83 % et 97 % des écarts se sont comblés. C’est au niveau des transactions que le système montre ses limites. Parmi les écarts qui se sont comblés, celui situé en médiane a d’abord évolué dans la mauvaise direction sur une distance équivalente à environ deux fois sa taille, de sorte que la plupart des transactions de « fade » avec un stop correspondant à la taille d’un écart se sont soldées par une perte.

J’ai essayé des stops plus larges, avec un minimum de 0,30 %. Un stop plus large permet de gagner plus souvent, mais chaque perte est plus importante et le résultat total est resté négatif ces deux années :

Stop Taux de réussite en 2026 Total 2026 PF 2026 Taux de réussite 2025 Total 2025 PF 2025
Écart 1x 29,2 % -10,1R 0,41 16,7 % -4,0R 0,20
écart de 2x 45,8 % -7,0 R 0,44 33,3 % -3,0R 0,25
3 fois l'écart 66,7 % -2,0 R 0,72 50,0 % -2,0R 0,33

En 2025, on ne comptait que 6 écarts de 0,30 % ou plus ; il convient donc de considérer cette colonne comme un échantillon restreint. Ce que j’en retiens est simple : sur l’or, l’écart est un bon niveau où l’on peut s’attendre à ce que le cours passe, mais le vendre dès l’ouverture avec un stop fixe n’a pas été rentable au cours de ces deux années.

Certains écarts ne se comblent pas avant longtemps. Au 18 septembre 2026, un écart sur l’or datant de 2025 était toujours ouvert, avec un niveau de comblement de 3 201,00, bien en dessous du cours.

Fig. 1. XAUUSD H1, fin janvier 2026 : un écart de +0,43 % comblé en 106 heures et un écart de -2,47 % comblé en 32 heures

Fig. 2. Le tableau de bord des quatre simulations présentées dans le tableau

À propos du Bitcoin

Je n’ai pas pu le tester sur le Bitcoin. Mon courtier de test, MetaQuotes-Demo, ne propose pas de BTCUSD disponible 24 h/24 et 7 j/7, mais uniquement un ETF Bitcoin négocié pendant les heures d’ouverture du Nasdaq. Le code pour un graphique 24 h/24 et 7 j/7 est le même que celui utilisé pour l’or : le cours à la clôture du vendredi et à l’ouverture du dimanche. Avant de vous fier à ce code pour le BTC, vérifiez les premiers écarts par rapport à un graphique des contrats à terme du CME et configurez les paramètres de décalage du serveur pour votre courtier.

Paramètres d'entrée

Entrée Par défaut Fonction
InpGMTWinter 2 Décalage GMT du serveur en hiver, en heures
InpGMTSummer 3 Décalage GMT du serveur en été, en heures
InpServerDST Europe Règle d'heure d'été de l'horloge du serveur (fixe, Europe ou États-Unis)
InpMinGapPct 0,30 Écart minimal, en % du prix
InpWeeksBack 104 Nombre de semaines d'historique dans la fiche d'évaluation
InpDrawWeeks 26 Semaines de lacunes comblées tirées au sort (les lacunes ouvertes sont toujours tirées au sort)
InpStopGapMult 1,0 Test de fondu : arrêt à un multiple de l'écart
InpMaxHoldDays 5 Test de décroissance : sortie après ce nombre de jours
InpShowPanel true Afficher le panneau du tableau de bord
InpPanelCorner en haut à gauche Coin du panneau
InpOpenGapColor orange clair Couleur des espaces non remplis
InpFilledGapColor Gainsboro Couleur des espaces remplis
InpAlertNewGap true Alerte lorsqu'un nouvel espace apparaît
InpAlertFill vrai Alerte lorsqu'un écart ouvert est comblé
InpAlertPush false Envoyer également des notifications push

Les paramètres par défaut (GMT+2 en hiver, GMT+3 en été, règle européenne) correspondent à ceux de MetaQuotes-Demo et de nombreux autres courtiers MetaTrader. Si le serveur de votre courtier fonctionne en UTC toute l'année, réglez les deux décalages sur 0 et la règle sur « fixe ». Utilisez la période H1 ou une période inférieure. Sur H4 et les périodes supérieures, les horaires du CME tombent à l'intérieur d'une barre et les cours sont moins précis.

Utilisation depuis un Expert Advisor

Le gap est enregistré sur la barre où le CME a ouvert, dès l’ouverture de cette barre ; un EA le lit donc au décalage 0. Il utilise uniquement le cours de clôture du vendredi et le cours d’ouverture de cette barre, il ne change donc jamais par la suite. J’ai vérifié cela à l’aide d’un EA de test qui enregistrait chaque écart dès son apparition et j’ai comparé la liste avec les tampons de l’indicateur à la fin de l’exécution : 24 écarts sur 24 correspondaient pour l’or en 2026.

Tampon Contenu
0 Écart à la baisse (achat à la baisse), la valeur correspond au cours d’entrée, EMPTY_VALUE dans le cas contraire
1 Écart à la hausse (vente à contre-courant), même format
2 Niveau d'exécution (cours de clôture du vendredi) sur la barre de gap
3 Stop de test de rebond sur la barre de gap
4, 5 Niveaux d’exécution d’ouverture les plus proches au-dessus et en dessous de chaque barre clôturée
6 à 9 Tableau de bord sur la dernière barre clôturée : transactions « fade » clôturées, gains, R total, somme des R perdus
int      handle;
datetime lastBar = 0;

int OnInit()
  {
   handle = iCustom(_Symbol, PERIOD_H1, "CMEGapTracker");
   return(handle == INVALID_HANDLE ? INIT_FAILED : INIT_SUCCEEDED);
  }

void OnTick()
  {
   //--- un écart est enregistré sur la barre d'ouverture du CME dès l'ouverture de cette barre
   datetime bar = iTime(_Symbol, PERIOD_H1, 0);
   if(bar == lastBar)
      return;
   lastBar = bar;

   double up[1], down[1], target[1], stop[1];
   if(CopyBuffer(handle, 1, 0, 1, up) < 1 || CopyBuffer(handle, 0, 0, 1, down) < 1 ||
      CopyBuffer(handle, 2, 0, 1, target) < 1 || CopyBuffer(handle, 3, 0, 1, stop) < 1)
      return;

   if(up[0] != EMPTY_VALUE)
      Print("Gap up, fill level ", target[0], ", fade stop ", stop[0]);
   if(down[0] != EMPTY_VALUE)
      Print("Gap down, fill level ", target[0], ", fade stop ", stop[0]);
  }

Les tampons 4 et 5 sont utiles pour un autre type d’EA, qui utilise les écarts ouverts comme cibles pour des transactions qu’il effectue pour d’autres raisons. L’indicateur ne comporte délibérément aucun groupe d’entrées, car MQL5 considère chaque « groupe d’entrées » comme un paramètre de iCustom() et chaque valeur qui suit serait décalée d’une unité.

Limites

Il fonctionne sur les données des barres ; il ne peut donc pas déterminer l’ordre des événements au sein d’une même barre. Il utilise les cours de votre graphique aux heures du CME, et non les cours des contrats à terme. Les jours fériés américains qui raccourcissent la semaine du CME ne sont pas traités séparément. Le test « fade » prend en compte le spread de la barre d’entrée, mais aucune commission ni aucun slippage ; or, c’est précisément lors des ouvertures du week-end que le slippage est le plus important. Tous les chiffres ci-dessus décrivent des écarts passés sur les données d’un courtier.

Ali Rajput


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

Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest

Un EA de type « Turtle » basé sur la stratégie de cassure pour l'or. Il achète lorsqu'une barre H4 clôture au-dessus du plus haut sur 20 barres dans une tendance haussière, avec un stop de 2 ATR et un objectif de 2R. Backtest réalisé sur la paire XAUUSD de janvier 2020 à septembre 2026 : +9 029,72 sur un capital de 10 000 avec un risque de 1 %, facteur de profit de 1,77, drawdown maximal de 11,38 %, 6 années rentables sur 7.

Smart Money Concepts BOS CHoCH Smart Money Concepts BOS CHoCH

Market structure indicator for Gold (XAUUSD), EURUSD and any symbol: swing highs and lows with HH HL LH LL labels, BOS and CHoCH drawn on closed candles, alerts and 4 buffers for EAs. Open source code.

Heikin Ashi Candles Heikin Ashi Candles

A clean Heikin Ashi indicator that draws on the main chart window. It also adds one horizontal line at the average price, (Open + High + Low + Close) / 4, of the last closed candle of a chosen timeframe. By default this is H1, and the line uses the normal candles, not Heikin Ashi.

Broker Time - server, UTC, New York, London, Sydney, Tokyo with the right summer time (class + session lines) Broker Time - server, UTC, New York, London, Sydney, Tokyo with the right summer time (class + session lines)

CBrokerTime converts server time, UTC, New York, London, Sydney and Tokyo with the real summer time of every year and finds your broker's clock from the history (also in the tester). The indicator draws session lines and a clock panel.