Polymarket Bot Tutorial · Bab 11 dari 32
Cara kerja market NegRisk multi-outcome di Polymarket: mekanika sum-to-1, flag negRisk di order CLOB, mengapa leg YES di berbagai NegRisk tidak bisa saling dipertukarkan, dan praktik terbaik eksekusi.
Apa yang dibahas di bab ini
Market NegRisk adalah mekanisme Polymarket untuk event multi-outcome yang saling eksklusif - kandidat pemilu 2024, pemenang Premier League, bracket turnamen. Sebagian besar bot gagal menanganinya dengan benar pada percobaan pertama karena placement order memerlukan flag yang akan di-drop secara diam-diam jika tidak ada. Bab ini membahas mekanikanya dan path code production.
- Apa arti NegRisk (leg Yes yang saling eksklusif)
- Mengapa total YES tetap dekat 1 USD
- Parameter neg_risk dalam placement order
- Hedging di antara leg NegRisk
- Kapan arb NegRisk berhasil (dan kapan tidak)
- Kasus edge resolution
- Code: place order NegRisk
Apa arti NegRisk (leg Yes yang saling eksklusif)
NegRisk (singkatan dari "negative risk") adalah mekanisme Polymarket untuk event dengan beberapa outcome yang saling eksklusif - hanya satu yang bisa resolve YES. Pemilihan Presiden 2024 adalah satu event dengan NegRisk: posisi Trump-YES dan Harris-YES tidak mungkin sama-sama membayar.
Di balik layar: satu event NegRisk memiliki satu parent question_id dan N market child, masing-masing dengan YES/NO sendiri. Exchange memberlakukan sum-to-1 pada leg YES saat resolution - tepat satu yang resolve menjadi 1.0 dan sisanya 0.0.
Dari perspektif bot, leg YES dari tiap outcome diperdagangkan sebagai token tersendiri, dengan book dan harga sendiri. Flag negRisk pada placement order (di bawah) mengarahkan trade ke contract exchange khusus NegRisk; jika flag ini tidak ada, order dikirim ke CTF exchange standar dan diam-diam gagal settle dengan benar.
Mengapa total YES tetap dekat 1 USD
Arbitrageur terus-menerus menjaga jumlah harga YES di semua leg NegRisk agar ≈ 1.0. Jika Trump-YES 0.55 dan Harris-YES 0.40 dan tidak ada kandidat kompetitif lain, 0.05 yang hilang kira-kira adalah implied probability dari "outcome lain apa pun." Ketika potongan yang hilang melebihi implied tail probability, ada peluang arb: beli semua leg YES secara proporsional, totalnya kurang dari 1.0, dan kunci selisihnya.
Dalam praktiknya, arb ini sangat kompetitif - diskon yang terlihat biasanya hanya 1-2 sen pada event yang likuid, dan hilang dalam hitungan menit setelah pembukaan. Arb ini juga dibatasi liquidity: Anda mungkin bisa mengunci diskon $1k tetapi tidak $20k.
Kebanyakan bot tidak melakukan NegRisk arb; mereka memperdagangkan leg individual dan perlu mematuhi flag negRisk demi akurasi eksekusi.
Parameter neg_risk dalam placement order
Di SDK CLOB v2, placement order menggunakan object flags dengan boolean negRisk. Nilainya harus cocok dengan tipe market:
// Node (CLOB v2)
await client.createAndPostOrder(
{ tokenID, price: 0.45, size: 10, side: Side.BUY },
{ tickSize: '0.01', negRisk: true }, // <-- TRUE for NegRisk
OrderType.FOK
);
Flag ini juga merupakan parameter dalam signature op daemon yang digunakan kebanyakan bot production:
{ op: 'buy', tokenID, price, size, neg_risk: true, order_type: 'FOK' }
Sumber kebenaran: market.negRisk dari Gamma API. Selalu baca itu; jangan pernah hardcode. Market BTC-up/down adalah negRisk: false (binary); market pemenang turnamen adalah negRisk: true (multi-outcome). Salah jalur akan mengirim order ke exchange yang salah dan menghasilkan kegagalan transfer saat settlement.
Hedging di antara leg NegRisk
Jika Anda memegang Trump-YES di 0.50 dan ingin hedge terhadap kekalahan Trump, ada dua opsi dalam NegRisk.
Beli leg NO yang bersaing (misalnya Harris-NO di 0.45). Ini membayar jika Harris kalah, yang mencakup kemenangan Trump. Asimetris - payoff jika Trump menang tetapi tidak bernilai jika Trump kalah dari kandidat ketiga.
Beli semua leg YES yang bersaing secara proporsional. Jika portfolio Anda sepenuhnya seimbang di seluruh leg NegRisk, eksposur Anda terhedge: tepat satu akan membayar. Ini adalah posisi synthetic-cash.
Instrumen hedging yang TIDAK bekerja seperti yang diharapkan: leg NO pada market yang Anda pegang. Trump-NO berkorelasi dengan leg YES lain tetapi tidak sempurna - jika resolusinya adalah "Other" maka Trump-YES dan Trump-NO keduanya menjadi 0. Leg NegRisk bukan binary murni.
Kapan arb NegRisk berhasil (dan kapan tidak)
Arb NegRisk "jumlahnya kurang dari 1.0" berhasil jika tiga kondisi terpenuhi.
- Semua leg likuid: setiap leg yang perlu Anda beli memiliki depth minimal $1k pada harga yang Anda butuhkan. Arb mengharuskan mengeksekusi beberapa book secara simultan; satu leg yang tidak likuid akan merusak seluruh trade.
- Spread cukup ketat: spread-tax kumulatif di semua leg harus lebih kecil daripada diskon. Lima leg dengan spread 0.5c masing-masing berarti biaya 2.5c; jika diskonnya 1.5c, arb menjadi negatif.
- Anda bisa hold sampai resolution: arb NegRisk adalah settlement arb. Anda menerima payout saat parent event resolve; jika itu baru 6 bulan lagi, modal Anda terkunci.
Untuk 95% bot, arb NegRisk bukan strateginya. Strategi yang tersisa memperdagangkan leg individual dan flag negRisk hanya ada untuk memastikan order diarahkan dengan benar.
Kasus edge resolution
Ada dua kasus edge yang perlu diperhatikan saat memegang posisi NegRisk hingga resolution.
Outcome "None of the above": beberapa event NegRisk menyertakan leg eksplisit "Other" atau "None of the above". Jika jawaban aktual tidak cocok dengan leg yang disebutkan, inilah pemenangnya. Bot yang tidak memodelkan leg Other eksplisit kadang memperlakukannya sebagai kasus degenerat dan melewatkan payout.
Resolution yang disengketakan: resolution NegRisk melalui UMA seperti market Polymarket lainnya. Jika disengketakan, market bisa tetap unresolved selama 24-72 jam. Selama jendela ini, front-end mungkin menampilkan "resolved" sementara payout on-chain belum diset. Membaca payoutNumerators pada contract CTF adalah satu-satunya cara aman untuk mengonfirmasi.
Code: place order NegRisk
Contoh Node lengkap untuk melakukan buy pada leg YES NegRisk.
import { ClobClient, Side, OrderType } from "@polymarket/clob-client-v2";
import { Wallet } from "ethers";
const c = new ClobClient({
host: "https://clob.polymarket.com", chain: 137,
signer: new Wallet(process.env.PRIVATE_KEY),
creds: { key: K, secret: S, passphrase: P },
signatureType: 2,
funderAddress: process.env.POLY_FUNDER,
});
// market.negRisk === true (verified via Gamma earlier)
const resp = await c.createAndPostOrder(
{ tokenID: "<YES_TOKEN_ID>", price: 0.42, size: 25, side: Side.BUY },
{ tickSize: "0.01", negRisk: true },
OrderType.FOK
);
console.log(resp.status, resp.orderID);
Bug paling umum bagi builder baru: menghilangkan negRisk: true pada market NegRisk. Order diterima oleh CLOB tetapi settlement gagal. Selalu baca market.negRisk dari Gamma dan teruskan nilainya; jangan pernah mengandalkan tebakan dari judul pertanyaan.










