Escolher uma biblioteca de backtesting é, em grande parte, uma aposta na manutenção. O código que precifica sua estratégia precisa continuar vivo quando uma corretora muda uma API, quando um release do pandas quebra um import, ou quando você encontra um bug às 2 da manhã. Por isso, esta análise começa pelo sinal menos glamoroso e mais decisivo — o projeto está realmente sendo mantido? — e só depois entra em arquitetura, velocidade e recursos.

Todos os números do GitHub abaixo foram coletados ao vivo da API do GitHub em 2026-06-22, e as afirmações mais delicadas foram cruzadas com fontes primárias (repositórios dos projetos, documentação oficial) e verificadas de forma adversarial. Onde um número é o melhor cenário autorrelatado por um fornecedor, isso está sinalizado.

A checagem da realidade da manutenção

Aqui está todo o ecossistema ranqueado por estrelas no GitHub, com código de cores indicando se ele está de fato sendo trabalhado:

Ferramentas de backtesting em Python ranqueadas por estrelas no GitHub e coloridas por status de manutenção (2026-06-22): freqtrade, NautilusTrader e LEAN lideram o grupo ativamente mantido, enquanto o Backtrader está dormente e Zipline, PyAlgoTrade e QSTrader estão abandonados.

A conclusão incômoda: dois dos nomes mais estrelados e mais comentados em blogs são, na prática, legados.

Enquanto isso, os projetos que estão entregando releases de verdade em 2026 são Freqtrade (51.7k ⭐), NautilusTrader (24.1k ⭐), LEAN (20k ⭐), backtesting.py (8.5k ⭐), Jesse (8.1k ⭐), vectorbt (8.0k ⭐), PyBroker (3.4k ⭐), bt (2.9k ⭐) e Lumibot (1.7k ⭐). As estrelas medem o histórico; as datas dos commits medem se alguém vai corrigir o seu bug.

Duas arquiteturas: orientada a eventos vs vetorizada

A outra bifurcação que decide tudo é como o motor executa sua estratégia.

Nenhum vence de forma absoluta. Você pesquisa com o rápido e valida com o realista. Mais sobre esse trade-off abaixo.

Os líderes ativamente mantidos

NautilusTrader — nível de produção, orientado a eventos, núcleo em Rust

O NautilusTrader (24.1k ⭐, LGPL-3.0) se descreve como um "production-grade Rust-native trading engine with deterministic event-driven architecture" — a base de código é cerca de 70% Rust com bindings em Python. Ele faz backtest em múltiplas venues e instrumentos com resolução de nanossegundos usando dados de tick e de order book, e traz cerca de 20 integrações ao vivo (Binance, Coinbase, Kraken, OKX, Bybit, Interactive Brokers, Betfair e mais). Sua promessa central: código de estratégia idêntico da pesquisa à implantação ao vivo. Essa é a escolha mais forte para um público de cripto+ações que precisa de realismo no nível de tick e de um caminho real para produção. Custo: uma curva de aprendizado mais íngreme e uma arquitetura mais pesada do que as bibliotecas simples.

vectorbt — pesquisa vetorizada em escala

O vectorbt (8.0k ⭐, Apache-2.0 + Commons Clause) é o motor vetorizado. Seu README: "instead of looping through bars one strategy at a time, it packs thousands of configurations into NumPy arrays, accelerates the hot path with Numba and Rust, and runs them all at once, turning hours of grid search into seconds." Testar 10.000 combinações de janelas de dual-SMA em segundos é o exemplo canônico; terceiros relatam acelerações de cerca de 1000× em relação ao Backtrader em algumas cargas de trabalho (números do fornecedor/de terceiros, não um benchmark independente). A varredura de parâmetros abaixo — 25 backtests através de janelas de SMA — é exatamente o que o vectorbt industrializa:

Um heatmap de varredura de parâmetros: retorno total através de 25 combinações de janelas de SMA rápida/lenta, de −5% a +54%. Essa busca em grade é a otimização massiva de parâmetros que o vectorbt foi feito para rodar em segundos.

Duas ressalvas que vale conhecer: a Commons Clause restringe a revenda comercial (relevante se você está construindo um produto), e o polido e pago vectorbt PRO é um produto separado do build open-source. O vectorbt é somente backtest — sem trading ao vivo.

backtesting.py — o favorito leve

O backtesting.py (8.5k ⭐, AGPL-3.0) é aquele para o qual recorrer quando você quer um backtest limpo, rápido e legível, sem toda a cerimônia de um framework. Defina init() e next(), execute, obtenha um objeto de estatísticas e um gráfico interativo em Bokeh. A licença AGPL-3.0 importa: é um copyleft forte com cláusulas de uso em rede, então fica complicado dentro de um SaaS de código fechado. Ele é somente backtest. A curva de patrimônio desta página (capa) e as estatísticas abaixo vêm de uma execução real do backtesting.py — um cruzamento simples de SMA(20/50) sobre uma série sintética:

Estatísticas de desempenho do backtesting.py para um cruzamento de SMA(20/50) de amostra: retorno de +1,6% vs +46% de buy & hold, Sharpe 0,05, drawdown máximo de −38%, 4 operações. Um resultado honesto — o cruzamento ingênuo teve desempenho inferior a apenas segurar o ativo.

Repare no resultado honesto: o cruzamento ingênuo retornou +1,6% contra +46% do buy & hold, com um drawdown brutal de −38%. Esse é o resultado inicial normal de um backtest real, e exatamente por isso você varre parâmetros e valida premissas antes de acreditar em qualquer coisa.

