← Retour aux articles
April 19, 2026
5 min de lecture

Jesse : framework d'algo-trading crypto avec moteur à la minute en Python et Rust

Jesse : framework d'algo-trading crypto avec moteur à la minute en Python et Rust
#jesse
#algo-trading
#crypto
#backtest
#python
#rust
#review
#open-source

Jesse — algo-trading framework

La plupart des moteurs de backtesting open-source se répartissent en deux camps : les stacks académiques qui testent à merveille mais sont inutilisables pour le trading réel, et les terminaux éprouvés au combat qui tradent mais ne permettent pas de faire de la recherche correctement. Jesse tente de concilier les deux — un framework de trading crypto avec un moteur unifié pour le backtesting, l'optimisation et (via un plugin) le trading en direct.

Architecture : pas une bibliothèque, mais un pipeline

Jesse est un ensemble moteur d'exécution de stratégies + API + UI : la CLI démarre uvicorn avec FastAPI, PostgreSQL via Peewee, un LSP pour l'éditeur de stratégies, et en option le plugin jesse-live.

Simulation à la minute : la "source de vérité"

Jesse minute simulation

Un invariant critique : seules les bougies d'1 minute sont acceptées en backtest. Les unités de temps supérieures sont des agrégats — la stratégie en 1h se déclenche toutes les 60 minutes, mais les ordres s'exécutent au sein de chaque minute selon le 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
)

Stratégie : une machine à états avec des ordres déclaratifs

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

Le système décide : marché, limite ou stop — en fonction de la position du prix par rapport au prix courant. En mode live, le prix est arrondi selon la précision de l'exchange.

Optimisation : réduire le bruit, pas maximiser le profit

La fonction de fitness lutte contre l'overfitting : filtre d'un minimum de 5 trades, nombre de trades log-normalisé, double validation train/test, et un Sharpe "intelligent" avec pénalité d'autocorrélation.

Rust sous le capot

Les indicateurs (EMA, RSI, MACD, ATR…) utilisent jesse-rust. Même l'arithmétique de base est en Rust : l'accumulation d'erreurs de flottants sur des milliers de trades transforme sinon les backtests en fiction.

Liens

Conclusion

Jesse tente de réduire l'algo-trading crypto à un pipeline reproductible : moteur à la minute, classe Strategy stricte, indicateurs en Rust, API de recherche sans fuite d'état, et optimisation avec validation sur période de test.

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

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.

Newsletter

Gardez une longueur d'avance sur le marché

Abonnez-vous à notre newsletter pour des insights exclusifs sur le trading IA, des analyses de marché et des mises à jour de la plateforme.

Nous respectons votre vie privée. Désabonnement possible à tout moment.