167 stratégies, par les chiffres
Ce que recèle le corpus de parité PineForge : répartition par catégorie, actif et complexité. À lire comme un guide de musée pour la galerie.
Chiffres mis à jour le 2026-05-09 pour refléter la taille actuelle du corpus (167 stratégies de référence, 165 en parité stricte).
Quand nous disons « 165 sur 167 passent la parité stricte », ça ne prend sens que si vous savez ce que sont ces 167. Ce billet joue le rôle de guide de musée pour la galerie.
Pourquoi un corpus figé compte
Sans ensemble de référence fixe, la « parité » reste une sensation. Vous faites tourner quelques stratégies, ça ressemble à la vérité, vous shippez. Puis un utilisateur active des groupes de sortie OCA ou une boucle request.security, et plus rien ne colle. Les bogues étaient là ; vous ne les aviez tout simplement pas cherchés.
Un corpus figé change la dynamique. Chaque release du moteur exécute les mêmes 167 stratégies sur le même OHLCV canonique. Si le nombre qui passe augmente, quelque chose s’est amélioré. S’il baisse, une régression est entrée. Le corpus est un harnais de régression déguisé en galerie de backtests.
Ces 167 stratégies servent aussi d’attestation publique. Nous commitons dans la galerie les sorties moteur — nombre de trades, rendements totaux, ratios de Sharpe — pour que quiconque voie ce que le moteur produit réellement. Ce n’est pas la même chose qu’un communiqué qui « affirme » la parité.
Les trois catégories
Le corpus se divise en trois dossiers : basic, community, validation. Ce n’est pas un classement par qualité ; ça décrit d’où viennent les stratégies et ce qu’elles stressent dans le langage.
basic — 9 stratégies
La catégorie basic regroupe des stratégies canoniques et bien connues : croisement de moyennes mobiles, Supertrend, Stochastic lent, SAR parabolique, canal de Keltner, Inside Bar, breakout Donchian, méthode d’expansion de volatilité. Ce sont les exemples de manuel que l’on retrouverait dans n’importe quel cours d’algo-trading introductif.
Elles sont dans le corpus parce que c’est là que les compilateurs se ridiculisent en premier. Si un croisement MACD ne produit pas la bonne liste de trades, tout le reste devient suspect. basic, c’est la couche de santé mentale.
Les 9 stratégies basic vont de 14 trades (la stratégie momentum greedy, très sélective) à 7 580 trades (l’expansion de volatilité sur bougies 15 minutes, qui tire souvent). C’est un écart d’environ 500× à l’intérieur de la catégorie « simple » — ce qui en dit plus long sur la sélectivité que sur une notion abstraite de complexité.
community — 11 stratégies
community contient des scripts Pine fournis par la communauté algo. Une authorship réelle implique une variation réelle : styles de code différents, usages différents des builtins, cas limites dans le câblage du sizing et des sorties.
Parmi les 11 stratégies communautaires : un filtre RSI sur 4 EMA, un détecteur de courbe façon break-of-structure, une stratégie de liquidity sweep, un système trend-following appelé MarketShift, et d’autres encore. Les counts de trades vont de 71 (VCP, scanner de motifs très sélectif) à 2 541 (IES, qui tire presque à chaque barre). L’écart de rendement est large : MarketShift a rendu +3 231 $ sur la fenêtre de backtest ; IES −162 977 $. Être dans le corpus ne dit rien sur la rentabilité — seulement que ça compile et que ça produit des trades.
Les scripts communautaires sont la catégorie la plus dure à maintenir en parité. La diversité des auteurs fait surgir des combinaisons de fonctionnalités Pine que les suites de validation synthétiques n’anticipent pas toujours. Quand nous trouvons un nouvel écart de parité, il apparaît en général ici en premier.
validation — 147 stratégies
validation est de loin la plus grosse part : 147 entrées sur 167. Ce sont des stratégies synthétiques, conçues pour exercer une sémantique Pine précise — pas pour être rentables, mais pour prouver qu’une fonctionnalité donnée se traduit correctement en C++.
Quelques cibles individuelles :
49-partial-exit-qty-percent— testestrategy.exit(qty_percent=...)pour démontage partiel. Si le moteur crache trop de fills de sortie, c’est elle qui le signale.- Variantes
request.security— vérifient que les lookups multi-timeframes se résolvent à la bonne bougie, avec et sanslookahead=barmerge.lookahead_off. - Groupes de sortie OCA — quand une sortie tire, les sorties concurrentes sont-elles bien annulées ?
- Variantes de trailing stop — la cliquet du stop suit-elle correctement le plus haut historique à travers gaps et fills limite ?
- Tests de méthodes UDT — les méthodes sur types utilisateur Pine v6 compilent-elles vers les bonnes opérations sur struct C++ ?
La logique « si cette stratégie passe, la fonctionnalité X est couverte » est explicite quand nous ajoutons à ce dossier. Quand un script communautaire expose un nouveau cas limite, nous écrivons en général un repro synthétique minimal et l’ajoutons à validation.
À quoi ressemblent vraiment les chiffres
Les 167 stratégies du corpus actuel tournent sur le même actif et la même timeframe : ETHUSDT en 15 minutes. Contrainte volontaire — un seul OHLCV canonique rend les comparaisons entre stratégies pertinentes et retire les facteurs spécifiques à l’actif de l’analyse de parité.
Distribution du nombre de trades :
La stratégie médiane du corpus produit 757 trades sur la fenêtre. Le minimum est 14 (greedy). Le maximum est 11 218. Cet étalement compte pour les tests de parité : une stratégie à 14 trades avec une sortie mal placée, c’est environ 7 % d’erreur ; le même bogue sur une stratégie à 5 000 trades peut n’apparaître que dans les métriques agrégées même si la plupart des trades concordent.
Distribution des Sharpe :
Les Sharpe du corpus sont plus bas que dans une bibliothèque de stratégies triées sur le volet. La plupart des stratégies ont été choisies pour la couverture fonctionnelle de Pine, pas pour le rendement ajusté au risque. Le Sharpe médian sur les 167 stratégies est 0,023. 109 stratégies ont un rendement total positif sur la fenêtre ; 58 sont négatives.
Nous affichons ces chiffres avec franchise dans la galerie plutôt que de filtrer pour ne garder que les « bonnes » stratégies. Si vous cherchez l’inspiration, les colonnes rendement et Sharpe vous orientent. Si vous lisez pour la vérification de parité, les chiffres absolus sont secondaires — ce qui importe, c’est que PineForge et TradingView produisent les mêmes chiffres.
Ce que doit faire chaque stratégie du corpus
Quatre conditions :
- Compiler dans le codegen PineForge. Sans compilation, pas de test. La barre est plus haute qu’il n’y paraît : certains scripts communautaires utilisent des
importde bibliothèques hors sous-ensemble supporté. - Produire au moins un trade sur l’OHLCV canonique. Compiler sans jamais déclencher d’entrée empêche de comparer une liste de trades à quoi que ce soit.
- Avoir un CSV de référence TradingView. Chaque stratégie du corpus a un
engine_trades.csvissu de l’export « Liste des transactions », fenêtré sur la plage OHLCV. C’est la vérité terrain contre laquelle la sortie moteur est diffée. - Avoir sa sortie moteur commitée à côté du Pine source. La galerie sert ces sorties commitées. Rien n’est généré à la volée — c’est le snapshot du jour où la stratégie a été ajoutée ou mise à jour.
Pourquoi nous publions des agrégats, pas les sources
La galerie publie les counts de trades, les rendements, les Sharpe, les sparklines. Elle ne publie pas le code Pine ni les fichiers engine_trades.csv bruts pour toutes les stratégies.
Les raisons sont simples. Les scripts communautaires ont des auteurs ; nous n’avons pas un droit global de redistribuer leurs sources. Les exports CSV TradingView sont couverts par leurs propres conditions d’utilisation. Notre LEGAL.md interne le reflète.
Ce que nous pouvons publier — et publions — ce sont les statistiques récapitulatives et les sorties visuelles : sparklines, badges de tier de parité, métadonnées de galerie. Ce sont des dérivés suffisamment « à nous » pour être clairement identifiables, et suffisamment concrets pour être vérifiables : avec un compte TradingView Premium et le même script Pine, vous pouvez reproduire la même liste de trades et la comparer à notre sortie commitée vous-même.
Ce que la galerie permet
Quants solo qui cherchent des idées. Les 167 stratégies couvrent assez de variation sur les entrées, les sorties et les familles d’indicateurs pour donner une vue honnête de « ce qui compile et tourne sur le moteur aujourd’hui ». Triez par rendement, filtrez par catégorie, regardez les sparklines.
Ingénieurs qui vérifient les claims de parité. Pour savoir si l’affirmation 165 / 167 stricte de PineForge tient la route, la galerie est le point de départ. Chaque carte montre le tier de parité et le nombre de trades commité. La méthode d’attribution des tiers est décrite dans le billet d’ingénierie sur la validation croisée.
Baseline CI pour les releases moteur. Nous exécutons le barrage complet des 167 stratégies avant chaque release. Les snapshots de la galerie représentent la dernière baseline commitée. Si une release change la sortie d’une stratégie du corpus, le diff est attrapé avant l’expédition.
Pour aller plus loin
- Parcourir la galerie complète — les 167 stratégies, triables et filtrables par catégorie, nombre de trades et rendement.
- Essayer l’API codegen — transpiler une stratégie Pine et la faire tourner sur votre propre OHLCV en un appel d’outil depuis Claude ou Cursor.
- Demander l’early access — le tier gratuit inclut 100 transpilations par mois, assez pour amorcer votre propre corpus local.