Jesse: เฟรมเวิร์กการเทรด Crypto แบบอัลโกริทึมพร้อมเอนจินรายนาทีใน Python และ Rust

รีวิวเชิงลึกของ Jesse - เฟรมเวิร์กการเทรดแบบอัลโกริทึมสำหรับตลาด crypto การจำลองแบบรายนาที กลยุทธ์ในรูปแบบ state machine ตัวบ่งชี้ที่เร่งความเร็วด้วย Rust การปรับแต่งพร้อมการป้องกัน overfitting และขอบเขตระหว่าง open-source core กับการเทรดสด

Jesse — เฟรมเวิร์กการเทรดแบบอัลโกริทึม

เอนจิน backtesting แบบ open-source ส่วนใหญ่แบ่งออกเป็นสองกลุ่ม: ชุดเครื่องมือเชิงวิชาการที่ทดสอบได้สวยงามแต่ไร้ประโยชน์สำหรับการเทรดจริง และเทอร์มินัลที่ผ่านการทดสอบในสนามรบซึ่งเทรดได้แต่ไม่อนุญาตให้วิจัยอย่างเหมาะสม Jesse พยายามเป็นทั้งสองอย่าง — เฟรมเวิร์กการเทรด crypto พร้อมเอนจินเดียวกันสำหรับ backtesting การปรับแต่ง และ (ผ่านปลั๊กอิน) การเทรดสด

สถาปัตยกรรม: ไม่ใช่ไลบรารี แต่เป็น Pipeline

Jesse คือ strategy execution engine + API + UI bundle: CLI เริ่มต้น uvicorn พร้อม FastAPI, PostgreSQL ผ่าน Peewee, LSP สำหรับ strategy editor และปลั๊กอิน jesse-live แบบเสริม

การจำลองแบบรายนาที: "แหล่งความจริง"

การจำลองแบบรายนาทีของ Jesse

invariant ที่สำคัญ: ยอมรับเฉพาะแท่งเทียน 1 นาทีใน backtests เท่านั้น timeframe ที่สูงกว่าคือค่าเฉลี่ย — กลยุทธ์ 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
)

กลยุทธ์: State Machine พร้อมคำสั่งแบบ Declarative

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 — ขึ้นอยู่กับตำแหน่งราคาเทียบกับปัจจุบัน ในโหมดสด ราคาจะถูกปัดเศษตามความแม่นยำของ exchange

การปรับแต่ง: ตัดสัญญาณรบกวน ไม่ใช่เพิ่มกำไรสูงสุด

ฟังก์ชัน fitness ต่อสู้กับ overfitting: ตัวกรองการเทรดขั้นต่ำ 5 ครั้ง จำนวนการเทรดที่ normalized ด้วย log การตรวจสอบ train/test แบบคู่ และ Sharpe "อัจฉริยะ" พร้อมการลงโทษ autocorrelation

Rust ใต้ฝากระโปรง

ตัวบ่งชี้ (EMA, RSI, MACD, ATR…) ใช้ jesse-rust แม้แต่การคำนวณพื้นฐานก็อยู่ใน Rust: การสะสมข้อผิดพลาด float ในการเทรดหลายพันครั้งจะทำให้ backtests กลายเป็นเรื่องสมมติ

ลิงก์

สรุป

Jesse พยายาม ลดการเทรด crypto แบบอัลโกริทึมให้เป็น pipeline ที่ทำซ้ำได้: เอนจินรายนาที Strategy ที่เข้มงวด ตัวบ่งชี้ Rust, research API โดยไม่มีการรั่วไหลของ state การปรับแต่งพร้อมการตรวจสอบช่วงทดสอบ