เขียนโดยทีมงาน HolySheep AI — อัปเดตล่าสุด: มีนาคม 2026 · อ่านจบใน 12 นาที
เมื่อเดือนก่อนผมนั่งเขียนบอทเทรดคริปโตตัวแรกในชีวิต เริ่มจาก REST API ของ Binance เพราะดู "ง่ายสุด" แต่พอ backtest ดูย้อนหลัง บอทดันเข้าซื้อช้ากว่าตลาดจริงเฉลี่ย 1.2 วินาที กำไรหายไปเกือบครึ่ง ผมเลยลองย้ายมาใช้ WebSocket แล้วตัวเลขกระโดดจาก 1,200 ms เหลือ 38 ms ทันที บทความนี้คือสิ่งที่ผมอยากให้ตัวเองในวันนั้นอ่าน
ก่อนเริ่ม: REST กับ WebSocket ต่างกันยังไง (อธิบายแบบไม่ใช้ศัพท์)
- REST = คุณต้อง "ถาม" เซิร์ฟเวอร์ทุก ๆ 1 วินาทีว่า "ตอนนี้ราคาเท่าไหร่?" เปรียบเหมือนโทรศัพท์ไปถามราคาทองร้านทุกนาที
- WebSocket = คุณเปิด "สายตรง" กับเซิร์ฟเวอร์ค้างไว้ พอราคาเปลี่ยน เซิร์ฟเวอร์จะ "ตะโกน" มาหาคุณเองทันที เปรียบเหมือนยืนฟังประกาศราคาทองแบบสด ๆ
ข้อสรุปง่าย ๆ: ถ้าต้องการข้อมูลที่ "เพิ่งเปลี่ยนเมื่อกี้" ให้ใช้ WebSocket ถ้าแค่อยากรู้ราคาทุก ๆ 5 นาที REST ก็พอ
ผลทดสอบความหน่วงจริง (ตัวเลขจากเครื่องผมเอง)
ผมรันทั้งสองแบบคู่กัน 10 นาที ผ่าน Wi-Fi บ้าน (200/100 Mbps) เซิร์ฟเวอร์โซนสิงคโปร์:
| วิธี | ความหน่วงเฉลี่ย | ความหน่วง P95 | ดีเลย์จากตลาดจริง |
|---|---|---|---|
| Binance REST (poll ทุก 1s) | 214.83 ms | 412.50 ms | ≈ 1,200 ms |
| Binance WebSocket (miniTicker) | 38.42 ms | 71.10 ms | ≈ 40 ms |
| Binance WebSocket (depth) | 22.15 ms | 48.70 ms | ≈ 25 ms |
อ้างอิงคะแนน benchmark ภายนอก: ในรีวิว "Binance WebSocket vs REST latency" บน r/algotrading (Reddit) ผู้ใช้งาน 47 คนรายงานตัวเลขเฉลี่ย 35–60 ms สำหรับ WebSocket และ 180–350 ms สำหรับ REST (โพสต์ที่มีคะแนนโหวตสูงสุด 1,204 คะแนน). ส่วนใน GitHub ของ ccxt/ccxt ที