Polymarket Bot Tutorial · Chương 23 trên 32
Mô hình bot cho thị trường Polymarket BTC/ETH up-down 5 phút: 288 lần hết hạn mỗi ngày, execution phụ thuộc latency, nguồn edge, vì sao hầu hết retail bot thua lỗ, và skeleton code cho chiến lược.
Chương này nói về gì
Series BTC up/down 5 phút của Polymarket được quyết toán 288 lần mỗi ngày, cộng dồn bất kỳ edge nào qua rất nhiều lần lặp. Hầu hết retail bot đều thua ở đây dù khối lượng lớn, vì latency và ngưỡng edge được thiết lập bởi các công ty chuyên nghiệp. Chương này là phần còn trụ lại được.
- Thị trường crypto 5 phút là gì
- 288 lần hết hạn mỗi ngày = số lần lặp cộng dồn
- Vì sao retail bot thua ở đây
- Các nguồn edge còn sống sót
- Latency budget
- Risk: nhỏ mỗi trade, lớn mỗi ngày
- Code: skeleton chiến lược 5 phút
Thị trường crypto 5 phút là gì
Thị trường crypto 5 phút của Polymarket là các câu hỏi nhị phân up/down về giá BTC (và ETH). Thị trường mới mở mỗi 5 phút; mỗi thị trường được quyết toán dựa trên giá đóng cửa sau 5 phút kể từ lúc mở, lấy từ một oracle đã công bố.
Điều này tạo ra 288 thị trường cho mỗi asset mỗi ngày. Cơ hội cộng dồn cho bất kỳ edge nào là cực lớn: chỉ một edge nhỏ mỗi trade cũng trở nên đáng kể khi bạn có thể thực hiện nó hơn 100 lần mỗi ngày.
Mặt trái: ngưỡng được đặt bởi các công ty chuyên nghiệp. Mid di chuyển rất sát với nguồn giá cơ sở, và sổ lệnh thường mỏng ở phía leg đi ngược.
288 lần hết hạn mỗi ngày = số lần lặp cộng dồn
Nếu edge của bạn là 0.5c mỗi trade với win rate 55% và bạn có thể thực hiện 60 trade mỗi ngày, PnL kỳ vọng mỗi ngày là 60 × 0.5c = $0.30 trên vị thế 10-share = $3/ngày. Nghe có vẻ nhỏ, nhưng nó cộng dồn: 252 ngày giao dịch × $3 = $750/năm trên mức phơi nhiễm vốn gần như bằng 0 (vị thế được quyết toán trong vòng 5 phút).
Để cùng một edge tạo ra $750/năm trên một binary chỉ quyết toán mỗi quý, bạn sẽ cần size mỗi trade lớn hơn rất nhiều và đuôi lỗ cũng rộng hơn rất nhiều.
Thị trường 5 phút là phân khúc duy nhất trên Polymarket nơi các edge nhỏ nhưng thường xuyên có thể cộng lại thành thu nhập hằng năm đáng kể.
Vì sao retail bot thua ở đây
Ba kiểu thất bại thường xuyên giết chết người tham gia retail.
- Latency: các công ty chuyên nghiệp đặt lệnh trong 50-100ms; retail bot mất 1-3 giây. Đến lúc bạn bắn lệnh, giá đã ở mid mới rồi.
- Information asymmetry: CEX cơ sở (Binance, Coinbase) in trade tape nhanh hơn price feed của Polymarket. Bot không có subscription trực tiếp vào CEX đang giao dịch trên dữ liệu cũ.
- Spread tax: với nhịp 5 phút, chỉ cần spread 0.5c × 60 trade = 30c mỗi ngày là chi phí không thể tránh khỏi. Edge phải vượt qua mức đó thì mới có lãi.
Retail bot thường hòa vốn hoặc thua lỗ vì không thể nhanh hơn các pro và không thể thoát khỏi spread tax. Những chiến lược hiệu quả cho retail không phải là edge-đấu-pro; mà là các chiến lược ra quyết định chậm hơn nhưng có lợi thế thông tin cụ thể.
Các nguồn edge còn sống sót
Cái gì có thể hiệu quả cho retail trên thị trường 5 phút.
- Funding-rate-driven directional bias: funding dương cực đoan trên perp futures thường báo hiệu mean reversion; trade ngược lại funding rate.
- Open-interest-clearing windows: vào đầu mỗi giờ, khả năng liquidations trên perp futures cao hơn; fade các cú move cực đoan trong khung này.
- Late-window resolution arbitrage: trong 30 giây cuối của một window 5 phút, giá quyết toán ngày càng dễ suy ra; sổ lệnh thường đưa ra thanh khoản mỏng ở các xác suất không khớp với live tape.
Những thứ không hiệu quả: tín hiệu kỹ thuật thuần túy (RSI, moving averages), simple momentum copying, bất cứ thứ gì đòi bot phải nhanh hơn các pro.
Latency budget
Với một chiến lược 5 phút khả thi, phân bổ budget xấp xỉ như sau:
- Đọc nguồn tín hiệu (CEX trade tape, funding rate): 100-300ms
- Tính toán quyết định: 50ms
- Đặt lệnh FOK: 200-500ms
- Nhận xác nhận khớp lệnh: 200ms
Tổng cộng: 550-1050ms. Có thể đạt được trên VPS với paid RPC và direct CEX WebSocket subscription. Không thể đạt được trên laptop tại nhà hoặc với free-tier APIs.
Các chiến lược cần tổng thời gian < 500ms thuộc về sân chơi của pro; retail không nên cạnh tranh ở đó.
Risk: nhỏ mỗi trade, lớn mỗi ngày
Kích thước vị thế cho thị trường 5 phút: nhỏ mỗi trade, giới hạn theo ngày.
- Mỗi trade: 5-15 shares ($1-6) cho mỗi market. Dưới 5 thì GTC sells gần như bất khả thi; trên 15 sẽ quét qua book khi vào lệnh.
- Tổng mỗi ngày: 50-100 trade. Nhiều hơn sẽ tạo ra mức phơi nhiễm tương quan với một quirk của oracle duy nhất.
- Daily PnL kill switch: dừng nếu cumulative PnL giảm > $10 (hoặc 5% vốn phân bổ). Những ngày xấu trên thị trường 5 phút thường là do một giả định chiến lược đã bị phá vỡ; hãy sống sót qua ngày đó, debug, rồi deploy lại.
Sự bất đối xứng giữa size mỗi trade và số lượng mỗi ngày là có chủ ý. Bạn đang chơi theo chiều rộng, không phải chiều sâu.
Code: skeleton chiến lược 5 phút
Tham chiếu: trading loop cho một bot 5 phút dựa trên 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)
Các bổ sung cho bản production: theo dõi vị thế xuyên suốt window 5 phút để xác định thời điểm thoát lệnh chính xác, paper-trade trong 30 windows trước khi live, dừng khi thua liên tiếp.





