Que signifie repainting sur TradingView ?

Chaque graphique a une bougie ouverte : celle qui est encore en train de se former. Son plus haut, son plus bas et sa clôture changent à chaque transaction jusqu’à sa clôture. Un indicateur qui la lit bouge avec le prix, ce qui est normal. Le RSI, une moyenne mobile et le VWAP oscillent tous sur la bougie en cours, puis se figent à sa clôture.

Le repainting devient un problème quand le changement survit dans l’historique. Imaginons que vous tradiez sur un graphique de 5 minutes. À 10 h 07, le prix plonge à 99,40 $, une flèche de vente s’affiche et vous vendez à 99,50 $. À la clôture de 10 h 10, le prix est revenu à 100,20 $ et la flèche a disparu. Votre trade a bien eu lieu, mais le graphique n’en montre plus aucune raison. Remontez d’une semaine et vous ne voyez que les flèches qui ont survécu à la clôture, jamais celles qui ont clignoté puis disparu.

La seconde forme est plus discrète. Certains outils dessinent un signal sur une bougie passée après coup : la flèche se trouve pile sur le plus bas, mais elle est apparue plusieurs bougies plus tard, et l’historique ne permet pas de voir la différence.

Pourquoi les indicateurs se repeignent-ils ?

Presque tout repainting vient de l’une de trois causes. Surveillez de près la deuxième si vous combinez des unités de temps, comme dans l’analyse multi-unités de temps, car une valeur d’unité de temps supérieure peut sembler stabilisée alors qu’elle change encore.

  • Signaux calculés sur la bougie ouverte. Sur les bougies historiques, un script s’exécute une fois par bougie, sur l’ouverture, le plus haut, le plus bas et la clôture définitifs. Sur la bougie en direct, il s’exécute à chaque mise à jour du prix. Une condition peut être vraie à 10 h 07 et fausse à 10 h 10 : en direct, vous voyez donc des signaux que l’historique ne montre jamais.
  • Données d’unité de temps supérieure prises trop tôt. Beaucoup d’indicateurs ramènent des valeurs d’1 heure ou journalières sur un graphique de 5 minutes. Si le script utilise le lookahead, une bougie de 10 h 05 dans l’historique peut voir la clôture d’1 heure qui n’était connue qu’à 11 h 00. S’il lit la bougie d’unité de temps supérieure encore ouverte, la valeur dérive pendant toute l’heure en direct, alors que l’historique n’affiche que le chiffre définitif.
  • Pivots, zigzags et fractales. Un creux de swing n’est confirmé qu’une fois qu’un nombre donné de bougies à sa droite ont clôturé au-dessus. Avec cinq bougies de chaque côté, cela fait 25 minutes sur un graphique de 5 minutes. Beaucoup d’outils dessinent ensuite la marque en arrière, sur le creux lui-même, et les lignes de zigzag redessinent leur dernière jambe jusqu’à ce qu’un nouveau swing soit confirmé.

Tournez votre téléphone pour lire le dessin. Touchez pour fermer.

Trois panneaux dessinés à la main pour les trois causes. 1 : une flèche de vente sur une bougie ouverte à 10 h 07, disparue une fois la bougie clôturée à 10 h 10. 2 : une bougie d’1 heure de 10 h 00 à 11 h 00 au-dessus de douze bougies de 5 minutes, avec une flèche lookahead qui part de la clôture de 11 h 00 et revient sur la bougie de 10 h 05. 3 : un creux de swing confirmé cinq bougies, soit 25 minutes, plus tard, avec la marque redessinée sur le creux lui-même.

Pourquoi un backtest avec repainting paraît parfait et pas le résultat en direct

Un backtest ne voit que la version finale de l’historique. Si un indicateur réécrit son passé, le backtest note une version que vous n’auriez jamais pu trader.

Prenons un outil hypothétique qui marque chaque creux de swing sur un graphique de 5 minutes. L’historique montre une flèche d’achat pile sur le creux, à 48,00 $, avec un stop juste en dessous, à 47,80 $. En direct, ce creux n’est confirmé que cinq bougies plus tard, quand le prix est déjà à 49,10 $. Entrer là avec le stop toujours sous le creux, c’est risquer 1,30 $ au lieu de 0,20 $ sur le même mouvement. Le graphique montre une autre stratégie que celle que vous pouvez trader.

Les fuites du futur sont pires. Un indicateur qui voit à l’avance la clôture horaire paraîtra brillant sur chaque bougie passée, et cet avantage disparaît dès que le futur n’est plus disponible. Si l’historique d’un indicateur montre des flèches à presque chaque sommet et chaque creux, voyez-y un signal d’alarme.

Tournez votre téléphone pour lire le dessin. Touchez pour fermer.

Deux panneaux dessinés à la main avec les mêmes bougies. Ce que montre l’historique : une flèche d’achat pile sur le creux, à 48,00 $, avec le stop à 47,80 $, soit 0,20 de risque. Ce que vous pouviez trader en direct : la flèche apparaît cinq bougies plus tard, à 49,10 $, avec le stop toujours à 47,80 $, soit 1,30 de risque. En dessous : même mouvement, 1,30 de risque au lieu de 0,20.

Comment savoir si un indicateur se repeint : quatre tests

