Jesse: Python va Rust tilidagi daqiqalarga asoslangan dvigatelli kripto algo-treyding freymvorki
Jesse - kripto bozorlari uchun algo-treyding freymvorkiga chuqur sharh. Daqiqalarga asoslangan simulyatsiya, holat mashinasi sifatidagi strategiyalar, Rust bilan tezlashtirilgan indikatorlar, overfitting'dan himoyalangan optimallashtirish va ochiq manbali yadro bilan jonli treyding o'rtasidagi chegara.


Ochiq manbali backtesting dvigatellarining aksariyati ikki guruhga bo'linadi: ajoyib test qiladigan, lekin haqiqiy treyding uchun yaroqsiz akademik steklar va treyding qiladigan, lekin to'g'ri tadqiqot o'tkazishga imkon bermaydigan jangda sinovdan o'tgan terminallar. Jesse ikkalasi ham bo'lishga harakat qiladi — backtesting, optimallashtirish va (plagin orqali) jonli treyding uchun yagona dvigatelli kripto treyding freymvorki.
Arxitektura: kutubxona emas, pipeline
Jesse — bu strategiyani bajarish dvigateli + API + UI to'plami: CLI FastAPI bilan uvicorn'ni, Peewee orqali PostgreSQL'ni, strategiya muharriri uchun LSP'ni va ixtiyoriy jesse-live plaginini ishga tushiradi.
Daqiqalarga asoslangan simulyatsiya: "haqiqat manbai"

Muhim invariant: backtestlarda faqat 1 daqiqalik sham (candle)lar qabul qilinadi. Yuqori vaqt oralig'i (timeframe)lar agregatlardir — 1h strategiya har 60 daqiqada ishga tushadi, lekin buyurtmalar har bir daqiqa ichida high/low bo'yicha bajariladi.
from jesse.research import backtest
result = backtest(
config,
routes=[("Binance", "BTC-USDT", "4h", "MyStrategy")],
candles=candles_1m, # strictly 60_000 ms between candles
)
Strategiya: deklarativ buyurtmali holat mashinasi
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
Tizim qaror qabul qiladi: market, limit yoki stop — joriy narxga nisbatan narx pozitsiyasiga asoslanib. Jonli rejimda narx birja aniqligiga muvofiq yaxlitlanadi.
Optimallashtirish: shovqinni kesish, foydani maksimallashtirish emas
Fitness funksiyasi overfitting bilan kurashadi: kamida 5 ta bitim filtri, log-normallashtirilgan bitimlar soni, ikki tomonlama train/test validatsiyasi va avtokorrelyatsiya jarimasi bilan "aqlli" Sharpe.
Kaput ostidagi Rust
Indikatorlar (EMA, RSI, MACD, ATR…) jesse-rustdan foydalanadi. Hatto oddiy arifmetika ham Rust tilida: minglab bitimlar davomida to'planadigan float xatolari backtestlarni fantastikaga aylantiradi.
Havolalar
- 💻 GitHub: jesse-ai/jesse
- 🌐 Veb-sayt: jesse.trade
- 📄 Litsenziya: MIT
Xulosa
Jesse kripto algo-treydingni takrorlanadigan pipeline'ga qisqartirishga harakat qiladi: daqiqalik dvigatel, qat'iy Strategy klassi, Rust indikatorlari, holat oqib ketishisiz tadqiqot API'si va test davri validatsiyasi bilan optimallashtirish.