Polymarket Bot Tutorial · บทที่ 23 จาก 32
รูปแบบบอทตลาด BTC/ETH แบบ up-down ระยะ 5 นาทีของ Polymarket: ครบกำหนด 288 ครั้งต่อวัน, การทำงานที่ไวต่อ latency, แหล่ง edge, ทำไมบอทรายย่อยส่วนใหญ่ถึงขาดทุน, และโครงร่างโค้ดสำหรับกลยุทธ์นี้
บทนี้ครอบคลุมอะไรบ้าง
ซีรีส์ BTC up/down ระยะ 5 นาทีของ Polymarket จะตัดสินผล 288 ครั้งต่อวัน ทำให้ edge ใดๆ ทบต้นจากการทำซ้ำจำนวนมากได้ มักจะมีบอทรายย่อยแพ้ที่นี่แม้จะมีวอลุ่ม เพราะมาตรฐานด้าน latency และ edge ถูกกำหนดโดยบริษัทมืออาชีพ บทนี้คือสิ่งที่ยังอยู่รอด
- ตลาดคริปโตระยะ 5 นาทีคืออะไร
- ครบกำหนด 288 ครั้งต่อวัน = การทำซ้ำเพื่อทบต้น
- ทำไมบอทรายย่อยถึงแพ้ที่นี่
- แหล่ง edge ที่ยังอยู่รอด
- งบประมาณ latency
- ความเสี่ยง: ต่อไม้เล็ก แต่ต่อวันใหญ่
- โค้ด: โครงร่างกลยุทธ์ 5 นาที
ตลาดคริปโตระยะ 5 นาทีคืออะไร
ตลาดคริปโตระยะ 5 นาทีของ Polymarket เป็นคำถามแบบ binary ว่า BTC (และ ETH) จะขึ้นหรือลงเมื่อเทียบกับราคา ตอนเปิดตลาดใหม่ทุก 5 นาที; แต่ละตลาดจะตัดสินตามราคาปิด 5 นาทีหลังเปิด โดยอ้างอิงจาก oracle ที่เผยแพร่ไว้
สิ่งนี้ทำให้เกิดตลาด 288 รายการต่อ asset ต่อวัน โอกาสในการทบต้นจาก edge ใดๆ นั้นมหาศาล: แม้แต่ edge ต่อไม้เล็กน้อยก็มีความหมายเมื่อคุณนำไปใช้ได้ 100+ ครั้งต่อวัน
อีกด้านหนึ่ง: มาตรฐานถูกกำหนดโดยบริษัทมืออาชีพ mid เคลื่อนไหวสอดคล้องกับ price feed ต้นทางอย่างแน่น และ order book มักจะบางในฝั่งที่ผิดทาง
ครบกำหนด 288 ครั้งต่อวัน = การทำซ้ำเพื่อทบต้น
ถ้า edge ของคุณคือ 0.5c ต่อไม้ ด้วย win rate 55% และคุณสามารถเข้าเทรดได้ 60 ครั้งต่อวัน ค่า PnL ต่อวันโดยคาดหวังคือ 60 × 0.5c = $0.30 สำหรับสถานะ 10 หุ้น = $3/วัน ฟังดูเล็ก แต่เมื่อนำไปทบต้นก็มีความหมาย: 252 วันทำการ × $3 = $750/ปี โดยแทบไม่ต้องใช้เงินทุนเสี่ยงเลย (สถานะตัดสินผลภายใน 5 นาที)
เพื่อให้ edge เดียวกันสร้าง $750/ปี บน binary ที่ตัดสินผลแค่ไตรมาสละครั้ง คุณจะต้องมีขนาดต่อไม้ที่ใหญ่กว่านี้มาก และหางการขาดทุนที่กว้างกว่ามาก
ตลาด 5 นาทีคือส่วนเดียวบน Polymarket ที่ edge เล็กแต่ถี่สามารถรวมกันกลายเป็นรายได้ต่อปีที่มีนัยสำคัญได้
ทำไมบอทรายย่อยถึงแพ้ที่นี่
มี failure mode 3 แบบที่ฆ่าผู้เล่นรายย่อยอย่างสม่ำเสมอ
- Latency: บริษัทมืออาชีพส่งคำสั่งใน 50-100ms; บอทรายย่อยใช้เวลา 1-3 วินาที กว่าจะยิงออกไป ราคาได้ย้ายไปที่ mid ใหม่แล้ว
- Information asymmetry: CEX ต้นทาง (Binance, Coinbase) ปล่อย trade tape เร็วกว่าฟีดราคาของ Polymarket บอทที่ไม่มี direct CEX subscriptions กำลังเทรดบนข้อมูลที่ล้าสมัย
- Spread tax: ใน cadence 5 นาที แม้ spread 0.5c × 60 ไม้ = 30c ต่อวัน ก็เป็นต้นทุนที่หลีกเลี่ยงไม่ได้ Edge ต้องชนะต้นทุนนี้ก่อนจึงจะทำกำไรได้
บอทรายย่อยมักคุ้มทุนหรือขาดทุน เพราะไม่สามารถเร็วกว่าโปรได้ และหนี spread tax ไม่พ้น กลยุทธ์ที่ใช้ได้สำหรับรายย่อยไม่ใช่ edge สู้กับโปร; แต่เป็นกลยุทธ์ที่ตัดสินใจช้ากว่าแต่มีข้อได้เปรียบด้านข้อมูลเฉพาะทาง
แหล่ง edge ที่ยังอยู่รอด
สิ่งที่ใช้ได้จริงสำหรับรายย่อยในตลาด 5 นาที
- Funding-rate-driven directional bias: funding เชิงบวกสุดขั้วบน perp futures มักคาดการณ์การ mean reversion; เทรดสวน funding rate
- Open-interest-clearing windows: ตอนต้นชั่วโมง การ liquidations ของ perp futures มีโอกาสสูงขึ้น; fade การเคลื่อนไหวที่สุดโต่งในช่วงนั้น
- Late-window resolution arbitrage: ใน 30 วินาทีสุดท้ายของหน้าต่าง 5 นาที ราคาที่ใช้ตัดสินเริ่มคาดเดาได้มากขึ้น; order book มักเสนอสภาพคล่องบางๆ ในความน่าจะเป็นที่ไม่สอดคล้องกับ live tape
สิ่งที่ใช้ไม่ได้: สัญญาณทางเทคนิคแบบล้วนๆ (RSI, moving averages), การตาม momentum แบบง่ายๆ, อะไรก็ตามที่ต้องการให้บอทเร็วกว่าโปร
งบประมาณ latency
สำหรับกลยุทธ์ 5 นาทีที่ใช้งานได้ การแบ่งงบประมาณโดยคร่าวๆ คือ:
- อ่านแหล่งสัญญาณ (CEX trade tape, funding rate): 100-300ms
- คำนวณการตัดสินใจ: 50ms
- ส่งคำสั่ง FOK: 200-500ms
- รับ confirmation ว่า fill แล้ว: 200ms
รวม: 550-1050ms ทำได้บน VPS ที่มี paid RPC และ direct CEX WebSocket subscription แต่ทำไม่ได้บนแล็ปท็อปที่บ้านหรือ API ฟรีระดับเริ่มต้น
กลยุทธ์ที่ต้องใช้เวลารวม < 500ms คือพื้นที่ของโปร รายย่อยไม่ควรไปแข่งตรงนั้น
ความเสี่ยง: ต่อไม้เล็ก แต่ต่อวันใหญ่
การกำหนดขนาดสำหรับตลาด 5 นาที: ต่อไม้เล็ก และจำกัดยอดรวมต่อวัน
- ต่อไม้: 5-15 หุ้น ($1-6) ต่อ market ต่ำกว่า 5 ทำให้ขายแบบ GTC ยาก; สูงกว่า 15 จะลาก order book ตอนเข้า
- ยอดรวมต่อวัน: 50-100 ไม้ มากกว่านี้จะสร้าง exposure ที่สัมพันธ์กันจากความแปลกของ oracle เพียงจุดเดียว
- daily PnL kill switch: หยุดถ้ายอด PnL สะสมติดลบ > $10 (หรือ 5% ของทุนที่จัดสรร) วันที่แย่ในตลาด 5 นาทีมักเกิดจากสมมติฐานของกลยุทธ์ที่พังแล้ว; เอาตัวรอดให้ถึงวันถัดไป, debug, แล้วค่อย deploy ใหม่
ความไม่สมดุลระหว่างขนาดต่อไม้กับจำนวนไม้ต่อวันเป็นเรื่องตั้งใจ คุณกำลังเล่นแบบ breadth ไม่ใช่ depth
โค้ด: โครงร่างกลยุทธ์ 5 นาที
อ้างอิง: trading loop สำหรับบอท 5 นาทีที่ขับเคลื่อนด้วย funding rate
def five_min_loop():
while True:
wait_for_next_window_open() # blocks until xx:x0:00 or xx:x5:00
markets = find_open_5min_markets("btc")
if not markets: continue
funding = fetch_perp_funding_rate("BTCUSDT")
bias = "DOWN" if funding > 0.001 else "UP" if funding < -0.001 else None
if bias is None: continue
market = markets[0]
token = market["clobTokenIds"][0 if bias == "UP" else 1]
book = fetch_book(token)
if not book.best_ask or book.best_ask > 0.55: continue
place_fok(token, "BUY", book.best_ask + 0.01, 10)
สิ่งที่ต้องเพิ่มในเวอร์ชัน production: ติดตามสถานะข้ามหน้าต่าง 5 นาทีเพื่อให้ timing การออกแม่นยำ, paper-trade 30 หน้าต่างก่อนลงเงินจริง, หยุดเมื่อขาดทุนต่อเนื่อง





