Alternative Assets & Financial Technology

Python Backtesting Libraries in 2026: What the Rankings Get Wrong

Key takeaway

Backtrader tops almost every 2026 ranking of Python backtesting libraries. Its last commit was in April 2023. Here is what the registries say about all six, and the licence question nobody mentions.

Published by AssetWhisper Editorial Desk
Laptop showing backtest code and results next to a ranking panel of Python backtesting libraries under a magnifying glass

Backtrader appears at or near the top of almost every list of Python backtesting libraries published this year. Its last commit to GitHub was on 19 April 2023. The two facts sit together comfortably because nobody checks: the rankings are copied from each other, and a library with 23,000 stars looks alive whether or not anyone is still maintaining it.

This article does the boring thing instead. Every number below was pulled from the package registry and the source repository on 17 September 2026, and anyone can re-run the same check in a minute. The conclusion is not the one the rankings give you, and the deciding factor turns out to be something they almost never mention: the licence.

The table

Library Stars Last commit Latest release Licence
Freqtrade 54,472 17 Sep 2026 2026.8 GPL-3.0
NautilusTrader 29,065 17 Sep 2026 1.231.0 LGPL-3.0
Backtrader 23,260 19 Apr 2023 1.9.78.123 GPL-3.0
VectorBT 9,110 2 Aug 2026 1.1.0 Custom, not OSI-standard
backtesting.py 8,968 5 Aug 2026 0.6.6 AGPL-3.0
Zipline-reloaded 1,938 13 Nov 2025 3.1.1 Apache-2.0
Stars, open issues and last commit from the GitHub API; versions and release dates from the PyPI JSON API. Both checked on 17 September 2026.

Three things jump out, and none of them appears in the usual comparison posts.

Backtrader’s last commit is dated April 2023 and its last release on PyPI is the same day. That is three years and five months of no changes, against a Python release cadence of roughly one version a year. It is not abandoned in the sense of being deleted — the code still installs and still runs — but nothing that has happened to Python, pandas or any exchange API since 2023 has been accounted for.

This does not make it useless. Backtrader’s event-driven design is still the clearest teaching model of how an order actually reaches a broker, and its documentation remains better than most of what replaced it. If you are learning how a backtest is structured, it is a reasonable place to start. If you are building something you intend to run against live data in 2027, you are adopting a dependency that nobody is going to patch for you.

The honest summary: excellent to read, risky to depend on.

2. The licence is the decision, not the speed

This is the part that gets left out, and it is the part that costs money.

Backtesting frameworks are mostly published under copyleft licences, and copyleft has consequences that only appear when you try to turn your strategy into a product:

  • AGPL-3.0 — backtesting.py. The AGPL extends the obligation to software offered over a network. If you build a web service on top of it and let other people use it, the licence asks you to make your source available to those users. For a personal backtest this is irrelevant; for a subscription product it is the whole ball game.
  • GPL-3.0 — Backtrader and Freqtrade. Distributing a derived work means distributing the source. Running it privately for your own trading does not trigger anything.
  • LGPL-3.0 — NautilusTrader. Materially more permissive when the library is used as a library rather than modified.
  • Apache-2.0 — Zipline-reloaded. The most business-friendly of the set, with an express patent grant.
  • Non-standard — VectorBT. GitHub cannot classify its licence file, which is a flag worth taking seriously: an unclassified licence is one your own lawyer has to read rather than recognise.

Ordered by “can I build a commercial product on this without a conversation”, the ranking inverts almost completely: Apache first, then LGPL, then the GPL pair, then AGPL, with the custom licence in a category of its own. Not one of the popularity rankings mentions this.

3. The two most active projects are not backtesters

Freqtrade and NautilusTrader both had commits on the day this was written. They are also the two largest by stars. But neither is a backtesting library in the sense that Backtrader is: they are trading systems that include a backtester.

That difference matters more than it sounds. A backtester answers “would this rule have worked”. A trading system also has to answer “how do I hold state across a restart”, “what happens when the exchange rejects the order” and “who pages me at 3am”. If what you want is to test an idea over ten years of daily bars, adopting one of these means carrying a great deal of machinery you will not use.

What each one is actually for

If you want to… Use Because
Learn how a backtest is built Backtrader Clearest event-driven model and the best docs; accept that it is frozen
Sweep thousands of parameter sets VectorBT Vectorised over arrays, orders of magnitude faster for grids; read the licence first
Run research with a data pipeline Zipline-reloaded Bundles and the Pipeline API; Apache licence; slower cadence but alive
Trade crypto live Freqtrade Most active project of the six, exchange integrations included
Build low-latency infrastructure NautilusTrader Rust core, event-driven, LGPL
Test one idea this afternoon backtesting.py Smallest surface area of the six; AGPL makes it a poor base for a product

How to check this yourself

The point of this article is not the table; it is that the table goes stale and you should not have to trust it. Both registries expose the numbers without authentication:

  • Release and version: https://pypi.org/pypi/<package>/json returns the current version and its upload date.
  • Activity and licence: https://api.github.com/repos/<owner>/<repo> for stars and licence, and /commits?per_page=1 for the date of the most recent commit.

Two minutes, no account. Do it before adopting any dependency you intend to run with money behind it, and do it again a year later.

The thing the library will not save you from

Choosing well matters less than most people writing about it suggest. None of these six protects you from the errors that make a backtest lie: look-ahead bias, survivorship in the price series, costs modelled optimistically, or a parameter grid searched until something looked good. A faster library only lets you overfit sooner.

That is the more useful thing to get right, and it is where the sizing question lives too — a strategy with a genuine edge still ruins an account if the position size is wrong, which is the arithmetic behind why nobody runs full Kelly and behind position sizing and risk of ruin. For the strategy layer above the tooling, see our guide to algorithmic trading strategies.

In short

Backtrader leads the 2026 rankings and has not been touched since April 2023. Freqtrade and NautilusTrader are the live projects, but they are trading systems rather than backtesters. Zipline-reloaded is the only one of the six under a permissive licence, and backtesting.py is AGPL, which decides the question for anyone planning to charge for what they build. Pick for the job and the licence, verify the dates yourself, and remember that the library is not what makes a backtest honest.

Figures verified against the PyPI and GitHub APIs on 17 September 2026 and valid as of that date. Educational content only; not investment advice. AssetWhisper does not publish trading signals.

Advertisement

Alternative Assets & Financial Technology

The GENIUS Act and Stablecoin Regulation in 2026: What Every Investor Needs to Know

The GENIUS Act sets a federal framework for payment stablecoins in the United States, covering reserve backing, redemption rights, disclosure and who is permitted to issue them. For investors the significance is less the tokens themselves than the legitimisation of dollar-denominated blockchain settlement, and what that implies for existing payment intermediaries.

Join the discussion

Your email address will not be published. Required fields are marked *