Accueil > Blog > Pourquoi un EA sur bougie clôturée ne repeint pas

MQL5Conception d'EABacktest

Pourquoi un EA sur bougie clôturée ne repeint pas

Publié : 2026-11-01Lecture : env. 4 min
⏱ Cet article reflète les informations à sa date de publication. Les chiffres de performance des EA (PF, DD, rendement annuel) évoluent avec le trading en réel et les revalidations — consultez les derniers chiffres sur les pages des EA. Voir les derniers résultats des EA →

En bref : les signaux d'un EA qui ne décide que sur des bougies clôturées changent peu, car les données sur lesquelles il s'appuie ne bougent plus à ce moment-là. Pour une bougie en formation, la clôture, le plus haut et le plus bas peuvent tous changer au tick suivant. En revanche, les quatre prix (OHLC) d'une bougie fermée ne bougent normalement plus après sa clôture.

Cela dit, lire des bougies clôturées ne garantit pas la sécurité. Selon le calcul des indicateurs ou le traitement des unités de temps supérieures, des valeurs futures peuvent se glisser dans vos données alors que vous pensez utiliser des bougies clôturées.

Pourquoi la bougie en formation est dangereuse

En MQL5, le shift 0 est la bougie en formation et le shift 1 la dernière bougie clôturée. La clôture du shift 0 n'est que « le prix du moment ». Si vous l'utilisez pour décider, les problèmes suivants apparaissent :

  • La condition se valide puis disparaît à chaque tick, et la raison de votre entrée s'évanouit après coup.
  • Un ordre est exécuté sur un signal éphémère qui ne laisse aucune trace sur le graphique une fois la bougie fermée.
  • Dans le testeur, les résultats varient facilement selon la méthode de génération des ticks, et si les mouvements intra-bougie diffèrent de la réalité, l'écart se répercute directement sur la performance.
CritèreBougie en formation (shift 0)Bougie clôturée (shift 1 et au-delà)
Valeur utilisée pour déciderChange jusqu'à la clôtureNormalement fixe
Reproductibilité du signalFaibleÉlevée
Rapidité d'entréeRapidePlus lente, le temps d'attendre la clôture
Influence du mode de ticks du testeurLa décision elle-même peut changerFaible sur la décision (reste présente sur la sortie)

Utiliser la bougie en formation n'est pas toujours une erreur. Certaines conceptions visent à saisir immédiatement une cassure. Il faut alors reconnaître que la stratégie dépend des mouvements intra-bougie et accorder plus de poids à une validation sur ticks réels.

Comparaison courtiers recommandés →

🎁 Télécharger EA gratuit

📧 Cours gratuit par e-mail (8 e-mails) + pack de 13 indicateurs MT5 réservé aux abonnés