Freqtrade — o padrão de cripto

O Freqtrade (51.7k ⭐, GPL-3.0) é o projeto mais estrelado desta lista e o bot de trading de cripto open-source de fato. Ele faz backtesting, dry-run (paper trading) e trading ao vivo nas principais corretoras, controlado via Telegram ou por uma interface web embutida, e entrega releases mensais. É somente cripto — sem ações — mas, para cripto, é o padrão mantido e apoiado pela comunidade.

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

O cemitério — evite para projetos novos

Estes ainda aparecem nos resultados de busca e em posts antigos de blog, mas não comece por aqui em 2026:

A arquitetura importa: o trade-off de realismo

A divisão entre vetorizado e orientado a eventos não é acadêmica. A velocidade do vectorbt vem de pressupor que todo preenchimento acontece ao preço da próxima barra, sem slippage. Para uma triagem de momentum através de 500 ativos, tudo bem. Para uma estratégia cuja vantagem mora na execução intrabar — posicionamento de stop, preenchimentos parciais, posição na fila — um backtest vetorizado vai silenciosamente mentir para você, e você precisa de um motor orientado a eventos (NautilusTrader, Backtrader) ou de um dry-run ao vivo (Freqtrade, Lumibot) para obter um número honesto. O fluxo de trabalho profissional usa os dois: vectorbt para explorar o espaço de parâmetros, um motor orientado a eventos para validar os sobreviventes.

Licenciamento — leia isto antes de construir um produto

As bibliotecas de backtesting são incomumente carregadas de licenças, e várias são copyleft:

Licença Bibliotecas O que saber
AGPL-3.0 backtesting.py Copyleft mais forte; uso em rede/SaaS pode disparar a divulgação do código-fonte
Apache-2.0 + Commons Clause vectorbt (build OSS) Permissiva exceto que você não pode vendê-la como produto
GPL-3.0 Backtrader, Freqtrade, Lumibot Copyleft; distribuir um derivado significa abrir o código dele
LGPL-3.0 NautilusTrader Copyleft mais fraco; linkar geralmente é tranquilo
MIT bt, Jesse, QSTrader, fastquant Permissiva — faça quase qualquer coisa
Apache-2.0 LEAN, zipline-reloaded, finmarketpy Permissiva, com concessão de patente incluída

Se você está construindo algo comercial e de código fechado, as ferramentas MIT/Apache são as escolhas sem atrito; AGPL e Commons Clause precisam da leitura de um advogado.

A comparação em um relance

Ferramenta ⭐ Estrelas Arquitetura Licença Manutenção Trading ao vivo Melhor para
NautilusTrader 24.1k Orientada a eventos (Rust) LGPL-3.0 🟢 Ativo Sim Produção, realismo de tick/order book
vectorbt 8.0k Vetorizada Apache+CC 🟢 Ativo Não Busca massiva de parâmetros
backtesting.py 8.5k Orientada a eventos AGPL-3.0 🟢 Ativo Não Backtests únicos, rápidos e limpos
Freqtrade 51.7k Orientada a eventos GPL-3.0 🟢 Ativo Sim (cripto) Bot de cripto mantido
Backtrader 22.1k Orientada a eventos GPL-3.0 🟡 Dormente Sim Projetos legados (atenção ao desuso)
Lumibot 1.7k Orientada a eventos GPL-3.0 🟢 Ativo Sim Multi-ativo, backtest/ao vivo unificados
LEAN 20k Orientada a eventos Apache-2.0 🟢 Ativo Sim Plataforma multi-ativo peso-pesado
bt 2.9k Vetorizada/pesos MIT 🟢 Ativo Não Estratégias de alocação de portfólio
PyBroker 3.4k Orientada a eventos OSS 🟢 Ativo Não Estratégias de ML + walk-forward
zipline-reloaded 1.8k Orientada a eventos Apache-2.0 🟢 Ativo Não Academia, livro ML4T
Zipline (orig.) 19.9k Orientada a eventos Apache-2.0 🔴 Abandonado Nada — use o reloaded
PyAlgoTrade 4.7k Orientada a eventos 🔴 Arquivado Nada de novo

Estrelas e status são instantâneos de 2026-06-22 e vão mudar; a manutenção é a dimensão mais volátil, então recheque a atividade de commits antes de se comprometer.

Como escolher, em uma só frase

A única regra que sobrevive a todo regime de mercado: verifique a data do último commit antes de verificar a contagem de estrelas. Uma biblioteca de 22k estrelas que não entrega nada desde 2023 é um caminho mais lento para produção do que uma de 8k estrelas que lançou na semana passada.


Metodologia: as métricas do GitHub foram coletadas ao vivo da API do GitHub em 2026-06-22; as afirmações sobre arquitetura, manutenção, licença e trading ao vivo foram cruzadas com os repositórios dos projetos e a documentação oficial e verificadas de forma adversarial, com base em catálogos curados (PyTrade.org, awesome-systematic-trading) e na lista de alternativas do kernc. A curva de patrimônio, as estatísticas e o heatmap de parâmetros são resultados reais de uma execução do backtesting.py sobre uma série de preços sintética reproduzível — ilustrativos, não uma recomendação de estratégia. Os números de desempenho atribuídos a fornecedores (acelerações do vectorbt, resolução de nanossegundos do NautilusTrader) são autorrelatados, não benchmarks independentes.