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é :

L'enseignement gênant : deux des noms les plus étoilés et les plus commentés sur les blogs sont en pratique du legacy.
- Backtrader (22.1k ⭐) est le célèbre framework que tout le monde recommande — et son dernier commit sur la branche par défaut remonte à avril 2023, sans aucune release GitHub jamais publiée. Il n'est pas abandonné (les issues reçoivent encore une attention occasionnelle), mais il est en sommeil. Les catalogues spécialisés l'étiquettent
INACTIVE. - Zipline (19.9k ⭐), l'ancien moteur de Quantopian, a été abandonné en 2020 lors de la fermeture de Quantopian. La liste d'alternatives de kernc lui-même le classe sous « Obsolete / Unmaintained ». Le successeur maintenu est un fork distinct,
zipline-reloaded(1.8k ⭐), de Stefan Jansen. - PyAlgoTrade (4.7k ⭐) est archivé — officiellement en lecture seule. QSTrader (3.4k ⭐) ainsi que les anciens frameworks crypto
blanklyetqtpylibsont signalés non maintenus.
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.
- Les moteurs événementiels (event-driven) bouclent barre par barre, appelant votre stratégie à chaque nouvelle bougie. Ils modélisent de façon réaliste l'exécution des ordres, le slippage et le risque intra-barre, et — point crucial — le même code peut tourner en réel. Backtrader, NautilusTrader, backtesting.py, Freqtrade, Lumibot et Zipline sont événementiels.
- Les moteurs vectorisés (le plus marquant étant vectorbt) sautent complètement la boucle : ils empaquettent des milliers de configurations de stratégie dans des tableaux NumPy et les calculent toutes d'un coup. C'est d'une rapidité stupéfiante pour la recherche de paramètres, mais cela suppose des exécutions à la barre suivante et ignore le slippage intra-barre, les exécutions partielles et les contrôles de risque en milieu de barre.
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 :

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 :

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
- Lumibot (1.7k ⭐, GPL-3.0) — multi-actifs (actions, options, crypto, futures, forex) avec le même code pour le backtest, le papier et le réel sur Alpaca, Interactive Brokers, Tradier, Schwab, Tradovate et CCXT. Prise en main des courtiers accessible aux débutants ; attention aux pièges documentés de parité backtest-vs-réel (fuseaux horaires, timing d'entrée, marge).
- bt (2.9k ⭐, MIT) — un framework flexible en arbre d'algos, orienté vers les stratégies d'allocation de portefeuille et de pondération plutôt que vers l'exécution tick par tick. Licence permissive, activement maintenu, uniquement pour le backtest.
- PyBroker (3.4k ⭐) — conçu pour les stratégies de machine learning, avec l'accélération Numba et la validation walk-forward intégrées. Uniquement pour le backtest.
- Jesse (8.1k ⭐, MIT) — un framework crypto avec une API de stratégie épurée et du trading en réel ; licence permissive.
- LEAN / QuantConnect (20k ⭐, Apache-2.0) — le moteur poids lourd multi-actifs derrière le cloud de QuantConnect. Cœur C#/.NET avec une API Python ; backtest et réel. Puissant, mais l'engagement le plus important de cette liste.
- zipline-reloaded (1.8k ⭐, Apache-2.0) — le fork activement maintenu du Zipline de Quantopian, populaire dans le milieu académique et dans le livre Machine Learning for Trading. Uniquement pour le backtest ; utilisez celui-ci, et non l'original
quantopian/zipline.
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 :
- Zipline (original,
quantopian/zipline) — abandonné en 2020. Utilisezzipline-reloaded. - PyAlgoTrade — dépôt archivé (lecture seule).
- QSTrader — signalé non maintenu ; dernier push mi-2024.
- blankly — plateforme fermée ; qtpylib — archivé depuis 2021.
- fastquant (1.8k ⭐) — un wrapper léger visant les backtests en une ligne, mais figé depuis 2023.
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
- Rechercher une stratégie sur des milliers de paramètres → vectorbt.
- Un backtest unique rapide et propre dans un notebook → backtesting.py (attention à l'AGPL).
- Production crypto + actions avec parité recherche→réel et réalisme au tick → NautilusTrader.
- Un bot crypto maintenu avec backtest/dry-run/réel → Freqtrade.
- Trading algorithmique retail multi-actifs, accessible aux débutants → Lumibot.
- Stratégies d'allocation / de pondération de portefeuille → bt.
- Stratégies de machine learning avec walk-forward → PyBroker.
- Travaux académiques / cours Machine-Learning-for-Trading → zipline-reloaded.
- Vous avez hérité d'une base de code Backtrader → c'est correct, mais sachez qu'elle est en sommeil ; les nouveaux projets devraient regarder ailleurs.
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.