Elegir una librería de backtesting es, sobre todo, una apuesta de mantenimiento. El código que valora tu estrategia tiene que seguir vivo cuando un exchange cambie una API, cuando una nueva versión de pandas rompa un import o cuando encuentres un bug a las 2 de la mañana. Por eso esta review arranca por la señal menos glamurosa y más decisiva — ¿el proyecto recibe mantenimiento de verdad? — y solo después entra en arquitectura, velocidad y características.
Cada número de GitHub que aparece más abajo se obtuvo en vivo desde la API de GitHub el 2026-06-22, y las afirmaciones más delicadas se contrastaron con fuentes primarias (repos de los proyectos, documentación oficial) y se verificaron de forma adversarial. Cuando una cifra es el mejor caso reportado por el propio proveedor, se señala como tal.
La prueba de realidad del mantenimiento
Aquí está todo el ecosistema ordenado por estrellas de GitHub, con un código de color según si realmente se está trabajando en él:

La conclusión incómoda: dos de los nombres con más estrellas y de los que más se ha escrito en blogs son, en la práctica, legado.
- Backtrader (22.1k ⭐) es el famoso que todo el mundo recomienda — y su último commit a la rama por defecto fue en abril de 2023, sin ningún release publicado en GitHub. No está abandonado (los issues aún reciben atención ocasional), pero está dormido. Los catálogos curados lo etiquetan como
INACTIVE. - Zipline (19.9k ⭐), el viejo motor de Quantopian, fue abandonado en 2020 cuando Quantopian cerró. La propia lista de alternativas de kernc lo archiva como "Obsolete / Unmaintained." El sucesor con mantenimiento es un fork separado,
zipline-reloaded(1.8k ⭐), de Stefan Jansen. - PyAlgoTrade (4.7k ⭐) está archivado — oficialmente en modo solo lectura. QSTrader (3.4k ⭐) y los antiguos frameworks de cripto
blanklyyqtpylibestán marcados como sin mantenimiento.
Mientras tanto, los proyectos que publican releases reales en 2026 son Freqtrade (51.7k ⭐), NautilusTrader (24.1k ⭐), LEAN (20k ⭐), backtesting.py (8.5k ⭐), Jesse (8.1k ⭐), vectorbt (8.0k ⭐), PyBroker (3.4k ⭐), bt (2.9k ⭐) y Lumibot (1.7k ⭐). Las estrellas miden la historia; las fechas de los commits miden si alguien va a arreglar tu bug.
Dos arquitecturas: orientada a eventos vs vectorizada
La otra bifurcación que lo decide todo es cómo el motor ejecuta tu estrategia.
- Los motores orientados a eventos (event-driven) recorren barra por barra, llamando a tu estrategia en cada nueva vela. Modelan los fills de órdenes, el slippage y el riesgo intrabarra de forma realista y — algo crítico — el mismo código puede correr en vivo. Backtrader, NautilusTrader, backtesting.py, Freqtrade, Lumibot y Zipline son orientados a eventos.
- Los motores vectorizados (el más destacado es vectorbt) se saltan el bucle por completo: empaquetan miles de configuraciones de estrategia en arrays de NumPy y las calculan todas a la vez. Esto es asombrosamente rápido para la búsqueda de parámetros, pero asume fills en la siguiente barra e ignora el slippage intrabarra, los fills parciales y las comprobaciones de riesgo a mitad de barra.
Ninguno gana de forma absoluta. Investigas con el rápido y validas con el realista. Más sobre ese compromiso más abajo.
Los líderes con mantenimiento activo
NautilusTrader — grado de producción, orientado a eventos, núcleo en Rust
NautilusTrader (24.1k ⭐, LGPL-3.0) se describe a sí mismo como un "production-grade Rust-native trading engine with deterministic event-driven architecture" — el código es ~70% Rust con bindings de Python. Hace backtesting a través de múltiples venues e instrumentos con resolución de nanosegundos usando datos de ticks y de order-book, e incluye ~20 integraciones en vivo (Binance, Coinbase, Kraken, OKX, Bybit, Interactive Brokers, Betfair y más). Su promesa estrella: el mismo código de estrategia, idéntico, desde la investigación hasta el despliegue en vivo. Es la opción más fuerte para una audiencia de cripto+acciones que necesita realismo a nivel de tick y un camino real a producción. El coste: una curva de aprendizaje más pronunciada y una arquitectura más pesada que la de las librerías sencillas.
vectorbt — investigación vectorizada a escala
vectorbt (8.0k ⭐, Apache-2.0 + Commons Clause) es el motor vectorizado. Su 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." Probar 10.000 combinaciones de ventanas dual-SMA en segundos es el ejemplo canónico; terceros reportan aceleraciones de ~1000× sobre Backtrader en algunas cargas de trabajo (cifras del proveedor/de terceros, no un benchmark independiente). El barrido de parámetros que ves abajo — 25 backtests a través de distintas ventanas de SMA — es exactamente lo que vectorbt industrializa:

