BacktestScore

Backtrader review (2026)

Free open-source event-driven backtesting framework for Python, no longer actively maintained

6.8Overall / 10

Best for: Python-comfortable retail quants who want a free, battle-tested event-driven backtester with abundant learning material, and who will accept a frozen codebase, BYO data, and manual walk-forward in exchange for zero cost.

Power
8.0
Ease of use
5.5
Data quality
3.5
Value for money
9.0

Editorial scores per our methodology. Affiliate status has zero weight.

Verdict

Backtrader is the elder statesman of Python backtesting: a free, GPL-3.0, event-driven framework that for years was the default answer to "how do I backtest in Python?" Its capability-per-dollar ratio is still unbeatable. You get 122 indicators, realistic broker simulation with bracket/OCO/trailing orders, multi-timeframe support, an optimizer, and live-trading connectors, all for $0 with no registration or feature gating.

The asterisk is maintenance. The last PyPI release (1.9.78.123) shipped in April 2023, the original author has long since stepped back, the official forum is closed to new posts, and the community backtrader2 fork explicitly limits itself to bugfixes. The library is stable and does not produce wrong results. But nothing new is coming: no native walk-forward analysis, no options modeling, no modern plotting, and broker and data integrations that slowly rot as external APIs move (Yahoo loader, Oanda v1, Interactive Brokers quirks).

Our verdict: Backtrader remains a legitimate choice for learning event-driven backtesting and for small-to-mid-scale strategy research on bars, because the decade of tutorials and answered questions is a real asset. For new greenfield projects that need speed, active development, or bundled data, the more future-proof picks are VectorBT (vectorized speed), Zipline Reloaded (maintained event-driven), or QuantConnect (hosted, data included).

Pros

  • +Completely free under GPL-3.0 with no feature gating: the full event-driven engine, optimizer, and live-trading connectors cost $0
  • +Deep feature set for a library: 122 built-in indicators, TA-Lib bridge, bracket/OCO/trailing orders, multi-asset and multi-timeframe support, resample/replay
  • +Event-driven bar-by-bar processing keeps backtest logic structurally close to live execution, reducing rewrite risk versus vectorized research code
  • +A decade of accumulated tutorials, books, blog posts, and Stack Overflow answers. Most beginner questions are already answered somewhere
  • +Same strategy code can route to live trading via the built-in Interactive Brokers integration or community adapters (Alpaca, ccxt forks)
  • +Pure Python with no hard dependencies (matplotlib optional), runs on Windows/macOS/Linux and even PyPy

Cons

  • Effectively unmaintained: last PyPI release April 2023, original author stepped back years earlier; the community backtrader2 fork accepts bugfixes only, no new features
  • Steep learning curve. The metaclass-heavy 'lines' architecture is powerful but opaque, and a recurring complaint from newcomers on forums and Reddit
  • Slow on large datasets and big parameter sweeps: pure-Python event loop is orders of magnitude slower than vectorized libraries like VectorBT
  • Matplotlib-based plotting is dated, struggles beyond ~100k candles, and periodically breaks with newer matplotlib releases, forcing version pinning or third-party plotters (btplotting)
  • No bundled data, and the built-in Yahoo loader breaks whenever Yahoo changes its endpoints; every data pipeline is your problem
  • Aging live-broker integrations (Oanda connector targets a deprecated v1 API; IB integration commonly needs community patches), and the official forum is closed to new posts

Backtrader at a glance

Engine typeevent-driven
Asset classesstocks, ETFs, futures, forex (spot), crypto (via community data feeds), CFDs
LanguagesPython
Bundled dataNone. Bring your own data. Loaders exist for CSV, pandas DataFrames, and Yahoo Finance (the online loader breaks periodically as Yahoo changes its API); live feeds come from Interactive Brokers, Oanda (legacy v1 API), and Visual Chart. No bundled historical dataset of any kind.
Finest resolutiontick (tick data supported; resampling/replay down from ticks to any timeframe)
Live tradingYes
Options supportNo
Walk-forward testingNo
Open sourceYes
Runs onwindows, mac, linux

Backtrader pricing (2026)

PlanPriceIncludes
Open Source (GPL-3.0)$0The full framework: event-driven engine, 122 built-in indicators, analyzers, optimization, live-trading connectors. Install it with pip. No registration, no feature gating.

Verified August 2026: there is no pricing page because there is nothing to buy. The official site (backtrader.com) and the GitHub repo (mementum/backtrader) both confirm the entire library is free under GPL-3.0, with no paid tiers, no commercial edition, and no hosted service. Latest PyPI release is 1.9.78.123 (April 19, 2023). The indirect costs are your own market data and compute. One naming trap: backtrader.io is an unrelated commercial futures trade-copier product that happens to share the name.

Prices last verified: 2026-08-04

What it is

