Which repo do I clone first if I only want a backtest?
Backtesting.py, unless you already know you need more. Its whole API is a Strategy class and a Backtest object, which is little enough that an AI editor gets a first trading strategy right from one sentence of plain English. The other two backtesters here are what you move to when that stops being enough. Every star count and push date below is as of 10 Sep ‘26.
Backtesting.py — 8,950 stars, updated 5 Aug ‘26. A Strategy class with two methods, a Backtest object and a pandas DataFrame of OHLC bars, returning a stats table and an interactive plot. For a trader testing one rule on one instrument. You need Python and the bars, no account and no key. It takes a single OHLC DataFrame, so a portfolio means one run per symbol.
Backtrader — 23,172 stars, updated 19 Aug ‘24. Its Cerebro engine takes data feeds, a strategy and a sizer, and the same strategy class runs against a live connection to Interactive Brokers, Oanda or Visual Chart. For a trader who does not want to rewrite the strategy when it goes live. Nothing has been pushed to it since 19 Aug ‘24, so read the open issues before you build a year of work on top of it.
Qlib — 48,446 stars, updated 2 Sep ‘26. Microsoft’s quant platform: data handling, a model zoo, backtesting and order execution wired into YAML workflows run through its qrun command. For research that needs a pipeline rather than a script. Python 3.8 to 3.12 and a downloaded data bundle before anything runs. The official bundle is disabled under Microsoft’s own data security policy, and the README points at a community mirror instead.
Where does the price data come from?
Not from any of the three above. Each takes a DataFrame you hand it, and none of them ships a feed, which is the gap most first builds fall into. Two repos here fill it from opposite ends: one for live crypto books and trades, one for the macro series a strategy uses as context.
cryptofeed — 2,899 stars, updated 8 Sep ‘26. A websocket feed handler that normalises trades, order books, tickers and funding into one shape across Binance, Coinbase, Kraken, OKX, Bybit, Deribit, Hyperliquid and the rest of its venue list, with backends that write to Redis, Kafka or PostgreSQL. Python 3.12+, and a key only for authenticated streams. Every callback has to be a coroutine, and a plain synchronous function gets dropped.
fredapi — 1,656 stars, updated 28 Jan ‘26, at version 0.5.1. A thin client for the Federal Reserve’s FRED and ALFRED series, returned as a pandas Series or DataFrame. For anyone who wants CPI, rates or GDP sitting beside price. It needs a FRED API key, set as an environment variable, a file or an argument. get_series returns the revised history, so a backtest built on it reads numbers nobody had on the day — use get_series_first_release or get_series_as_of_date instead.
How do I get the indicators without writing them myself?
One repo, and it is the one everything else assumes. Freqtrade lists it under software requirements, most Python strategy code imports it, and the C library beneath it has been the reference set for two decades. The Python side is a Cython wrapper, which is the whole reason the install trips people up.
TA-Lib (Python) — 12,239 stars, updated 9 Sep ‘26. Cython bindings to the TA-Lib C library’s 150-plus indicators and its candlestick pattern recognition, with a function API over numpy arrays and an abstract API over pandas or Polars DataFrames. For anyone who wants ADX or MACD to mean in their code what it means everywhere else. The C library installs first, through Homebrew, an installer or Conda Forge, and the Python package second. Three branches are maintained — 0.4.x, 0.5.x and 0.6.x — and which one you want depends on the C version you installed, so check that before you file the failing build as a bug.
How do I put the result on a chart?
Lightweight Charts — 17,219 stars, updated 9 Sep ‘26. TradingView’s own charting library: candlestick and line series drawn on an HTML5 canvas, extensible with custom plugins, installed from npm or dropped in as a script tag from a CDN. For putting an equity curve or a live feed on a web page without a heavier charting stack. No account and no key. Its licence requires an attribution notice and a link to tradingview.com on any page that uses it, which the built-in attributionLogo option satisfies by default — leave that option alone.
Which of these can trade live?
Three of the ten, and only one was built for it. Freqtrade runs as a bot against your own exchange account. Backtrader attaches a live broker connection to the strategy class it already backtests. Vibe-Trading has a broker path its own maintainers call experimental. The other seven stop at research.
Freqtrade — 54,214 stars, updated 8 Sep ‘26. A crypto trading bot in Python with backtesting, hyperparameter optimisation and machine-learning strategy tuning built in, controlled from Telegram or its own web UI and persisting to SQLite. For a crypto trader who wants the strategy, the test and the execution in one repository. Python 3.11+, TA-Lib, and exchange API keys for Binance, Bybit, Kraken, OKX or another supported venue. Its README opens by telling you to run Dry-Run until you understand the bot, which is the line people skip and then regret.
Which ones let the AI drive?
Two, at opposite ends of the job. One is a workspace where the agent does the research and runs the backtest itself. The other hands the agent the chart already open in front of you. Both expose their tools over MCP, so Claude Code or Cursor can call them without a wrapper of your own.
Vibe-Trading — 33,135 stars, updated 9 Sep ‘26. A research workspace from HKU’s data lab that turns a written prompt into market research, a strategy backtest and a report across equities, crypto, futures and forex, with a CLI, a FastAPI web server and an MCP server for an existing agent. For a trader who would rather describe the test than write it. An LLM API key from a supported provider, or local Ollama with no key, plus Python 3.11+ or Docker. Its broker-trading capability is experimental and has not been verified by the maintainers against a real broker account.
TradingView MCP Bridge — 6,082 stars, updated 28 Jul ‘26. 78 MCP tools that let an agent read and drive a running TradingView Desktop chart: chart state, indicators, bars, symbols, timeframes, drawings, alerts and Pine compilation, with every tool doubling as a tv command in the terminal. For a trader whose work already happens on a TradingView chart. A paid TradingView subscription, TradingView Desktop with its debug port enabled, Node.js 18+. It reads TradingView’s undocumented internal structure, so a TradingView update can break it without notice — pin the version that works for you.
Which pair works together?
Freqtrade and TA-Lib, and it is not a suggestion. Freqtrade’s own software requirements list TA-Lib beside Python 3.11+, and the link in its README points at this exact repo, so installing the bot means installing the C library first whether you planned on it or not. That is the only documented dependency between any two repos here.
The pairing people assume — cryptofeed into Backtesting.py — appears in neither README. cryptofeed emits normalised trades and books to Redis, Kafka or PostgreSQL; Backtesting.py reads a pandas DataFrame of OHLC bars. Nothing bridges them, so resampling ticks into bars is yours to write, and it is the piece an AI editor is worth most on.
What do they all need before they run?
Python, in eight cases out of ten: Lightweight Charts is TypeScript on npm and the TradingView bridge is Node. Four want an account or a key before a line of code does anything, and one wants a C library on the machine before the package will even build. The table is the order to do it in.
| Repo | Install first | Account or key |
|---|---|---|
| Backtesting.py | Python, pandas | — |
| Backtrader | Python, plus the broker’s own library to go live | broker account, live only |
| Qlib | Python 3.8–3.12, then a data bundle | — |
| cryptofeed | Python 3.12+ | only for authenticated streams |
| fredapi | Python, pandas | FRED API key |
| TA-Lib (Python) | the TA-Lib C library, then the package | — |
| Lightweight Charts | Node and npm, or a CDN script tag | — |
| Freqtrade | Python 3.11+, TA-Lib | exchange API keys |
| Vibe-Trading | Python 3.11+ or Docker | LLM API key, or none with local Ollama |
| TradingView MCP Bridge | Node.js 18+, TradingView Desktop | paid TradingView subscription |
Install the TA-Lib C library first if either TA-Lib or Freqtrade is anywhere in the plan. It is the one prerequisite that fails after the code is already written.