Dès votre inscription, vous recevez un lien de téléchargement vers un pack réservé aux abonnés contenant nos 13 indicateurs MT5 : fichiers compilés (.ex5), code source et guide d'installation. Ensuite, 8 e-mails sur les fondamentaux du trading algorithmique, la bonne lecture d'un backtest et le choix du courtier (un par jour pendant les 5 premiers jours, puis 7, 14 et 30 jours après l'inscription). Vous êtes aussi prévenu avant chaque hausse de prix des versions vendues sur le MQL5 Market (prix de lancement qui augmente par paliers selon les ventes). Sur ce site, nos EA sont gratuits avec un compte réel chez un courtier partenaire.

* Confidentialité strictement protégée. Vous pouvez vous désabonner à tout moment.

Concevoir la confirmation du signal

CopyRates : indiquer explicitement la position de départ et l'ordre

On lit la bougie clôturée une seule fois, au premier tick d'une nouvelle bougie.

datetime g_lastBar = 0;

void OnTick()
{
   datetime t = iTime(_Symbol, _Period, 0);
   if(t == 0 || t == g_lastBar) return;

   MqlRates r[];
   ArraySetAsSeries(r, true);
   if(CopyRates(_Symbol, _Period, 1, 2, r) != 2) return;

   g_lastBar = t;
   // r[0] est la dernière bougie clôturée, r[1] celle d'avant
}

Trois points sont essentiels : fixer la position de départ à 1 pour exclure la bougie en formation de la plage lue, définir l'ordre du tableau avec ArraySetAsSeries, et, en cas d'échec de la lecture, ne pas mettre à jour g_lastBar afin de réessayer au tick suivant. Si vous oubliez de préciser l'ordre, le premier élément du tableau sera la bougie la plus ancienne.

iBarShift : un piège avec les unités de temps supérieures

Quand on référence une unité de temps supérieure, iBarShift renvoie « la bougie qui contient cette heure ». Si vous lui passez l'heure actuelle, vous obtenez normalement la bougie supérieure en formation.

int s = iBarShift(_Symbol, PERIOD_H1, TimeCurrent(), false);
if(s < 0) return;
double closedH1 = iClose(_Symbol, PERIOD_H1, s + 1);

Si vous voulez la bougie supérieure clôturée, demandez donc la bougie précédente, comme ci-dessus.

Le repaint typique se produit avec les indicateurs qui tracent sur un graphique d'unité inférieure des valeurs d'une unité supérieure. Si l'on attribue à chaque ancienne bougie de l'unité inférieure la clôture de la bougie supérieure qui la contient, on dessine dans le passé une valeur finale qui n'existait pas encore à ce moment-là. Le graphique semble alors donner des signaux gagnants, mais en temps réel la même décision est impossible.

Avec exact (le 4e argument) à false, c'est la bougie la plus proche qui est renvoyée quand la bougie demandée n'existe pas. Les données manquantes passent alors plus facilement inaperçues : vérifiez donc aussi l'heure de la bougie obtenue. Les données d'un autre symbole ou d'une autre unité de temps peuvent aussi être mises à jour avec retard, donc contrôlez que la bougie correspond bien à l'heure attendue avant de décider.

Éviter la double décision au redémarrage

Dans le code ci-dessus, g_lastBar revient à sa valeur initiale quand l'EA redémarre. Pour éviter de rejouer la décision sur la même bougie clôturée et d'entrer deux fois, il faut aussi vérifier les positions ouvertes et l'heure de la dernière exécution.

Ce que l'utilisateur peut vérifier

Même sans pouvoir lire le code source, les méthodes suivantes permettent de se faire une idée :

  1. Observer en mode visuel : dans le mode visuel du testeur, vérifiez si les heures d'entrée se concentrent au début des bougies. Si des ordres s'exécutent souvent en milieu de bougie, l'EA utilise peut-être la bougie en formation (la sortie est un autre sujet).
  2. Comparer avec différents modèles de ticks : sur la même période et avec les mêmes réglages, essayez « Prix d'ouverture uniquement », « Tous les ticks » et « Tous les ticks basés sur des ticks réels ». Si le nombre ou l'heure des entrées diffèrent nettement, soupçonnez une dépendance aux mouvements intra-bougie.
  3. Enregistrer les flèches d'un indicateur : conservez, par exemple par capture d'écran, l'heure d'apparition d'une flèche et comparez avec les bougies suivantes. Si sa position change ou si elle disparaît, l'indicateur repeint.
  4. Interroger le distributeur : demandez s'il décide sur des bougies clôturées et comment il traite les unités de temps supérieures.

Tout cela reste des indices indirects, et aucun ne suffit à prouver « pas de repaint ». Pour tester des indicateurs, entraînez-vous d'abord avec les indicateurs gratuits, et pour installer un EA, consultez la configuration d'un EA.

Limites et précautions

Décider sur une bougie clôturée a aussi ses inconvénients :

  • L'entrée est retardée : le prix avance pendant l'attente de la clôture, et vous pouvez entrer à un niveau défavorable. Lors de brusques hausses ou chutes, l'écart peut devenir important.
  • Le coût de l'ouverture de bougie : si la conception concentre les ordres sur le premier tick d'une nouvelle bougie, elle peut subir des spreads élargis ou des gaps d'ouverture.
  • Impossible d'éviter les indicateurs qui regardent vers le futur : ceux dont la forme change après coup, comme le ZigZag, ou ceux qui ont besoin de bougies suivantes pour se confirmer, peuvent voir leurs valeurs changer même sur des bougies clôturées, selon la position lue.
  • Les bougies clôturées diffèrent aussi d'un courtier à l'autre : avec une heure serveur ou un flux de cotations différents, les quatre prix changent, et le même EA peut donc décider autrement chez un autre courtier. On ne peut pas exclure non plus que l'historique soit corrigé après coup.
  • La sortie se produit en cours de bougie : même si la décision d'entrée repose sur une bougie clôturée, le stop loss et le take profit s'exécutent en milieu de bougie. Cette partie dépend toujours de la qualité des ticks.

Surtout, ne pas repeindre ne veut pas dire gagner de l'argent. Parmi nos propres EA, certains affichent de bons résultats en backtest sur données historiques, mais sont dans le rouge en forward test sur compte démo. Le fait d'utiliser des bougies clôturées est une condition préalable pour pouvoir faire confiance à un backtest, pas un indicateur de performance future. De plus, l'usage ou non de bougies clôturées varie selon la conception de chaque EA : vérifiez-le au cas par cas lors de votre choix, et jugez-le en complément des chiffres du classement mesuré. Notre approche de la validation est détaillée dans Savoir-faire EA et MT5.

Résumé

  • La valeur d'une bougie en formation bouge jusqu'à sa clôture, donc le signal peut disparaître ou changer.
  • Décider sur une bougie clôturée fige les données de décision et réduit l'influence de la méthode de génération des ticks.
  • Avec CopyRates, indiquez la position de départ et l'ordre, et réessayez en cas d'échec de lecture.
  • iBarShift renvoie facilement la bougie supérieure en formation : pour lire une bougie clôturée, décalez le shift.
  • Le tracé d'unités supérieures et les indicateurs qui regardent vers le futur sont des exemples typiques de repaint.
  • Les bougies clôturées impliquent retard et coûts, et ne promettent aucun profit.

📧 Cours gratuit par e-mail (8 e-mails) + pack de 13 indicateurs MT5 réservé aux abonnés

Dès votre inscription, vous recevez un lien de téléchargement vers un pack réservé aux abonnés contenant nos 13 indicateurs MT5 : fichiers compilés (.ex5), code source et guide d'installation. Ensuite, 8 e-mails sur les fondamentaux du trading algorithmique, la bonne lecture d'un backtest et le choix du courtier (un par jour pendant les 5 premiers jours, puis 7, 14 et 30 jours après l'inscription). Vous êtes aussi prévenu avant chaque hausse de prix des versions vendues sur le MQL5 Market (prix de lancement qui augmente par paliers selon les ventes). Sur ce site, nos EA sont gratuits avec un compte réel chez un courtier partenaire.

* Confidentialité strictement protégée. Vous pouvez vous désabonner à tout moment.

Une question sur les EA ou le Forex ?

Vous pouvez la publier sur le forum de trading Nattzy (inscription gratuite). Les questions qui dépassent cet article sont aussi les bienvenues : réglages d'EA, choix du courtier, etc.

Poser ma question sur Nattzy ↗

Commentaires et questions