Backtrader is an open-source Python framework for backtesting and live trading, written by Daniel Rodriguez and first released in 2015. It is a library, not a platform: you pip install backtrader, write a Strategy subclass, feed it data, and run it through the Cerebro engine on your own machine. There is no cloud service, no account, and no vendor to pay.

The design philosophy is batteries-included: 122 built-in indicators plus a TA-Lib bridge, broker simulation with realistic order types (market, limit, stop, stop-trail, bracket, OCO), position sizers, commission schemes (including futures-style margin and multiplier), analyzers (Sharpe, SQN, drawdown, PyFolio integration), parameter optimization, and matplotlib plotting. It handles multiple data feeds and multiple strategies simultaneously, mixed timeframes, resampling and replay, and futures rollover.

At 22.7k GitHub stars it is one of the most-starred backtesting projects ever, and a decade of accumulated tutorials, books, and Stack Overflow answers means nearly every beginner problem has a written solution. That legacy corpus, more than the code itself, is Backtrader's most durable advantage in 2026.

Backtesting engine and accuracy

The engine is event-driven: bars (or ticks) are processed sequentially through next() calls, orders are submitted to a simulated broker and filled on subsequent data, and cheating-on-open/close is off by default. That architecture makes look-ahead bugs harder to write than in naive vectorized code, and it keeps strategy logic structurally close to live execution. For order-logic-heavy strategies (brackets, trailing stops, partial fills via custom broker tweaks), the accuracy advantage is real.

Granularity runs from ticks upward, with resample and replay letting one feed drive several timeframes at once. Commission schemes model both stock-style percentage costs and futures-style fixed commissions with margin and multipliers; slippage models are configurable.

Now the trade-offs. The pure-Python event loop is slow: large parameter sweeps over minute data can take hours where VectorBT finishes in seconds, though optstrategy does use multiprocessing. There is no built-in walk-forward analysis (users hand-roll it by slicing dates), no Monte Carlo module, and no native options-chain modeling. Accuracy is well-regarded in community discussion; the recurring criticisms are speed and the learning curve of the 'lines' metaprogramming model, not wrong numbers.

Data: strictly bring-your-own

Backtrader ships with zero data. Every backtest starts with you sourcing OHLCV (or tick) data and loading it through one of the feed classes: generic and preset CSV parsers, pandas DataFrames (the practical default, since anything you can get into pandas you can backtest), or the built-in Yahoo Finance loader, which has a long history of breaking whenever Yahoo changes its endpoints and is best treated as unreliable.

For live or streaming data, the built-in integrations are Interactive Brokers, Oanda (targeting a deprecated v1 API), and Visual Chart. Community packages extend that list, the Alpaca adapter and various ccxt forks for crypto being the most used. They are third-party code of varying freshness, and because the core library is frozen, compatibility fixes arrive slowly if at all.

This is why our data score is low: it measures what ships with the product, and nothing does. The pandas gateway means the ecosystem can technically feed Backtrader anything from Polygon to Databento to Binance, but acquisition, cleaning, adjustment for splits/dividends, and survivorship-bias handling are entirely on you. Budget real time for the data pipeline before the first meaningful backtest.

Pricing breakdown

There is no pricing page because there is no product to buy. Backtrader is licensed under GPL-3.0 and distributed free via PyPI and GitHub; we verified in August 2026 that neither the official site nor the repository mentions any paid tier, commercial license, hosted edition, or support contract. The latest release remains 1.9.78.123 (April 19, 2023).

Your real costs are indirect. First, data: free sources (Yahoo, broker feeds) are workable for daily bars, but clean intraday or tick history typically means a paid vendor ($30-$200+/month depending on asset class and depth). Second, compute: whatever machine you own, with no cloud fees unless you rent one. Third, time. The learning curve is the steepest 'price' most users report paying.

One licensing note for professionals: GPL-3.0 is a copyleft license. Running private strategies is unaffected, but distributing software built on Backtrader triggers copyleft obligations, so check it carefully if you plan to ship a commercial product on top of it. And to repeat the naming trap: backtrader.io, a paid futures trade-copier service, is a completely different company; any price you see there has nothing to do with this library.

Maintenance status and ecosystem risk

This is the section that should drive your decision in 2026. The original repository's development wound down years ago; the final PyPI release was April 2023, and the author had largely stepped back before that. The official community forum stopped accepting new posts (the site now directs questions to Stack Overflow), and the long-running community thread titled "Is Backtrader dead?" reflects settled consensus: stable, functional, frozen.

The community response was backtrader2, a fork created explicitly to incorporate bugfixes and keep the library running, and explicitly not to add features. That fork is the honest ceiling of future development.

