Building a Cross-Ticker Execution Engine for Crypto Markets
ช่วงนี้กระแส Crypto มาแรงมาก ผมเองก็อยากเข้าไปด้วยเช่นกัน แต่คงต้องเริ่มต้นจากความระมัดระวัง ผมมองว่าระบบนิเวศของสินทรัพย์ดิจิทัลยังมีความดิบและเต็มไปด้วยความโลภของผู้เล่นในตลาด แม้จะมีความเสี่ยงสูงแต่ปฏิเสธไม่ได้ว่าความผันผวนนี้เป็นโอกาสที่ดีสำหรับการทดสอบระบบเทรดอัตโนมัติ (Algorithmic Trading)
ผมเลือกวางกลยุทธ์โดยไม่เน้นการถือครองระยะยาวและจำกัดเงินทุนให้ต่ำที่สุด เป้าหมายหลักคือการใช้ Binance เป็นสนามทดสอบระบบที่ผมพัฒนาขึ้นเอง เนื่องจากโครงสร้างพื้นฐานของ API ที่ค่อนข้างเสถียรเมื่อเทียบกับผู้ให้บริการรายอื่น
Rethinking the Framework Design
ปัญหาที่ผมพบจากการศึกษา Library หรือ Trading Framework ส่วนใหญ่ในตลาดคือการออกแบบสถาปัตยกรรมที่เน้น "Single-Ticker Execution" ระบบเหล่านั้นมักถูกสร้างมาเพื่อเฝ้าดูและส่งคำสั่งซื้อขายสินทรัพย์เพียงตัวเดียวแยกขาดจากกัน หากต้องการเทรดหลายคู่เงิน ผู้ใช้มักต้องเปิด Instance ของบอทแยกกัน ซึ่งจัดการข้อมูลทำได้ยาก
ในมุมมองของผม ตลาดไม่ได้เคลื่อนที่แบบเอกเทศ สินทรัพย์แต่ละตัวมีความสัมพันธ์กัน (Correlation) เหตุการณ์ที่เกิดขึ้นกับ BTC ย่อมส่งผลกระทบต่อ Altcoins อื่นในระบบนิเวศเดียวกัน การวิเคราะห์เหรียญใดเหรียญหนึ่งโดยละทิ้งบริบทของตลาดภาพรวมจึงเป็นจุดอ่อนสำคัญที่ผมต้องการแก้ไข
Architecture: One Trader, 150+ Tickers
ผมพัฒนา binance_bot ขึ้นด้วยปรัชญาที่แตกต่าง ผมออกแบบให้ Engine ตัวเดียวสามารถสแกนและจัดการ Tickers ได้มากกว่า 150 ตัวพร้อมกันในเวลา Real-time
แนวคิดหลักของ Repo นี้คือ:
- Centralized Data Aggregation: รวบรวมข้อมูลจากหลายคู่เหรียญเข้ามาที่ศูนย์กลางเพื่อคำนวณความสัมพันธ์ของราคา
- Inter-connected Logic: รองรับกลยุทธ์ประเภทที่ต้องใช้เงื่อนไขจากสินทรัพย์ตัวหนึ่งเพื่อส่งคำสั่งซื้อขายในอีกตัวหนึ่ง เช่น การเทรด ETH โดยอ้างอิงความแรงของ Momentum จาก BTC
- Resource Efficiency: ใช้การจัดการ Thread และ Connection ที่มีประสิทธิภาพเพื่อให้บอทตัวเดียวดูแลครอบคลุมทั้งกระดานเทรด
การออกแบบนี้ช่วยให้ผมสามารถมองเห็นภาพรวมของ Flow เงินในตลาดได้ชัดเจนกว่าการเฝ้ามองผ่านทีละเหรียญ และเอื้อให้เกิดการสร้างกลยุทธ์ที่มองภาพใหญ่ก่อนลงมือเทรดจริง