FAQ Pine Script : backtests et alertes
4 min de lecture · Mis à jour le
Voici une FAQ en langage simple sur les deux questions Pine qui font trébucher presque tout le monde sur TradingView : pourquoi le backtest d'une stratégie paraît meilleur que le ressenti du trading réel, et pourquoi une alerte se déclenche parfois à un autre moment ou à un autre prix que prévu. Les deux viennent de la même cause profonde : un écart entre les données réellement disponibles au moment de la décision et ce que vos yeux voient une fois les bougies clôturées.
Quelle est la différence entre un indicateur, une stratégie et une alerte ?
Un indicateur (indicator()) ne fait que dessiner et calculer : il trace des lignes, des couleurs et des étiquettes. Une stratégie (strategy()) simule des ordres : elle appelle strategy.entry/strategy.exit, les exécute sur les bougies historiques et produit le rapport du Strategy Tester avec le bénéfice net, le drawdown et le taux de réussite. Une alerte est une couche de notification distincte que TradingView déclenche quand une condition est vraie ; elle ne trade rien par elle-même. La confusion commence quand on lit un backtest comme une promesse, ou qu'on attend d'une alerte qu'elle soit une exécution : ce sont trois métiers différents. Pour la distinction plus approfondie, voyez le guide indicateur ou stratégie.
Pourquoi mon backtest paraît-il excellent alors que les résultats réels ne correspondent pas ?
Quatre éléments gonflent un backtest par rapport à la réalité, et tous se corrigent :
- Hypothèses de clôture de bougie ou intrabar. Par défaut, le Strategy Tester évalue la logique à la clôture de la bougie. Si votre condition utilise le plus haut, le plus bas ou la
clôturede la bougie en cours d'une façon qui ne serait connue qu'après la fin de la bougie, l'exécution historique utilise une information que le trade réel n'aurait pas pu avoir. - Exécutions par défaut à des prix irréalistes. Un ordre au marché dans le testeur est exécuté à l'ouverture de la bougie suivante ; sur une ouverture rapide, ce prix peut être à plusieurs ticks ou points en réel.
- Aucune commission ni aucun slippage modélisés. Si vous laissez
commission_valueetslippageà zéro dansstrategy(), chaque trade simulé est sans friction. Ajoutez des valeurs réalistes : même une fraction de tick de slippage fait passer beaucoup de systèmes de scalping « rentables » en négatif. (La commission se règle aveccommission_typeetcommission_value.) - Échantillons minuscules. Douze trades qui ont tous marché forment un échantillon trop petit pour parler d'avantage. Voyez comment repérer les systèmes de trading surajustés avant de faire confiance à une courbe.
Exemple : un système affichant +4200 $US sur 40 trades ES avec zéro frais paraît très différent une fois que vous ajoutez une commission aller-retour de 2,50 $US et un tick de slippage de chaque côté, entrée et sortie. Un tick sur ES vaut 0.25 point = 12,50 $US, donc deux ticks valent 25,00 $US ; ajoutez la commission de 2,50 $US et vous obtenez 27,50 $US de friction par trade. Sur 40 trades, cela fait environ 1100 $US, ce qui transforme un +4200 $US affiché en environ +3100 $US, et pire si les entrées se concentrent sur des ouvertures volatiles où le slippage réel dépasse un seul tick.
Qu'est-ce que le repainting, et cela veut-il dire que le script est cassé ?
Pas forcément. Le « repainting » est un terme générique pour un script qui affiche sur les bougies historiques des valeurs différentes de celles qu'il produisait en temps réel. Le test honnête est simple : la décision aurait-elle pu être prise avec la même information, au même moment, en direct ? Un signal qui ne se confirme qu'après la clôture de la bougie fait son travail : il attend la clôture avant de confirmer. Les ennuis viennent des scripts qui tracent un signal sur la bougie en formation puis le déplacent une fois la bougie terminée, ou qui récupèrent des données d'unité de temps supérieure avec lookahead activé. Si vous voulez un signal sur lequel agir, évaluez-le sur barstate.isconfirmed (clôture de bougie), qui ne réagit qu'à la bougie terminée.
Pourquoi mon alerte s'est-elle déclenchée tard, à un autre prix, ou deux fois ?
- « Une fois à la clôture de la bougie » ou « une fois par bougie ». Une alerte réglée pour se déclencher sur la bougie en formation peut partir à l'instant où une condition passe brièvement à vrai en intrabar, puis la bougie clôture ailleurs et cela paraît « faux ». Un déclenchement à la clôture de la bougie est plus tardif, mais il correspond au moment où une stratégie confirmée prend réellement sa décision (la stratégie agit ensuite à l'ouverture de la bougie suivante).
- Le prix de l'alerte est un instantané au moment où l'alerte s'est déclenchée. Votre courtier vous exécute au prix du marché en direct, qui bouge dans les millisecondes entre l'alerte et votre ordre.
- Les doubles déclenchements signifient généralement que la condition est restée vraie sur plusieurs ticks et que l'alerte était configurée pour se déclencher à chaque tick alors qu'elle devrait se déclencher une fois par bougie.
En quoi cela se rattache-t-il à la méthode des plans de trading ?
Les plans de trading contournent tout le problème du « mon signal a-t-il repeint ? » en vous donnant des niveaux fixes et planifiés à l'avance. Les niveaux quotidiens, tracés sur ES, SPY, NQ et QQQ avant l'ouverture, sont calculés après la clôture précédente et ne bougent pas pendant la séance, donc il n'y a rien à repeindre : chaque niveau est fixé avant 9 h 30 ET et ne bouge plus. MyLinedChart ne fait que tracer ces niveaux ; il ne simule jamais d'ordres, donc il ne porte aucune des hypothèses d'exécution des backtests ci-dessus. Si un niveau publié contredit votre propre alerte ou stratégie, voyez-y une information, et la réponse est souvent d'attendre. Pour le vocabulaire, voyez le glossaire des plans de trading.
Checklist pratique avant de faire confiance à un résultat Pine
- Confirmez la logique sur
barstate.isconfirmedpour que le backtest et le réel partagent le même moment de décision. - Réglez une commission et un slippage réalistes,
commission_type,commission_valueetslippagedansstrategy(), pour l'instrument que vous tradez réellement. - Choisissez la fréquence des alertes délibérément : clôture de bougie pour la confirmation, une fois par bougie pour éviter les doublons.
- Jugez les résultats sur assez de trades pour qu'ils comptent.
- Gardez les superpositions de contexte (comme les niveaux publiés) séparées de l'autorité d'exécution : le graphique éclaire la décision, vos règles écrites la prennent.
À lire aussi
- Guide Pine Script : indicateur ou stratégie
- Comment repérer les systèmes de trading surajustés
- Guide du trading : confirmation ou premier contact
Sources
- Documentation Pine Script de TradingView : stratégies
- Documentation Pine Script de TradingView : repainting
- Documentation Pine Script de TradingView : alertes
- CFTC : avis sur les fraudes aux systèmes de trading
Contenu éducatif uniquement. Ceci n'est pas un conseil en investissement.
Contenu éducatif uniquement. Ceci n'est pas un conseil en investissement.