Tester une stratégie Pine Script sur des données qu'elle n'a jamais vues
Réponse courte : pour tester une stratégie Pine Script sur des données qu'elle n'a jamais vues, il faut garder la fin de l'historique fermée pendant qu'on construit la stratégie, puis rejouer une seule fois le script inchangé sur cette fin. Le juge en ligne gratuit de Strategy Arena le fait dans votre navigateur : il scelle les 20 % finaux des bougies (BTCUSDT ou votre propre CSV), rejoue votre script Pine v5 et rend un verdict, résiste, mirage, non concluant ou pas assez de trades, avec la règle exacte où la stratégie tombe.
Collez votre stratégie Pine dans le juge en ligne → Sans compte, sans installation. Recherche sur données passées, pas un conseil.
Pourquoi un backtest qui ne garde rien de côté prouve peu
Un rapport de stratégie calculé sur tout l'historique qui a servi à choisir les règles répond à une seule question : ces règles collent-elles à cet historique ? Si vous avez essayé quelques longueurs, seuils ou filtres et gardé le meilleur, une partie du résultat est le bruit de cet historique précis. Le rapport a la même allure, que la règle ait trouvé quelque chose ou qu'elle ait seulement appris le passé par cœur.
C'est une raison fréquente pour laquelle une stratégie TradingView brillante en backtest déçoit en réel : la période réelle est la première donnée que la règle n'a vraiment jamais vue.
Le remède est ancien et simple : couper l'historique avant de regarder.
| Partie | Part | Ce qui s'y passe |
|---|---|---|
| Entraînement | les 80 % premiers des barres | le script tourne ; c'est là qu'un résultat peut être réglé, même sans le vouloir |
| Période scellée | les 20 % finaux des barres | gardée fermée ; le script inchangé y est rejoué une fois, et le verdict repose sur elle |
Quand le résultat d'entraînement est fort et que le résultat scellé s'effondre, nous parlons de mirage : le résultat n'existait que sur les données qui l'ont fabriqué. Une période scellée reste une donnée passée. Elle ne prédit pas le mois suivant ; elle dit seulement si le résultat a tenu une fois hors des données sur lesquelles il a été réglé.
Pas à pas : juger votre stratégie dans le navigateur
1. Coller la stratégie
Ouvrez le juge de stratégie en ligne et collez une strategy(...) Pine Script v5 complète. Le juge lit les réglages du script : capital, taille de position, commission, glissement (slippage) et moment d'exécution. Avec process_orders_on_close=true, les ordres sont exécutés à la clôture de la barre du signal ; sans, à l'ouverture suivante, comme sur TradingView. Si le script ne déclare aucune commission, le juge applique 10 pb par exécution.
Si l'importeur ne peut pas reprendre une construction sans changer la règle, le juge refuse le script et donne la raison, la fonction et la ligne, plutôt que de tester une stratégie approchée.
2. Choisir BTCUSDT ou vos propres bougies
Par défaut, le juge utilise BTCUSDT de Binance : 1D (tout l'historique), 4h (3 ans) ou 1h (1 an).
Depuis le 6 novembre 2026, vous pouvez charger vos propres bougies : un fichier CSV avec time, open, high, low, close, volume, depuis une source dont les conditions autorisent votre propre backtest. Le fichier est lu dans votre navigateur et n'est pas envoyé à notre serveur. Vous restez responsable de vos droits sur les données que vous chargez.
Exemple d'une telle source : Binance Vision (data.binance.vision), dont les conditions autorisent le backtest algorithmique historique pour une recherche purement personnelle, hors production (licence CC BY-NC-SA 4.0). Pour obtenir un fichier mensuel, d'après le README officiel :
- Choisissez le marché, le symbole et l'unité de temps, puis composez le chemin :
https://data.binance.vision/data/spot/monthly/klines/BTCUSDT/1h/BTCUSDT-1h-2026-09.zip(symbole, unité, année et mois figurent dans le nom). - Téléchargez le
.zipet son fichier.CHECKSUM, dans le même dossier, puis vérifiez-le :sha256sum -c BTCUSDT-1h-2026-09.zip.CHECKSUMsous Linux,shasum -a 256 -c …sous macOS. - Décompressez-le et déposez le
.csvdans le juge.
Les fichiers spot n'ont pas de ligne d'en-tête ; le juge lit alors les colonnes dans l'ordre time, open, high, low, close, volume et affiche un avertissement. Depuis le 1er janvier 2025, les horodatages spot de Binance Vision sont en microsecondes ; le juge lit les secondes, millisecondes, microsecondes et les dates ISO 8601.
Le juge demande au moins 300 bougies. Un mois de barres 1h fait environ 720 bougies, assez pour lancer le calcul. Un mois de barres 1D n'en fait qu'une trentaine : réunissez d'abord plusieurs fichiers mensuels en un seul CSV (nous avons vérifié le 6 novembre 2026 que dix fichiers journaliers de 2026 réunis en un, soit 304 barres, sont lus en 1D avec un tick de 0,01). Sous le jour, le juge garde les 8 760 dernières barres. Le tick est estimé à partir des décimales des prix et peut être corrigé ; il ne compte que si le script déclare slippage.
Avec vos propres bougies, il n'y a pas de carte de partage publique, car le serveur ne peut pas vérifier votre fichier. Le reçu affiche à la place l'empreinte SHA-256 du fichier.
3. Lire le verdict et « Où la stratégie tombe »
Le juge rend l'un des quatre verdicts. En dessous, le bloc Où la stratégie tombe liste les règles du moteur dans l'ordre où il les applique, chacune avec sa valeur et son seuil. La règle qui tranche est en rouge, et l'étape où le juge s'arrête porte l'étiquette « le juge s'arrête ici ». Un graphique, Avant et après le sceau, montre le résultat de l'entraînement, puis le résultat scellé et la détention de l'actif, avec un pointillé « si le rythme de l'entraînement avait continué ». La cassure se voit à l'angle.
| Étape | Règle (mode libre) | Verdict si elle échoue |
|---|---|---|
| 1. Assez de trades ? | au moins 10 trades d'entraînement avant d'ouvrir le sceau ; au moins 10 trades sur la période scellée | pas assez de trades |
| 2. Mirage ? | pas de perte sur la période scellée ; Sharpe déflaté d'entraînement d'au moins 50 % | mirage |
| 3. Résiste ? | mieux que la détention de l'actif ; des marchés aléatoires font aussi bien 5 fois sur 100 au plus (test SPA, 1 000 tirages ou plus) ; Sharpe déflaté d'au moins 95 % | non concluant |
Si les trois étapes passent, le verdict est résiste à la période scellée. Le mode certifié ajoute des règles plus strictes, comme un nombre minimal d'événements indépendants.
4. Que faire de chaque verdict
- Pas assez de trades : aucune conclusion, dans un sens ou dans l'autre. Essayez un historique plus long ou une unité de temps plus courte avec le même script. Modifier les règles pour trader davantage donne un nouveau script, qui mérite sa propre période scellée.
- Mirage : le résultat n'a pas tenu hors de ses données d'entraînement. Retoucher la même règle jusqu'à ce que la période scellée passe au vert consommerait cette période : une fois regardée, elle n'est plus inédite. Gardez une période plus récente de côté pour l'idée suivante.
- Non concluant : le script n'a pas perdu d'argent, mais au moins une règle de l'étape 3 a échoué, souvent face à la détention ou face aux marchés aléatoires. Une piste à creuser, pas une preuve.
- Résiste : une période scellée, un actif, une unité de temps. Une raison de tester ailleurs, pas une prévision.
Un exemple réel : le croisement MACD, mirage en 1D
Nous avons pris le script exact du croisement MACD publié dans notre article 7 stratégies Pine Script gratuites (en anglais : 10 % du capital par entrée, commission de 0,1 %, slippage=1, exécution à l'ouverture suivante) et l'avons jugé sur les bougies journalières BTCUSDT le 6 novembre 2026. Fenêtre : 3 348 barres journalières, du 17 août 2017 au 16 octobre 2026 ; période scellée à partir du 17 décembre 2024.
| Mesure | Valeur |
|---|---|
| Entraînement (80 %) : résultat, trades | +57,64 %, 91 trades |
| Période scellée (20 %) : résultat, trades | −0,52 %, 28 trades |
| Détention du BTC sur la période scellée | −23,26 % |
| Sharpe déflaté, entraînement | 99,9 % |
| Marchés aléatoires qui font aussi bien (SPA) | 42,4 % |
| Verdict | Mirage (règle : perte sur la période scellée) |
« Où la stratégie tombe » se lit ainsi : assez de trades (28, seuil 10), puis le résultat scellé en rouge, −0,52 % pour un seuil au-dessus de 0. Le juge s'arrête à l'étape 2. L'étape 3, grisée, est donnée pour information : le script a perdu bien moins que la détention du BTC (+22,74 points), mais des marchés aléatoires ont fait aussi bien 42,4 fois sur 100. Une perte sur la période scellée reste un mirage, même quand la détention a perdu davantage.
Le même jour, le même script exact était non concluant en 4h (49 trades) et mirage en 1h (65 trades). Aucun des sept scripts de cet article n'a résisté.
Les limites du juge
- Pine v5 seulement, et seulement le sous-ensemble que l'importeur prend en charge. Un script refusé reçoit la raison exacte ; le juge ne lui substitue jamais une stratégie approchée.
- Constructions refusées : tout ce dont la conversion changerait la règle. Le glissement est compté comme un frais supplémentaire, à son pire cas sur les données, et refusé quand ce pire cas dépasse 1 pb par exécution ou que la valeur n'est pas un nombre écrit en clair.
- Minimum de trades : 10 à l'entraînement, 10 sur la période scellée. Quatre des sept scripts d'exemple ont fini en « pas assez de trades » en 1D le 6 novembre 2026.
- Une seule fenêtre scellée : les 20 % finaux, une fois. Une période, un actif, une unité de temps. Cela ne dit rien de la période suivante.
- Ce n'est pas TradingView : c'est notre moteur, exécuté dans votre navigateur. Le 1er novembre 2026, sur BINANCE:BTCUSDT en 1D, 8 scripts couvrant les quatre modèles d'exécution ont retrouvé TradingView sur 2 433 trades clos sur 2 433 pour les dates, et 2 418 pour les prix. Une mesure sur ces scripts, pas une garantie pour tout Pine.
- Un script tel quel : aucune recherche de variantes. Pour chercher des variantes et compter chaque essai, utilisez la Lab Strategy Arena, gratuite pour Windows et Linux.
Le fonctionnement des statistiques (test SPA, Sharpe déflaté, comptage des essais) est décrit dans la méthodologie. Pour comparer les outils de test hors échantillon, voir tester une stratégie Pine hors échantillon, comparatif.
Pour écrire ou modifier un Pine, il faut un compte TradingView. Ouvrir TradingView (lien partenaire : un abonnement éligible peut nous rapporter une commission ; l'offre gratuite suffit pour écrire un script).
FAQ
Comment tester gratuitement une stratégie Pine Script hors échantillon ?
Collez le script Pine v5 dans le juge en ligne de Strategy Arena, puis choisissez BTCUSDT ou chargez vos propres bougies en fichier CSV. Le juge rejoue le script sur les 80 % premiers des barres, garde les 20 % finaux scellés et rend son verdict sur cette période scellée. Le calcul tourne dans votre navigateur, sans compte ni installation.
Pourquoi ma stratégie TradingView marche en backtest et perd en réel ?
Une cause fréquente : les règles et les réglages ont été choisis sur l'historique même qui a produit le rapport, si bien que le résultat décrit en partie le bruit de cet historique. Rejouer le script inchangé sur une période mise de côté dès le départ montre si le résultat tient hors des données sur lesquelles il a été réglé. C'est un contrôle sur données passées, pas une prévision du trading réel.
Puis-je utiliser mes propres données à la place de BTCUSDT ?
Oui. Chargez un fichier CSV avec les colonnes time, open, high, low, close et volume, depuis une source dont les conditions autorisent votre propre backtest, par exemple Binance Vision. Le fichier est lu dans votre navigateur et n'est jamais envoyé. Le juge demande au moins 300 bougies.
Que veut dire le verdict mirage ?
Le script a perdu de l'argent sur la période scellée, ou son résultat d'entraînement ne résiste pas au Sharpe déflaté (sous 50 %). Le juge s'arrête là, et le bloc « Où la stratégie tombe » affiche la règle exacte en rouge.
Que faire après un verdict « pas assez de trades » ?
Le lire comme « pas de conclusion », pas comme un échec. La période scellée demande au moins 10 trades, et l'entraînement au moins 10 avant que le sceau soit ouvert. Un historique plus long ou une unité de temps plus courte peut donner plus de trades ; modifier les règles pour trader davantage en fait un nouveau script.
Le juge est-il le testeur de stratégie de TradingView ?
Non. C'est le moteur de Strategy Arena, compilé en WebAssembly, qui suit les réglages d'exécution du script. Le 1er novembre 2026, il a retrouvé les dates de TradingView sur 2 433 trades clos sur 2 433, pour 8 scripts sur BINANCE:BTCUSDT en 1D. C'est une mesure sur ces scripts, pas une garantie pour tout Pine.
Étape suivante
- Votre propre stratégie : collez-la dans le juge en ligne.
- Des exemples pour commencer : 7 stratégies Pine Script gratuites, avec leurs verdicts (en anglais).
- Chercher des variantes et compter les essais : télécharger la Lab gratuite.
Recherche sur données passées, pas un conseil. Les résultats passés ne garantissent pas les résultats futurs.
Note de révision, 6 novembre 2026 : première version. Les chiffres du MACD viennent du juge, qui fait tourner le moteur de la Lab 256, sur les données BTCUSDT arrêtées au 16 octobre 2026 ; les étapes Binance Vision ont été vérifiées le même jour sur les fichiers BTCUSDT 1h et 1D de septembre 2026.
⚠️ Avertissement — Cet article est publié à titre informatif et éducatif uniquement. Il ne constitue en aucun cas un conseil en investissement ou une recommandation d'achat/vente. Les performances passées ne préjugent pas des performances futures. Strategy Arena est un simulateur éducatif avec capital virtuel. Faites vos propres recherches avant toute décision d'investissement.