Choisir une bibliothèque de backtesting est avant tout un pari sur la maintenance. Le code qui valorise votre stratégie doit encore être vivant quand une plateforme d'échange change une API, quand une nouvelle version de pandas casse un import, ou quand vous découvrez un bug à 2 h du matin. Cette revue commence donc par le signal le moins glamour, mais le plus décisif — le projet est-il réellement maintenu ? — et n'aborde qu'ensuite l'architecture, la vitesse et les fonctionnalités.

Chaque chiffre GitHub ci-dessous a été récupéré en temps réel via l'API GitHub le 2026-06-22, et les affirmations les plus fortes ont été recoupées avec des sources primaires (dépôts des projets, documentation officielle) et vérifiées de manière contradictoire. Lorsqu'un chiffre correspond au meilleur cas autoproclamé par un éditeur, c'est signalé.

Le test de réalité de la maintenance

Voici l'ensemble de l'écosystème classé par étoiles GitHub, avec un code couleur indiquant si le projet est réellement travaillé :

Outils de backtesting Python classés par étoiles GitHub et colorés selon l'état de maintenance (2026-06-22) : freqtrade, NautilusTrader et LEAN mènent le peloton activement maintenu, tandis que Backtrader est en sommeil et que Zipline, PyAlgoTrade et QSTrader sont abandonnés.

L'enseignement gênant : deux des noms les plus étoilés et les plus commentés sur les blogs sont en pratique du legacy.

Pendant ce temps, les projets qui livrent de vraies releases en 2026 sont Freqtrade (51.7k ⭐), NautilusTrader (24.1k ⭐), LEAN (20k ⭐), backtesting.py (8.5k ⭐), Jesse (8.1k ⭐), vectorbt (8.0k ⭐), PyBroker (3.4k ⭐), bt (2.9k ⭐) et Lumibot (1.7k ⭐). Les étoiles mesurent l'histoire ; les dates de commit mesurent si quelqu'un corrigera votre bug.

Deux architectures : événementielle vs vectorisée

L'autre bifurcation qui décide de tout, c'est la manière dont le moteur exécute votre stratégie.

Aucun ne l'emporte purement et simplement. On fait sa recherche avec le rapide et on valide avec le réaliste. Plus de détails sur ce compromis ci-dessous.

Les leaders activement maintenus

NautilusTrader — qualité production, événementiel, cœur en Rust

NautilusTrader (24.1k ⭐, LGPL-3.0) se décrit comme un « moteur de trading natif en Rust de qualité production avec une architecture événementielle déterministe » — la base de code est composée à ~70 % de Rust avec des bindings Python. Il backteste sur plusieurs plateformes et instruments à la résolution nanoseconde à partir de données tick et de carnet d'ordres, et propose ~20 intégrations en réel (Binance, Coinbase, Kraken, OKX, Bybit, Interactive Brokers, Betfair, et d'autres). Sa promesse phare : un code de stratégie identique de la recherche au déploiement en réel. C'est le choix le plus solide pour un public crypto + actions qui a besoin d'un réalisme au niveau du tick et d'un véritable chemin vers la production. Le prix à payer : une courbe d'apprentissage plus raide et une architecture plus lourde que les bibliothèques simples.

vectorbt — la recherche vectorisée à grande échelle

vectorbt (8.0k ⭐, Apache-2.0 + Commons Clause) est le moteur vectorisé. Son README : « au lieu de boucler sur les barres une stratégie à la fois, il empaquette des milliers de configurations dans des tableaux NumPy, accélère le chemin critique avec Numba et Rust, et les exécute toutes d'un coup, transformant des heures de grid search en secondes. » Tester 10 000 combinaisons de fenêtres dual-SMA en quelques secondes est l'exemple canonique ; des tiers rapportent des accélérations d'environ 1000× par rapport à Backtrader sur certaines charges de travail (chiffres de l'éditeur / de tiers, pas un benchmark indépendant). Le balayage de paramètres ci-dessous — 25 backtests sur des fenêtres SMA — est exactement ce que vectorbt industrialise :

Une carte thermique de balayage de paramètres : rendement total sur 25 combinaisons de fenêtres SMA rapide/lente, de −5 % à +54 %. Ce grid search est l'optimisation massive de paramètres que vectorbt est conçu pour exécuter en quelques secondes.

Deux mises en garde à connaître : la Commons Clause restreint la revente commerciale (pertinent si vous construisez un produit), et vectorbt PRO, soigné et payant, est un produit distinct de la version open source. vectorbt est uniquement pour le backtest — pas de trading en réel.

backtesting.py — le favori léger

backtesting.py (8.5k ⭐, AGPL-3.0) est celui vers lequel se tourner quand on veut un backtest propre, rapide et lisible, sans tout le cérémonial d'un framework. Définissez init() et next(), lancez, obtenez un objet de statistiques et un graphique Bokeh interactif. La licence AGPL-3.0 compte : c'est un copyleft fort avec des dispositions sur l'usage en réseau, ce qui le rend délicat au sein d'un SaaS propriétaire. Il est uniquement pour le backtest. La courbe de capitaux propres de cette page (couverture) et les statistiques ci-dessous proviennent d'un véritable run de backtesting.py — un simple croisement de SMA(20/50) sur une série synthétique :

Statistiques de performance de backtesting.py pour un exemple de croisement SMA(20/50) : +1.6 % de rendement contre +46 % en buy & hold, Sharpe 0.05, drawdown maximal −38 %, 4 transactions. Un résultat honnête — le croisement naïf a sous-performé la simple détention.

Notez le résultat honnête : le croisement naïf a rapporté +1.6 % contre +46 % pour le buy & hold, avec un brutal drawdown de −38 %. C'est le premier résultat normal d'un vrai backtest, et exactement pour cela qu'on balaie les paramètres et qu'on valide les hypothèses avant de croire quoi que ce soit.

