Jesse: Python жана Rust тилдериндеги мүнөт негизиндеги кыймылдаткычы бар крипто алго-трейдинг фреймворку

Jesse - крипто рыноктору үчүн алго-трейдинг фреймворкуна терең сереп. Мүнөт негизиндеги симуляция, абал машиналары катары стратегиялар, Rust менен ылдамдатылган индикаторлор, overfitting'ден коргоо менен оптималдаштыруу жана ачык булак дареги менен реалдуу убакыттагы соода ортосундагы чек ара.

Jesse — algo-trading framework

Ачык булак дарегиндеги бэктестинг кыймылдаткычтарынын көбү эки топко бөлүнөт: сонун тестирлеген, бирок чыныгы соода үчүн пайдасыз академиялык стектер, жана соода жасаган, бирок изилдөөнү туура жүргүзүүгө мүмкүндүк бербеген согушта сыналган терминалдар. Jesse экөөнү тең камтууга аракет кылат — бэктестинг, оптималдаштыруу жана (плагин аркылуу) реалдуу убакыттагы соода үчүн бирдиктүү кыймылдаткычы бар крипто трейдинг фреймворку.

Архитектура: китепкана эмес, конвейер

Jesse — бул стратегияны аткаруу кыймылдаткычы + API + UI жыйындысы: CLI FastAPI менен uvicorn'ду, Peewee аркылуу PostgreSQL'ди, стратегия редактору үчүн LSP'ди жана кошумча jesse-live плагинин иштетет.

Мүнөт негизиндеги симуляция: "чындык булагы"

Jesse minute simulation

Маанилүү инвариант: бэктестте бир гана 1 мүнөттүк шамдар кабыл алынат. Жогорку убакыт алкактары агрегаттар болуп саналат — 1h стратегиясы ар бир 60 мүнөт сайын иштейт, бирок ордерлер ар бир мүнөттүн ичинде 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
)

Стратегия: декларативдик ордерлери бар абал машинасы

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

Система чечим кабыл алат: market, limit же stop — учурдагы баага карата баанын жайгашуусуна негизделип. Реалдуу убакыт режиминде баа биржанын тактыгына жараша тегеректелет.

Оптималдаштыруу: пайданы максималдаштыруу эмес, ызы-чууну азайтуу

Fitness функциясы overfitting менен күрөшөт: минимум 5 бүтүм чыпкасы, лог-нормалдаштырылган бүтүм саны, кош train/test валидациясы жана автокорреляция айыбы бар "акылдуу" Sharpe.

Капоттун астындагы Rust

Индикаторлор (EMA, RSI, MACD, ATR…) jesse-rust колдонот. Атүгүл жөнөкөй арифметика да Rust тилинде: миңдеген бүтүмдөр боюнча топтолгон float каталары бэктесттерди ойдон чыгарылганга айландырат.

Шилтемелер

Корутунду

Jesse крипто алго-трейдингди кайталануучу конвейерге чейин кыскартууга аракет кылат: мүнөттүк кыймылдаткыч, катуу Strategy классы, Rust индикаторлору, абал агып кетүүсүз изилдөө API'и жана тест мезгилин валидациялоо менен оптималдаштыруу.