Qu’est-ce que Pine Script ?
Pine Script est un langage conçu pour une seule tâche : transformer des données de prix et de volume en calculs et en tracés sur un graphique TradingView. TradingView le décrit comme volontairement léger, destiné à développer des indicateurs et des stratégies que l’on peut ensuite backtester, et dit vouloir le garder accessible au public le plus large possible. Ce n’est pas un langage généraliste comme Python ou JavaScript : il fonctionne dans le cloud, et les scripts s’exécutent sur les serveurs de TradingView, pas sur votre ordinateur.
On l’écrit dans le Pine Editor, un onglet en bas du graphique. Enregistrer un script le stocke sur les serveurs de TradingView, dans votre compte, et l’ajouter à un graphique l’y exécute. La version en cours au moment où ces lignes sont écrites est la version 6, et un script indique sa version sur sa première ligne pour que le compilateur sache quelles règles appliquer.
- Pine Script
- Le langage de programmation de TradingView pour écrire des indicateurs, des stratégies et des bibliothèques. Les scripts s’exécutent sur les serveurs de TradingView et affichent leurs résultats sur les graphiques.
- Pine Editor (éditeur Pine)
- L’éditeur de code intégré à TradingView, ouvert depuis un onglet en bas du graphique. C’est là que les scripts sont écrits, enregistrés dans votre compte et ajoutés au graphique.
Indicateur, stratégie ou bibliothèque : quelles sortes de scripts Pine existe-t-il ?
Chaque script déclare ce qu’il est, avec exactement une déclaration. Il en existe trois sortes, résumées dans le dessin ci-dessous et dans la liste qui suit.
La différence entre les deux premières compte pour tout utilisateur. Un indicateur vous montre une information et vous laisse la décision. Une stratégie place en plus des ordres hypothétiques selon ses règles et indique ce qu’ils auraient donné sur les données passées, ce qui est utile et facile à mal interpréter, comme l’explique la section sur les limites. Les meilleurs indicateurs TradingView présente les indicateurs intégrés à connaître.
- Indicateur, déclaré avec indicator() : effectue des calculs et les affiche sous forme de tracés, de dessins ou d’alertes. C’est la sorte de script la plus courante ; le RSI intégré en est un exemple.
- Stratégie, déclarée avec strategy() : simule des ordres et des transactions sur les données du graphique, pour backtester un système de trading puis le tester en conditions réelles. Elle ajoute un rapport de stratégie avec les résultats hypothétiques.
- Bibliothèque, déclarée avec library() : un ensemble de fonctions réutilisables que d’autres scripts importent. C’est un outil pour programmeurs, pas quelque chose que l’on ajoute à un graphique pour obtenir des signaux.
- Indicateur (Pine Script)
- Un script déclaré avec indicator(), qui effectue des calculs sur les données du graphique et les affiche sous forme de tracés, de dessins ou d’alertes. Il ne simule pas de transactions.
- Stratégie (Pine Script)
- Un script déclaré avec strategy(), qui simule des ordres et des transactions sur les bougies historiques et en direct et en présente les résultats hypothétiques. Il sert au backtest et au test en conditions réelles.
- Bibliothèque (Pine Script)
- Un script déclaré avec library(), qui exporte des fonctions et d’autres éléments de code réutilisables que les indicateurs, les stratégies et les autres bibliothèques peuvent importer.
À quoi ressemble un script Pine Script ? Un exemple en quatre lignes
Le script du dessin en haut de la page est complet : collez-le dans le Pine Editor, enregistrez-le et cliquez sur Add to chart, et une moyenne mobile simple sur 20 bougies apparaît sur le graphique des prix. La liste ci-dessous le parcourt ligne par ligne.
Deux idées qu’il contient valent pour tous les scripts. D’abord, le script ne parcourt pas lui-même le graphique : TradingView exécute le script entier une fois sur chaque bougie, de la plus ancienne à la plus récente, et close désigne le cours de clôture de la bougie en cours de traitement. Ensuite, les fonctions dotées d’un préfixe comme ta. sont fournies toutes prêtes : un appel remplace le calcul. L’usage de cette moyenne est expliqué dans les moyennes mobiles.
- La ligne 1, //@version=6, est une annotation pour le compilateur. Elle indique à TradingView que le script est écrit dans la version 6 du langage.
- La ligne 2, indicator("Simple MA", overlay = true), est la déclaration. Le script est un indicateur nommé Simple MA, et overlay = true le trace sur le graphique des prix plutôt que dans un volet séparé en dessous.
- La ligne 3, length = input.int(20, "Length", minval = 1), est un paramètre. Elle crée un réglage en nombre entier intitulé Length, de valeur par défaut 20 et de minimum 1, et range la valeur choisie sous le nom length.
- La ligne 4, plot(ta.sma(close, length), color = color.blue), est le calcul et la sortie. ta.sma() calcule la moyenne mobile simple du cours de clôture sur length bougies, et plot() la trace en ligne bleue.
Comment lire les paramètres d’un script sans savoir programmer ?
On peut apprendre beaucoup sur un script sans lire une ligne de code. Double-cliquez sur son nom dans le graphique, ou survolez ce nom et cliquez sur le bouton des paramètres (Settings) : la fenêtre des paramètres s’ouvre. Son onglet Inputs énumère chaque réglage que l’auteur a choisi de rendre modifiable ; l’onglet Style règle les couleurs et les styles de ligne ; l’onglet Visibility fixe les unités de temps sur lesquelles le script s’affiche.
Chaque champ de cette fenêtre vient d’une fonction input du code. Dans l’exemple ci-dessus, input.int(20, "Length", minval = 1) explique pourquoi l’onglet Inputs affiche un champ nommé Length rempli avec 20. Passez-le à 50, et le script s’exécute à nouveau sur tout le graphique avec la nouvelle valeur. Arrêtez ces choix avant de créer des alertes, comme le conseille les meilleurs paramètres TradingView. Ce qu’il faut regarder :
- Les longueurs et les périodes : sur combien de bougies chaque calcul remonte.
- Les sources : quel prix le script lit, en général la clôture.
- Les unités de temps : s’il va chercher des données sur une unité de temps supérieure, ce qui compte pour le repainting.
- Les interrupteurs : quelles parties de l’affichage, ou quels signaux, peuvent être désactivés.
- La description sur la page du script : ce qu’il fait et comment l’utiliser, la seule chose dont vous disposez quand le code est caché.
- Paramètres du script (inputs)
- Les réglages que l’auteur d’un script rend modifiables, affichés dans l’onglet Inputs de la fenêtre des paramètres du script. Chacun est créé par une fonction input du code et possède une valeur par défaut que l’utilisateur peut changer.
Scripts open source, protégés et sur invitation : quelle différence ?
Quand un auteur publie un script, il choisit qui peut voir le code et qui peut l’utiliser. TradingView propose trois types de visibilité, montrés dans le dessin ci-dessous.
Les scripts sur invitation sont les seuls scripts publiés que leur auteur peut faire payer ; les scripts open source et protégés sont gratuits par définition, et TradingView précise qu’il ne prend aucune part à ces ventes. UpTickFlow, l’indicateur publié par ce site, est un script sur invitation ; il est décrit sur la page de l’indicateur. Les étapes pour en ajouter un figurent dans comment ajouter un script invite-only.
Un code caché n’est pas un signal d’alarme en soi, mais il change ce que vous pouvez vérifier. Avec un script open source, vous pouvez lire exactement ce qu’il calcule. Avec un script fermé, vous vous fiez à la description, aux paramètres et à vos propres tests : testez donc avant de lui faire confiance.
- Open source : tout le monde peut lire le code et ajouter le script à un graphique. TradingView indique qu’environ la moitié de ses plus de 150 000 scripts communautaires sont open source.
- Protégé (protected) : le code est caché à tous sauf à l’auteur, mais chacun peut ajouter le script et l’utiliser librement. Seuls les auteurs ayant un abonnement payant peuvent publier ainsi.
- Sur invitation (invite-only) : le code est caché, et seuls les utilisateurs auxquels l’auteur a donné accès peuvent ajouter le script. Publier ainsi exige un abonnement Premium ou supérieur.
- Script open source
- Un script publié sur TradingView dont tout le monde peut lire le code Pine Script. On peut l’étudier, le vérifier et, dans le respect des règles de réutilisation de TradingView, s’en servir comme base.
- Script protégé (protected)
- Un script publié dont le code est caché à tous sauf à son auteur, mais que tout utilisateur peut ajouter à un graphique et utiliser gratuitement.
- Script sur invitation (invite-only)
- Un script publié dont le code est caché et que seuls les utilisateurs approuvés par l’auteur peuvent ajouter à un graphique. C’est la seule sorte de script que son auteur peut faire payer.
Un script Pine peut-il envoyer des alertes ?
Oui, en deux temps. Le code du script définit des événements d’alerte : alertcondition() dans les indicateurs, alert() dans les indicateurs et les stratégies, et les exécutions d’ordres dans les stratégies. Aucun code ne peut pourtant activer une alerte tout seul ; c’est vous qui créez l’alerte depuis le graphique, en choisissant l’un de ces événements comme condition. Dès lors, elle tourne sur les serveurs de TradingView, que vous soyez connecté ou non.
Deux détails surprennent souvent. Les alertes ne se déclenchent que sur la bougie en temps réel, jamais sur l’historique. Et quand vous en créez une, TradingView enregistre une copie du script et de ses paramètres avec le symbole et l’unité de temps du graphique : les changements de réglages ultérieurs n’atteignent donc pas une alerte en cours, il faut la supprimer et en créer une nouvelle. Comment créer une alerte sur TradingView détaille la fenêtre et les options de déclenchement.
Quelles sont les limites de Pine Script ?
Pine Script est volontairement étroit, et connaître ses frontières évite la plupart des malentendus.
- Il s’exécute sur les serveurs de TradingView, sur les bougies du graphique. Comme chaque script consomme des ressources de calcul partagées, TradingView limite le temps d’exécution, la mémoire, la taille du script et les données qu’il peut demander. Un script est plafonné à 64 tracés comptabilisés, par exemple, et le nombre de bougies historiques qu’il voit dépend de l’abonnement, de 5 000 à 40 000.
- Il se comporte différemment sur la bougie ouverte. Sur les bougies historiques, un indicateur s’exécute une fois par bougie, sur des prix définitifs. Sur la bougie en temps réel, il s’exécute à nouveau à chaque mise à jour du prix : ses valeurs peuvent donc changer jusqu’à la clôture, comme le montre le dessin ci-dessous.
- Cette différence est à l’origine du repainting. La documentation de TradingView définit le repainting comme un comportement du script qui fait diverger les calculs ou les tracés entre l’historique et le temps réel, et estime que plus de 95 % des indicateurs en présentent une forme, souvent sans gravité. Le repainting sur TradingView explique quelles formes trompent et comment les tester.
- Les résultats d’une stratégie sont une simulation. Ses ordres sont hypothétiques : ils sont exécutés par l’émulateur de TradingView à partir des données du graphique, pas sur un marché. Un beau rapport est un point de départ pour tester, pas une preuve ; voir comment backtester une stratégie de trading et le surajustement des backtests.
- Il ne trade pas à votre place. Un script calcule, trace et crée des événements d’alerte ; ce que vous en faites reste votre décision.
- Bougie historique
- Une bougie clôturée du graphique, dont les prix sont définitifs. Un indicateur s’exécute une fois sur chaque bougie historique.
- Bougie en temps réel
- La bougie encore en formation au bord droit du graphique. Un script s’exécute à nouveau à chaque mise à jour de son prix : ses résultats peuvent donc changer jusqu’à la clôture.
Faut-il apprendre Pine Script ?
La plupart des traders n’en écrivent jamais une ligne. Les indicateurs intégrés et les scripts de la communauté couvrent les outils courants, et lire les paramètres suffit pour bien s’en servir. Apprendre les bases est utile dans deux cas : quand vous voulez vérifier ce que fait réellement un script open source, et quand vous voulez tester une règle à vous au lieu de croire quelqu’un sur parole.
Si vous vous lancez, le conseil de TradingView lui-même est de commencer par lire du bon code : les indicateurs intégrés, dont la source s’ouvre par l’icône en accolades à côté de leur nom, et les scripts open source choisis par ses éditeurs. Changez ensuite une seule chose à la fois et observez le graphique. Et entraînez-vous sur un compte de paper trading avant qu’une règle que vous avez codée ne touche de l’argent réel.