Freqtrade — la valeur par défaut en crypto

Freqtrade (51.7k ⭐, GPL-3.0) est le projet le plus étoilé de cette liste et le bot de trading crypto open source de facto. Il fait du backtesting, du dry-run (trading papier) et du trading en réel sur les principales plateformes d'échange, piloté via Telegram ou une interface web intégrée, et publie des releases mensuelles. Il est uniquement crypto — pas d'actions — mais pour la crypto, c'est le standard maintenu et soutenu par la communauté.

Lumibot, bt, PyBroker, Jesse, LEAN, zipline-reloaded

Le cimetière — à éviter pour les nouveaux projets

Ceux-ci figurent encore dans les résultats de recherche et les vieux billets de blog, mais ne démarrez pas avec eux en 2026 :

L'architecture compte : le compromis du réalisme

La séparation vectorisé-vs-événementiel n'est pas académique. La vitesse de vectorbt vient de l'hypothèse que chaque exécution se fait au prix de la barre suivante sans slippage. Pour un filtre de momentum sur 500 actifs, c'est très bien. Pour une stratégie dont l'avantage réside dans l'exécution intra-barre — placement des stops, exécutions partielles, position dans la file d'attente — un backtest vectorisé vous mentira discrètement, et il vous faut un moteur événementiel (NautilusTrader, Backtrader) ou un dry-run en réel (Freqtrade, Lumibot) pour obtenir un chiffre honnête. Le workflow professionnel utilise les deux : vectorbt pour explorer l'espace des paramètres, un moteur événementiel pour valider les survivants.

Licences — à lire avant de construire un produit

Les bibliothèques de backtesting sont inhabituellement chargées en matière de licences, et plusieurs sont copyleft :

Licence Bibliothèques Ce qu'il faut savoir
AGPL-3.0 backtesting.py Le copyleft le plus fort ; l'usage en réseau/SaaS peut déclencher l'obligation de divulgation du code source
Apache-2.0 + Commons Clause vectorbt (version OSS) Permissive sauf que vous ne pouvez pas le vendre comme un produit
GPL-3.0 Backtrader, Freqtrade, Lumibot Copyleft ; distribuer une œuvre dérivée implique de l'ouvrir en open source
LGPL-3.0 NautilusTrader Copyleft plus faible ; l'édition de liens est généralement acceptable
MIT bt, Jesse, QSTrader, fastquant Permissive — faites presque tout ce que vous voulez
Apache-2.0 LEAN, zipline-reloaded, finmarketpy Permissive, avec une concession de brevet incluse

Si vous construisez quelque chose de commercial et propriétaire, les outils MIT/Apache sont les choix sans friction ; AGPL et Commons Clause nécessitent l'avis d'un juriste.

La comparaison en un coup d'œil

Outil ⭐ Étoiles Architecture Licence Maintenance Trading en réel Idéal pour
NautilusTrader 24.1k Événementielle (Rust) LGPL-3.0 🟢 Actif Oui Production, réalisme tick/carnet d'ordres
vectorbt 8.0k Vectorisée Apache+CC 🟢 Actif Non Recherche massive de paramètres
backtesting.py 8.5k Événementielle AGPL-3.0 🟢 Actif Non Backtests uniques rapides et propres
Freqtrade 51.7k Événementielle GPL-3.0 🟢 Actif Oui (crypto) Bot crypto maintenu
Backtrader 22.1k Événementielle GPL-3.0 🟡 En sommeil Oui Projets legacy (attention à l'obsolescence)
Lumibot 1.7k Événementielle GPL-3.0 🟢 Actif Oui Multi-actifs, backtest/réel unifiés
LEAN 20k Événementielle Apache-2.0 🟢 Actif Oui Plateforme multi-actifs poids lourd
bt 2.9k Vectorisée/pondérations MIT 🟢 Actif Non Stratégies d'allocation de portefeuille
PyBroker 3.4k Événementielle OSS 🟢 Actif Non Stratégies ML + walk-forward
zipline-reloaded 1.8k Événementielle Apache-2.0 🟢 Actif Non Académique, livre ML4T
Zipline (orig.) 19.9k Événementielle Apache-2.0 🔴 Abandonné Rien — utilisez reloaded
PyAlgoTrade 4.7k Événementielle 🔴 Archivé Rien de nouveau

Les étoiles et les statuts sont des instantanés au 2026-06-22 et évolueront ; la maintenance est la dimension la plus volatile, alors revérifiez l'activité des commits avant de vous engager.

Comment choisir, en une respiration

La seule règle qui survit à tous les régimes de marché : vérifiez la date du dernier commit avant de vérifier le nombre d'étoiles. Une bibliothèque à 22k étoiles qui n'a rien livré depuis 2023 est un chemin plus lent vers la production qu'une à 8k étoiles qui a publié la semaine dernière.


Méthodologie : les métriques GitHub ont été récupérées en temps réel via l'API GitHub le 2026-06-22 ; les affirmations sur l'architecture, la maintenance, les licences et le trading en réel ont été recoupées avec les dépôts des projets et la documentation officielle, et vérifiées de manière contradictoire, en s'appuyant sur des catalogues spécialisés (PyTrade.org, awesome-systematic-trading) et la liste d'alternatives de kernc. La courbe de capitaux propres, les statistiques et la carte thermique des paramètres sont de véritables sorties d'un run de backtesting.py sur une série de prix synthétique reproductible — à titre d'illustration, et non une recommandation de stratégie. Les chiffres de performance attribués aux éditeurs (les accélérations de vectorbt, la résolution nanoseconde de NautilusTrader) sont autoproclamés, et non des benchmarks indépendants.