Jesse: framework de algo-trading para cripto con motor basado en minutos en Python y Rust

La mayoría de los motores de backtesting open-source se dividen en dos bandos: stacks académicos que prueban de maravilla pero son inútiles para el trading real, y terminales curtidos en batalla que operan pero no permiten investigar como es debido. Jesse intenta ser ambas cosas a la vez: un framework de trading cripto con un motor unificado para backtesting, optimización y (mediante plugin) trading en vivo.
Arquitectura: no es una librería, es un pipeline
Jesse es un paquete de motor de ejecución de estrategias + API + UI: la CLI lanza uvicorn con FastAPI, PostgreSQL a través de Peewee, LSP para el editor de estrategias y, opcionalmente, el plugin jesse-live.
Simulación basada en minutos: la "fuente de verdad"

Un invariante crítico: en los backtests solo se aceptan velas de 1 minuto. Los timeframes superiores son agregados — la estrategia de 1h se dispara cada 60 minutos, pero las órdenes se ejecutan dentro de cada minuto según el high/low.
from jesse.research import backtest
result = backtest(
config,
routes=[("Binance", "BTC-USDT", "4h", "MyStrategy")],
candles=candles_1m, # strictly 60_000 ms between candles
)
Estrategia: una máquina de estados con órdenes declarativas
def go_long(self):
qty = utils.size_to_qty(self.balance * 0.5, self.price)
self.buy = qty, self.price
self.stop_loss = qty, self.price * 0.97
self.take_profit = qty, self.price * 1.05
El sistema decide: mercado, límite o stop, en función de la posición del precio respecto al precio actual. En modo live, el precio se redondea según la precisión del exchange.
Optimización: reducir el ruido, no maximizar el beneficio
La función de fitness combate el overfitting: filtro de mínimo 5 operaciones, número de operaciones log-normalizado, validación dual train/test y un Sharpe "inteligente" con penalización por autocorrelación.
Rust bajo el capó
Los indicadores (EMA, RSI, MACD, ATR…) usan jesse-rust. Incluso la aritmética básica está en Rust: la acumulación de errores de coma flotante a lo largo de miles de operaciones convierte los backtests en ficción.
Enlaces
- 💻 GitHub: jesse-ai/jesse
- 🌐 Sitio web: jesse.trade
- 📄 Licencia: MIT
Conclusión
Jesse intenta reducir el algo-trading cripto a un pipeline repetible: motor por minutos, clase Strategy estricta, indicadores en Rust, API de investigación sin fugas de estado y optimización con validación de periodo de test.
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.