What frozen means in practice: the core engine keeps working (it is dependency-light by design), but the edges decay. Matplotlib updates break plotting until you pin versions or switch to btplotting; the Yahoo loader breaks; the Oanda v1 API it targets is deprecated; Python version bumps occasionally surface warnings. None of this is fatal for a self-sufficient developer, and the huge legacy of tutorials still works because the API never changes. But you are adopting an artifact, not a project. Plan for self-support, and weigh Zipline Reloaded or VectorBT if active maintenance matters to you.

Who it's for

Backtrader fits three profiles well. First, learners: if you want to understand how event-driven backtesting actually works, including order lifecycle, broker simulation, and multi-timeframe logic, Backtrader's decade of tutorials, worked examples, and answered forum questions makes it arguably the best-documented free classroom available, and the frozen API means every old tutorial still runs. Second, bar-based retail strategists: swing and position traders testing daily or hourly strategies on a handful of instruments will rarely hit the performance ceiling, and the realistic order types matter more at that scale than raw speed. Third, budget-constrained tinkerers who want live paper or real trading through Interactive Brokers without paying for a platform.

It is a poor fit for high-frequency or large-universe research (the Python event loop is too slow; use VectorBT), for options traders (no chain modeling; look at QuantConnect), for anyone who needs bundled data or a managed environment (QuantConnect again), and for teams building commercial products who want an actively maintained dependency (Zipline Reloaded) or who cannot accept GPL-3.0 copyleft. If you expect vendor support, a roadmap, or new features, look elsewhere. Backtrader offers none of the three, by design and by circumstance.

Backtrader

Free open-source event-driven backtesting framework for Python, no longer actively maintained

Visit BacktraderMay be an affiliate link. Disclosure

Frequently asked questions

Is Backtrader free?+

Yes, completely. Backtrader is open-source under GPL-3.0 with no paid tiers, no commercial edition, and no hosted service. We verified that on the official site, GitHub, and PyPI as of August 2026. Your only real costs are your own market data and the time to learn it.

Is Backtrader still maintained in 2026?+

Effectively no. The last PyPI release (1.9.78.123) shipped in April 2023, and the original author stepped back well before that. A community fork, backtrader2, exists solely to merge bugfixes, with no new features. The library is stable and still works, but treat it as frozen software.

Can Backtrader do live trading?+

Yes. It ships with connectors for Interactive Brokers, Oanda (a deprecated v1 API), and Visual Chart, and community packages add Alpaca and crypto exchanges via ccxt. The IB route is the most used. Expect to apply community patches, though, because the integrations are aging.

Backtrader vs VectorBT: which should I use?+

They optimize for different things. Backtrader is event-driven: realistic order simulation, bar-by-bar logic, and an easier transition to live trading, but slow on large sweeps. VectorBT is vectorized NumPy: thousands of parameter combinations in seconds, but less natural for complex order logic. Prototype breadth in VectorBT, then validate execution realism in an event-driven engine.

Does Backtrader support options trading?+

No. There is no native options-chain modeling, Greeks, or expiration handling. Futures are well supported (margin, multipliers, rollover), but options backtesting requires a different tool such as QuantConnect.

What data does Backtrader come with?+

None. It is bring-your-own-data: CSV files, pandas DataFrames, or the built-in Yahoo Finance loader (which breaks periodically). Any dataset you can load into pandas, whether from free sources or paid vendors like Polygon or Databento, can be backtested. Sourcing and cleaning it is entirely your job.

Alternatives to Backtrader

Or see the head-to-head pages:Backtrader vs VectorBT, Backtrader vs Zipline Reloaded, Backtrader vs QuantConnect, Backtrader vs Backtesting.py

Sources

  • https://www.backtrader.com/ - official site; confirms fully open-source, no pricing page, no affiliate/partner program, feature list (futures/stocks/spot, IB/Oanda/Visual Chart live trading), community forum disabled
  • https://github.com/mementum/backtrader - GPL-3.0 license, 22.7k stars, Python >= 3.2 / PyPy support, no commercial offering
  • https://pypi.org/project/backtrader/ - latest release 1.9.78.123 (April 19, 2023), GPLv3+, 122 built-in indicators, free distribution (verifies $0 price)
  • https://www.backtrader.com/docu/ - documented capabilities: resample/replay, optimization (no walk-forward module), order types (OCO/bracket/trailing), analyzers, futures rollover, no options support, no paid features
  • https://community.backtrader.com/topic/3702/is-backtrader-dead - community thread on maintenance status; consensus that original project is no longer maintained
  • https://github.com/backtrader2 - community fork created for bugfixes only, no new features (maintenance-risk claim)
  • https://community.backtrader.com/topic/2482/is-the-time-and-effort-for-learning-backtrader-worth-it - community sentiment on learning curve and whether it is worth learning
  • https://www.backtrader.io/ - unrelated commercial trade-copier product with a partner program; cited to document that its affiliate program does NOT belong to the Python library (affiliate has_program=false claim)

Educational content only, not investment advice. Spot an outdated price or spec? The data behind this page is open; see our editorial policy.