Méta

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.

6 min de lecture#corpus#gallery#stats

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 — teste strategy.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 sans lookahead=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 :

PlageStratégies
Moins de 1007
100 – 49941
500 – 99968
1 000 – 4 99944
5 000 ou plus7

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 :

  1. 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 import de bibliothèques hors sous-ensemble supporté.
  2. 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.
  3. Avoir un CSV de référence TradingView. Chaque stratégie du corpus a un engine_trades.csv issu 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.
  4. 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.