Membangun bot Polymarket: arsitektur untuk scanner, sizing, eksekusi
Panduan pengembang untuk membangun bot Polymarket: scanner, penentuan ukuran risiko, executor, dan pemantauan. Arsitektur praktis dan referensi API.
Membangun bot Polymarket: scanner, sizing, eksekusi, pemantauan
Panduan ini menunjukkan cara membangun bot Polymarket yang terus-menerus memindai pasar, menentukan ukuran peluang, mengeksekusi melalui CLOB, dan memantau performa. Fokusnya pada arsitektur dan pola pengembang yang bisa Anda terapkan menggunakan API publik Polymarket dan model Relayer.
Ringkasan utama
- Arsitek bot sebagai empat layanan independen: scanner, sizer, executor, dan monitor.
- Gunakan Gamma dan CLOB API Polymarket untuk listing dan penempatan order; WebSocket untuk pembaruan buku real-time.
- Prioritaskan order pasar FAK untuk eksekusi berkecepatan arbitrar tetapi selalu perhitungkan slippage dan biaya.
- Instrumen pemantauan dan tombol penghentian cepat untuk sengketa oracle, penundaan penyelesaian, atau fills tak terduga.
Mengapa struktur ini
Sistem trading lebih mudah dianalisis bila tanggung jawab dipisah. Scanner menemukan edge kandidat, sizer mengubah edge menjadi posisi, executor menempatkan order melalui CLOB, dan monitor memastikan korektitas dan keamanan. Pemisahan ini memungkinkan skalabilitas, pengujian, dan penalaran tentang latensi serta risiko secara independen.
H2: Sumber data dan API
Mulai dengan menghubungkan endpoint Polymarket ini ke layanan Anda:
- Gamma (metadata pasar): https://gamma-api.polymarket.com — markets, events, tags, series. Gunakan paginasi dengan after_cursor; hindari offset.
- CLOB (order book & trading): https://clob.polymarket.com — pembacaan orderbook bersifat publik; trading memerlukan API key + HMAC. SDK CLOB menangani penempatan order.
- Market WebSocket (buku real-time): wss://ws-subscriptions-clob.polymarket.com/ws/market — subscribe untuk book, price_change, best_bid_ask, dan tick_size_change. PING setiap 10s.
- Data API (posisi, open interest): https://data-api.polymarket.com untuk analitik pasca-trade.
Catatan desain: gabungkan listing Gamma dengan feed WebSocket untuk pemindaian live yang efisien. Hormati batas laju Gamma (mis. batas /markets) dan kebutuhan kunci CLOB untuk penempatan order.
H2: Scanner — menemukan peluang kandidat
Fungsi
Scanner menemukan peluang yang sesuai strategi Anda: spread intra-market biner, jumlah multi-outcome, atau pola endgame. Scanner harus stateless, dapat diskalakan horizontal, dan fokus menghitung edge mentah.
Input dan cadence
- Subscribe ke Market WebSocket dengan custom_feature_enabled: true untuk menerima best_bid_ask dan perubahan tick.
- Backfill dengan Gamma /markets saat pertama kali menemukan instrumen baru untuk mendapatkan metadata dan outcome.
- Pertahankan view in-memory kecil dari best asks/bids untuk setiap outcome.
Perhitungan edge
- Binary intra-market: hitung edge = 1.00 - (bestAsk(YES) + bestAsk(NO)). Edge positif adalah kandidat.
- Multi-outcome: edge = 1.00 - sum(bestAsk(outcomes)).
Ambang dan filter
- Ambang edge minimum (mis. > beberapa sen yang dikonfigurasi) untuk menutup biaya taker dan risiko eksekusi.
- Pemeriksaan likuiditas minimum: kedalaman di best ask harus memenuhi ukuran fill minimum.
- Sadar tick-size: perhitungkan event tick_size_change — granularitas harga dapat berubah ke $0.001 saat mendekati ekstrem.
H2: Sizing — risiko dan alokasi modal
Tujuan
Sizing mengubah edge mentah menjadi rencana order: berapa banyak saham yang dibeli per outcome, dan bagaimana membagi antar order untuk membatasi slippage.
Komponen
- Batas eksposur: limit pUSD per-market dan global.
- Sizing terbatas kedalaman: hitung volume kumulatif yang tersedia pada level harga ask berturut-turut; ukur hanya hingga volume yang menjaga slippage yang diharapkan dalam toleransi.
- Alokasi biaya: kurangi perkiraan taker fee (variabel, hingga 1.8% di beberapa kategori) dari edge kotor sebelum memutuskan trading.
Pola praktis
- Mulai dengan fills konservatif: lebih suka beberapa order pasar FAK kecil daripada satu order besar kecuali Anda mengendalikan buku.
- Jika Anda membeli complete set melalui alur split/merge CTF, sertakan biaya split/merge gas (ditangani oleh Relayer) dan potensi pembulatan karena tick size.
H2: Executor — menempatkan order dan menangani fills
Jenis order dan kendala
- Gunakan endpoint trading CLOB untuk penempatan order: https://clob.polymarket.com. SDK CLOB dan Relayer mengelola deployment wallet, approvals, dan penandatanganan order.
- Untuk kecepatan, gunakan FAK (Fill-And-Kill) market orders bila sesuai. FAK mengeksekusi segera atau batal; mereka membantu menghindari eksposur yang menggantung tetapi dapat partial-fill.
Alur eksekusi
- Siapkan intent trade: daftar outcome token ids dan kuantitas target yang dikembalikan oleh sizer.
- Jika mengeksekusi complete-set multi-outcome, Anda mungkin memilih melakukan CTF split (mint complete set) lalu menjual leg — Relayer dan SDK mengabstraksi operasi CTF.
- Submit order melalui API trading CLOB dengan header atribusi yang sesuai jika Anda bagian dari Builder Program.
- Amati fills dari WebSocket last_trade_price dan pembaruan best_bid_ask atau dari respons trade CLOB.
Keamanan dan rekonsiliasi
- Lacak partial fills dan batalkan sisa atau re-price segera.
- Rekonsiliasi saldo CTF on-chain (via Data API) setelah fills untuk memastikan Anda benar-benar memegang token outcome yang diharapkan.
- Implementasikan idempotency keys dan penanganan nonce untuk retry order.
H2: Pemantauan dan keselamatan operasional
Apa yang dipantau
- Tingkat fill, slippage rata-rata versus yang diharapkan, edge yang terealisasi setelah biaya.
- Latensi antara pembaruan WebSocket dan pengiriman order.
- Kejadian tidak biasa: sengketa UMA, tick_size_change, outage marketplace.
Alarm dan kill-switch
- Soft kill otomatis: jedakan penempatan order baru ketika net realized P&L turun di bawah ambang atau ketika slippage fill melebihi batas.
- Hard kill: hentikan semua lalu lintas segera jika UMA melaporkan sengketa untuk pasar yang Anda pegang posisi, atau jika Relayer memberi sinyal masalah penyelesaian.
Log audit dan observabilitas
- Simpan semua order intent, snapshot pasar mentah, dan fills yang dieksekusi. Gunakan log ini untuk post-mortem dan backtesting.
- Tag log dengan market id, condition_ids, dan request ids untuk mencocokkan catatan Gamma dan CLOB.
H2: Builder Program, kredensial, dan batas laju
Jika Anda berencana merutekan order dengan atribusi, bergabunglah dengan Builder Program dan kelola kunci melalui pengaturan Polymarket. Tier Builder mengontrol limit relayer harian dan rewards. Untuk trading via CLOB Anda akan memerlukan API key + HMAC dan harus menghormati rate limits serta kuota relayer.
H2: Risiko umum dan mitigasi
Jangan pernah menganggap edge matematis dijamin. Risiko yang harus diperhitungkan:
- Risiko resolusi: sengketa UMA dapat menjeda atau mengubah pembayaran.
- Slippage dan partial fills: FAK dapat partial-fill; rencanakan eksposur sisa.
- Biaya: taker fees bervariasi menurut kategori dan dapat menggerus edge kecil (Geopolitics bebas biaya).
- Waktu penyelesaian: waktu redeem/merge dan penundaan resolusi oracle dapat menahan modal.
- Kegagalan smart-contract atau Relayer: siapkan fallback dan pemberitahuan manusia.
Bagaimana ini memengaruhi trading Anda
Rancang bot sehingga setiap unit trade berskala kecil, dapat diamati, dan dapat dibalik dalam batas risiko Anda. Sizing konservatif, pemantauan cepat, dan kondisi kill yang jelas mengurangi risiko ekor. Gunakan endpoint Gamma dan CLOB untuk status pasar deterministik dan prioritaskan order FAK untuk eksekusi cepat, tetapi selalu ukur slippage terealisasi terhadap ekspektasi.
Penutup
Arsitektur di atas memberikan cetak biru pragmatis untuk membangun bot trading Polymarket: scanner throughput tinggi, sizer konservatif, executor yang tangguh menggunakan CLOB dan Relayer, serta pemantauan berlapis. Mulai kecil, instrumen secara agresif, dan iterasikan sizing serta filter saat Anda mengumpulkan data live.
Pertanyaan yang sering diajukan
API mana yang harus saya gunakan untuk mendapatkan listing pasar dan data buku live?
Gunakan https://gamma-api.polymarket.com untuk metadata pasar (/markets) dan wss://ws-subscriptions-clob.polymarket.com/ws/market untuk buku order real-time dan event best_bid_ask. Gunakan https://clob.polymarket.com untuk pembacaan order-book dan trading; pembacaan bersifat publik tetapi trading memerlukan API key + HMAC.
Haruskah saya menggunakan limit order atau market (FAK) orders untuk arbitrage?
FAK (Fill-And-Kill) market orders umum dipakai untuk kecepatan dan untuk menghindari eksposur yang menggantung. Mereka bisa partial-fill, jadi desain sizing dan rekonsiliasi dengan benar. SDK CLOB menyediakan helper untuk membuat FAK market orders.
Bagaimana saya memperhitungkan biaya saat menentukan ukuran trade?
Kurangi taker fees yang diharapkan dari edge kotor sebelum trading. Taker fees bervariasi menurut kategori (0% hingga 1.8% saat ini). Gunakan ambang net-edge yang menutup biaya ditambah slippage yang diharapkan dan buffer pemantauan.
Pemantauan apa yang penting untuk bot live?
Pantau tingkat fill, slippage terealisasi, latensi, pemberitahuan sengketa UMA, event tick_size_change, dan kesehatan Relayer. Terapkan soft dan hard kill-switch untuk slippage besar, drawdown P&L, atau sengketa oracle.
Bisakah saya merutekan order melalui Builder Program?
Ya. Builder Program memungkinkan pihak ketiga merutekan order dengan atribusi dan memperoleh builder fees. Tier mengontrol limit relayer harian dan rewards; kredensial diperoleh di polymarket.com/settings.
Istilah yang dirujuk
Panduan terkait
Hanya untuk tujuan edukasi. Bukan nasihat keuangan, hukum, atau pajak. Polymarket mungkin tidak tersedia di yurisdiksi Anda.