Dos salvedades que conviene conocer: la Commons Clause restringe la reventa comercial (relevante si estás construyendo un producto), y la pulida y de pago vectorbt PRO es un producto separado de la build open-source. vectorbt es solo backtesting — sin trading en vivo.
backtesting.py — la favorita ligera
backtesting.py (8.5k ⭐, AGPL-3.0) es a la que recurrir cuando quieres un backtest limpio, rápido y legible sin toda la ceremonia de un framework. Defines init() y next(), ejecutas, y obtienes un objeto de estadísticas y un gráfico interactivo de Bokeh. La licencia AGPL-3.0 importa: es copyleft fuerte con cláusulas de uso en red, así que resulta incómoda dentro de un SaaS de código cerrado. Es solo backtesting. La curva de equity de esta página (portada) y las estadísticas de abajo provienen de una ejecución real de backtesting.py — un simple cruce de SMA(20/50) sobre una serie sintética:

Fíjate en el resultado honesto: el cruce ingenuo rindió un +1.6% frente al +46% del buy & hold, con un brutal drawdown del −38%. Ese es el primer resultado normal de un backtest real, y exactamente la razón por la que barres parámetros y validas supuestos antes de creerte nada.
Freqtrade — el estándar de cripto
Freqtrade (51.7k ⭐, GPL-3.0) es el proyecto con más estrellas de esta lista y el bot de trading de cripto open-source de facto. Hace backtesting, dry-run (trading en papel) y trading en vivo en los principales exchanges, controlado a través de Telegram o de una interfaz web integrada, y publica releases mensuales. Es solo cripto — sin acciones — pero para cripto es el estándar con mantenimiento y respaldado por la comunidad.
Lumibot, bt, PyBroker, Jesse, LEAN, zipline-reloaded
- Lumibot (1.7k ⭐, GPL-3.0) — multiactivo (acciones, opciones, cripto, futuros, forex) con el mismo código para backtest, papel y vivo a través de Alpaca, Interactive Brokers, Tradier, Schwab, Tradovate y CCXT. Onboarding de brokers apto para principiantes; ojo con los gotchas documentados de paridad entre backtest y vivo (zonas horarias, timing de entrada, margen).
- bt (2.9k ⭐, MIT) — un framework flexible de árbol de algoritmos orientado a estrategias de asignación de cartera y basadas en pesos en lugar de ejecución tick a tick. Con licencia permisiva, mantenimiento activo, solo backtesting.
- PyBroker (3.4k ⭐) — construido para estrategias de machine learning, con aceleración con Numba y validación walk-forward integradas. Solo backtesting.
- Jesse (8.1k ⭐, MIT) — un framework de cripto con una API de estrategias limpia y trading en vivo; licencia permisiva.
- LEAN / QuantConnect (20k ⭐, Apache-2.0) — el motor multiactivo de peso pesado detrás de la nube de QuantConnect. Núcleo en C#/.NET con una API de Python; backtest y vivo. Potente, pero el mayor compromiso de esta lista.
- zipline-reloaded (1.8k ⭐, Apache-2.0) — el fork con mantenimiento activo de Zipline de Quantopian, popular en el ámbito académico y en el libro Machine Learning for Trading. Solo backtesting; usa este, no el original
quantopian/zipline.
El cementerio — evítalos para proyectos nuevos
Estos siguen apareciendo en los resultados de búsqueda y en posts de blog antiguos, pero no empieces por aquí en 2026:
- Zipline (original,
quantopian/zipline) — abandonado en 2020. Usazipline-reloaded. - PyAlgoTrade — repo archivado (solo lectura).
- QSTrader — marcado como sin mantenimiento; último push a mediados de 2024.
- blankly — la plataforma cerró; qtpylib — archivado desde 2021.
- fastquant (1.8k ⭐) — un wrapper ligero orientado a backtests en una línea, pero estancado desde 2023.
La arquitectura importa: el compromiso de realismo
La división vectorizado-vs-orientado a eventos no es académica. La velocidad de vectorbt viene de asumir que cada fill ocurre al precio de la siguiente barra sin slippage. Para un screen de momentum sobre 500 activos eso está bien. Para una estrategia cuyo edge vive en la ejecución intrabarra — colocación de stops, fills parciales, posición en la cola — un backtest vectorizado te mentirá en silencio, y necesitas un motor orientado a eventos (NautilusTrader, Backtrader) o un dry-run en vivo (Freqtrade, Lumibot) para obtener un número honesto. El flujo de trabajo profesional usa ambos: vectorbt para explorar el espacio de parámetros, un motor orientado a eventos para validar a los supervivientes.
Licencias — lee esto antes de construir un producto
Las librerías de backtesting tienen una carga de licencias inusualmente alta, y varias son copyleft:
| Licencia | Librerías | Lo que hay que saber |
|---|---|---|
| AGPL-3.0 | backtesting.py | El copyleft más fuerte; el uso en red/SaaS puede activar la divulgación del código fuente |
| Apache-2.0 + Commons Clause | vectorbt (build OSS) | Permisiva excepto que no puedes venderlo como producto |
| GPL-3.0 | Backtrader, Freqtrade, Lumibot | Copyleft; distribuir un derivado implica liberar su código |
| LGPL-3.0 | NautilusTrader | Copyleft más débil; enlazar contra ella suele estar bien |
| MIT | bt, Jesse, QSTrader, fastquant | Permisiva — haz casi cualquier cosa |
| Apache-2.0 | LEAN, zipline-reloaded, finmarketpy | Permisiva, con concesión de patentes incluida |
Si estás construyendo algo comercial y de código cerrado, las herramientas MIT/Apache son las opciones sin fricción; AGPL y Commons Clause requieren la lectura de un abogado.
La comparativa de un vistazo
| Herramienta | ⭐ Estrellas | Arquitectura | Licencia | Mantenimiento | Trading en vivo | Mejor para |
|---|---|---|---|---|---|---|
| NautilusTrader | 24.1k | Orientada a eventos (Rust) | LGPL-3.0 | 🟢 Activo | Sí | Producción, realismo de tick/order-book |
| vectorbt | 8.0k | Vectorizada | Apache+CC | 🟢 Activo | No | Búsqueda masiva de parámetros |
| backtesting.py | 8.5k | Orientada a eventos | AGPL-3.0 | 🟢 Activo | No | Backtests únicos, rápidos y limpios |
| Freqtrade | 51.7k | Orientada a eventos | GPL-3.0 | 🟢 Activo | Sí (cripto) | Bot de cripto con mantenimiento |
| Backtrader | 22.1k | Orientada a eventos | GPL-3.0 | 🟡 Dormido | Sí | Proyectos legado (cuidado con el estancamiento) |
| Lumibot | 1.7k | Orientada a eventos | GPL-3.0 | 🟢 Activo | Sí | Multiactivo, backtest/vivo unificados |
| LEAN | 20k | Orientada a eventos | Apache-2.0 | 🟢 Activo | Sí | Plataforma multiactivo de peso pesado |
| bt | 2.9k | Vectorizada/pesos | MIT | 🟢 Activo | No | Estrategias de asignación de cartera |
| PyBroker | 3.4k | Orientada a eventos | OSS | 🟢 Activo | No | Estrategias de ML + walk-forward |
| zipline-reloaded | 1.8k | Orientada a eventos | Apache-2.0 | 🟢 Activo | No | Ámbito académico, libro ML4T |
| Zipline (orig.) | 19.9k | Orientada a eventos | Apache-2.0 | 🔴 Abandonado | — | Nada — usa reloaded |
| PyAlgoTrade | 4.7k | Orientada a eventos | — | 🔴 Archivado | — | Nada nuevo |
Las estrellas y los estados son una instantánea del 2026-06-22 y cambiarán; el mantenimiento es la dimensión más volátil, así que vuelve a comprobar la actividad de los commits antes de comprometerte.
Cómo elegir, en una frase
- Investigar una estrategia a través de miles de parámetros → vectorbt.
- Un backtest único, rápido y limpio en un notebook → backtesting.py (ojo con la AGPL).
- Producción de cripto+acciones con paridad investigación→vivo y realismo de tick → NautilusTrader.
- Un bot de cripto con mantenimiento que haga backtest/dry-run/vivo → Freqtrade.
- Trading algorítmico retail multiactivo, apto para principiantes → Lumibot.
- Estrategias de asignación de cartera / ponderación → bt.
- Estrategias de machine learning con walk-forward → PyBroker.
- Trabajo académico / curso de Machine Learning for Trading → zipline-reloaded.
- Heredaste un código en Backtrader → bien, pero ten claro que está dormido; los proyectos nuevos deberían mirar hacia otro lado.
La única regla que sobrevive a cualquier régimen de mercado: mira la fecha del último commit antes de mirar el conteo de estrellas. Una librería de 22k estrellas que no publica nada desde 2023 es un camino más lento a producción que una de 8k que sacó un release la semana pasada.
Metodología: las métricas de GitHub se obtuvieron en vivo desde la API de GitHub el 2026-06-22; las afirmaciones sobre arquitectura, mantenimiento, licencia y trading en vivo se contrastaron con los repositorios de los proyectos y la documentación oficial y se verificaron de forma adversarial, apoyándose en catálogos curados (PyTrade.org, awesome-systematic-trading) y en la lista de alternativas de kernc. La curva de equity, las estadísticas y el mapa de calor de parámetros son salida real de una ejecución de backtesting.py sobre una serie de precios sintética reproducible — ilustrativa, no una recomendación de estrategia. Las cifras de rendimiento atribuidas a proveedores (las aceleraciones de vectorbt, la resolución de nanosegundos de NautilusTrader) son auto-reportadas, no benchmarks independientes.