Vous n’avez pas besoin du code source, et les scripts sur invitation ou protégés le cachent de toute façon. Testez plutôt le comportement, idéalement pendant la séance régulière américaine, quand le prix bouge assez pour déclencher des signaux.

  1. Observez-le en direct sur un graphique de 1 minute. Notez chaque signal qui apparaît en cours de bougie et s’il est toujours là après la clôture. Surveillez aussi les marques qui apparaissent sur des bougies déjà clôturées.
  2. Comparez des captures d’écran avant et après. Prenez une capture, attendez 20 à 30 bougies, puis rechargez le graphique pour que le script recalcule comme historique les bougies qu’il a vues en direct. Comparez les deux images bougie par bougie. Tout signal qui a bougé, disparu ou qui est apparu sur une bougie plus ancienne se repeint.
  3. Utilisez Bar Replay. Démarrez quelques jours en arrière et avancez d’une bougie à la fois, en notant chaque signal et la bougie sur laquelle il est apparu pour la première fois. Quittez ensuite le replay et regardez les mêmes bougies sur le graphique normal. Si une marque se retrouve sur une bougie en arrière du point de replay, ou si le graphique normal montre des signaux que votre replay n’a jamais produits, l’indicateur se repeint. Sur la formule gratuite Basic, le replay est limité aux graphiques journaliers et supérieurs : consultez la page des formules de TradingView pour l’accès intraday.
  4. Créez une alerte et vérifiez où elle s’est déclenchée. Créez une alerte sur le signal de l’indicateur et laissez-la tourner pendant une séance. Le journal des alertes est une trace de ce qui s’est passé en direct. Ensuite, vérifiez que chaque alerte correspond à un signal sur la même bougie. Des alertes sans signal correspondant, ou des signaux sans alerte, trahissent un repainting. Pour ce test, choisissez Once Per Bar, qui se déclenche dès que la condition est remplie ; pour trader, Once Per Bar Close attend la clôture de la bougie.

Ce que « sans repainting » veut honnêtement dire

Un indicateur sans repainting fait une seule promesse : une fois qu’un signal est confirmé, il ne bouge jamais, ne change pas et ne disparaît pas. L’historique que vous parcourez correspond à ce que vous auriez vu en direct, bougie par bougie. La bougie ouverte peut encore se mettre à jour, mais rien ne change une fois qu’elle a clôturé.

Le prix de cette promesse, c’est le timing. Les signaux attendent la clôture de la bougie : vous agissez donc sur la bougie suivante, un peu plus tard qu’un outil qui clignote ne le suggérerait. Les outils basés sur des pivots confirment toujours en retard, car un swing ne peut être connu qu’après la formation de bougies à sa suite. Ce délai est du retard (lag), et le retard est honnête. Cela ne devient du repainting que lorsque la marque est dessinée en arrière dans le temps sans vous le dire.

Deux petites réserves. Les fournisseurs de données corrigent parfois une mauvaise transaction, et les indicateurs à longue mémoire peuvent légèrement varier selon la quantité d’historique que charge votre graphique ; aucun des deux n’est un défaut de conception. Et considérez la mention « sans repainting » dans la description d’un script comme une affirmation à tester avec les étapes ci-dessus. La plupart des outils intégrés de TradingView, comme le RSI, l’EMA et le VWAP, restent fixes une fois la bougie clôturée, ce qui en fait une base solide. Voyez les indicateurs par lesquels commencer.

Un mot pour les auteurs de scripts Pine Script

Si vous écrivez vos propres scripts, quelques habitudes éliminent l’essentiel du repainting :

  • Conditionnez les signaux avec barstate.isconfirmed pour qu’ils ne se déclenchent qu’à la mise à jour finale de la bougie. Cette valeur est toujours vraie sur les bougies historiques : historique et direct suivent donc la même règle.
  • Récupérez les valeurs d’unité de temps supérieure avec request.security(syminfo.tickerid, "60", close[1], lookahead = barmerge.lookahead_on). Le décalage [1] et le lookahead activé fonctionnent en paire et renvoient la dernière bougie d’unité de temps supérieure clôturée, aussi bien en historique qu’en direct. Le lookahead activé sans le décalage fait fuiter des données du futur, et la valeur par défaut (lookahead désactivé, sans décalage) lit en direct la bougie non clôturée.
  • Tracez les pivots sur la bougie où ils se confirment, ou faites d’un décalage en arrière une option à activer (opt-in) pour que les utilisateurs sachent ce qu’ils regardent.
  • Déclenchez les alertes à la clôture de la bougie, avec alert.freq_once_per_bar_close dans les appels alert().

Comment UpTickFlow gère le repainting

UpTickFlow est notre propre indicateur sur invitation : pesez donc ce que nous disons en conséquence. Ses signaux ne sont calculés que sur des bougies clôturées, et les valeurs d’unité de temps supérieure qu’il lit proviennent de bougies d’unité de temps supérieure clôturées. Une fois qu’un signal apparaît, il ne bouge pas et ne disparaît pas. L’entrée est planifiée à l’ouverture de la bougie suivante, le premier prix que vous pouvez réellement obtenir.

Cette conception fait arriver volontairement certaines choses en retard. Les zones de support et de résistance sont construites à partir de pivots de swing, et les divergences du RSI sont confirmées sur le swing : les deux apparaissent donc quelques bougies après le retournement. C’est le même retard honnête que celui décrit plus haut. Le tableau de résultats intégré, désactivé par défaut, simule les signaux affichés sur votre graphique, avec une entrée à l’ouverture de la bougie suivante et 1 tick de slippage par côté.

Vous pouvez faire vous-même chacun des tests de ce guide dessus. Si vous voulez essayer, ajouter un script sur invitation prend quelques minutes, et la formule est sur la page des tarifs. Le trading comporte de vrais risques, et aucun indicateur, avec ou sans repainting, ne les supprime.