Jesse: crypto algo-trading framework met een minuutgebaseerde engine in Python en Rust

Diepgaande review van Jesse - een algo-trading framework voor cryptomarkten. Minuutgebaseerde simulatie, strategieën als state machines, met Rust versnelde indicatoren, optimalisatie met overfitting-bescherming, en de grens tussen de open-source kern en live trading.

Jesse — algo-trading framework

De meeste open-source backtesting-engines vallen in twee kampen uiteen: academische stacks die prachtig testen maar nutteloos zijn voor echt trading, en beproefde terminals die wel traden maar geen fatsoenlijk onderzoek toelaten. Jesse probeert beide te zijn — een crypto trading framework met een uniforme engine voor backtesting, optimalisatie en (via een plugin) live trading.

Architectuur: geen library, maar een pipeline

Jesse is een bundel van strategy execution engine + API + UI: de CLI start uvicorn met FastAPI, PostgreSQL via Peewee, LSP voor de strategie-editor, en optioneel de jesse-live plugin.

Minuutgebaseerde simulatie: de "bron van waarheid"

Jesse minute simulation

Een kritieke invariant: in backtests worden uitsluitend 1-minuut candles geaccepteerd. Hogere timeframes zijn aggregaten — de 1h-strategie vuurt elke 60 minuten af, maar orders worden binnen elke minuut uitgevoerd op basis van 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
)

Strategie: een state machine met declaratieve orders

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

Het systeem beslist: market, limit of stop — op basis van de prijspositie ten opzichte van de huidige prijs. In live-modus wordt de prijs afgerond volgens de precisie van de exchange.

Optimalisatie: ruis wegsnijden, niet winst maximaliseren

De fitness-functie bestrijdt overfitting: een filter van minimaal 5 trades, log-genormaliseerd aantal trades, dubbele train/test-validatie, en een "slimme" Sharpe met een autocorrelatie-penalty.

Rust onder de motorkap

Indicatoren (EMA, RSI, MACD, ATR…) gebruiken jesse-rust. Zelfs basale rekenkunde is in Rust geschreven: de opeenstapeling van float-fouten over duizenden trades maakt backtests anders tot fictie.

Conclusie

Jesse probeert crypto algo-trading terug te brengen tot een herhaalbare pipeline: minuut-engine, strikte Strategy-klasse, Rust-indicatoren, research-API zonder state-lekken, en optimalisatie met validatie op een testperiode.