Polymarket Bot Tutorial · Chapter 11 of 32
Polymarket پر NegRisk multi-outcome markets کیسے کام کرتے ہیں: sum-to-1 mechanics، CLOB orders میں negRisk flag، کیوں NegRisk میں YES legs ایک دوسرے کے بدلے استعمال نہیں ہو سکتے، اور execution کی بہترین practices۔
اس chapter میں کیا شامل ہے
NegRisk markets Polymarket کا وہ mechanism ہیں جو mutually exclusive multi-outcome events کے لیے استعمال ہوتا ہے - 2024 election candidates، Premier League winner، tournament brackets۔ زیادہ تر bots پہلی کوشش میں انہیں درست طریقے سے handle نہیں کر پاتے کیونکہ order placement کے لیے ایک flag درکار ہوتا ہے جو missing ہونے پر silently drop ہو جاتا ہے۔ یہ chapter mechanics اور production code path دونوں cover کرتا ہے۔
- NegRisk کا مطلب کیا ہے (mutually exclusive Yes legs)
- YES totals 1 USD کے قریب کیوں رہتے ہیں
- Order placement میں neg_risk parameter
- NegRisk legs کے درمیان hedging
- NegRisk arb کب کام کرتا ہے (اور کب نہیں)
- Resolution کے edge cases
- Code: NegRisk order place کرنا
NegRisk کا مطلب کیا ہے (mutually exclusive Yes legs)
NegRisk ("negative risk" کا مخفف) Polymarket کا mechanism ہے ایسے events کے لیے جن کے multiple mutually exclusive outcomes ہوں - صرف ایک ہی outcome YES resolve ہو سکتا ہے۔ 2024 Presidential Election ایک NegRisk event تھا: Trump-YES position اور Harris-YES position دونوں ایک ساتھ payout نہیں دے سکتیں۔
اندرونی طور پر: ایک single NegRisk event کا ایک parent question_id ہوتا ہے اور N child markets ہوتے ہیں، ہر ایک کے اپنے YES/NO کے ساتھ۔ Exchange resolution پر YES legs کے درمیان sum-to-1 enforce کرتی ہے - بالکل ایک 1.0 پر resolve ہوتا ہے اور باقی 0.0 پر۔
Bot کے perspective سے، ہر outcome کی YES leg اپنے الگ token کی طرح trade کرتی ہے، اپنی book اور price کے ساتھ۔ Order placement میں negRisk flag (نیچے) trade کو NegRisk-specific exchange contract کی طرف route کرتا ہے؛ اگر یہ missing ہو تو trade standard CTF exchange پر چلا جاتا ہے اور settlement درست طریقے سے نہیں ہوتی، مگر خاموشی سے fail ہو جاتی ہے۔
YES totals 1 USD کے قریب کیوں رہتے ہیں
Arbitrageurs مسلسل تمام NegRisk legs کی YES prices کے sum کو ≈ 1.0 کے قریب رکھتے ہیں۔ اگر Trump-YES 0.55 ہے اور Harris-YES 0.40 ہے اور کوئی اور competitive candidates نہیں ہیں، تو missing 0.05 تقریباً "کوئی اور outcome" کی implied probability ہے۔ جب missing slice implied tail probability سے زیادہ ہو جائے تو arb opportunity موجود ہوتی ہے: تمام YES legs proportional انداز میں buy کریں، sum 1.0 سے کم ہو، اور فرق lock in کر لیں۔
عملی طور پر arb بہت competitive ہوتی ہے - visible discount عام طور پر liquid events میں 1-2 cents ہوتا ہے اور opening کے چند منٹوں میں ختم ہو جاتا ہے۔ Arb liquidity-bound بھی ہوتی ہے: آپ $1k کا discount lock کر سکتے ہیں مگر $20k کا نہیں۔
زیادہ تر bots NegRisk arb نہیں کر رہے ہوتے؛ وہ individual legs trade کر رہے ہوتے ہیں اور execution correctness کے لیے انہیں negRisk flag کی پابندی کرنی ہوتی ہے۔
Order placement میں neg_risk parameter
CLOB v2 SDKs میں order placement ایک flags object لیتا ہے جس میں boolean negRisk ہوتا ہے۔ اس کی value market type سے match ہونی چاہیے:
// 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 daemon op signature میں بھی ایک parameter ہے جسے زیادہ تر production bots استعمال کرتے ہیں:
{ op: 'buy', tokenID, price, size, neg_risk: true, order_type: 'FOK' }
Source of truth: Gamma API سے market.negRisk۔ اسے ہمیشہ read کریں؛ کبھی hardcode نہ کریں۔ BTC-up/down market negRisk: false ہوتا ہے (binary)؛ tournament-winner market negRisk: true ہوتا ہے (multi-outcome)۔ وائرز cross کرنے سے orders غلط exchange پر چلے جاتے ہیں اور settlement پر transfer failures پیدا ہوتی ہیں۔
NegRisk legs کے درمیان hedging
اگر آپ کے پاس Trump-YES 0.50 پر ہے اور آپ Trump کے loss کے خلاف hedge کرنا چاہتے ہیں، تو NegRisk کے اندر دو options موجود ہیں۔
ایک competing NO leg خریدیں (مثلاً Harris-NO 0.45 پر)۔ یہ اس صورت میں pay out کرتا ہے جب Harris ہارے، جس میں Trump کا جیتنا شامل ہے۔ Asymmetric - Trump جیتے تو payoff ہے، مگر اگر Trump کسی third candidate سے ہار جائے تو worthless ہے۔
تمام competing YES legs proportion کے ساتھ خریدیں۔ اگر آپ کا portfolio NegRisk legs میں مکمل طور پر balanced ہو، تو آپ کی exposure hedge ہو جاتی ہے: بالآخر صرف ایک ہی payout دے گا۔ یہ synthetic-cash position ہے۔
وہ hedging instrument جو متوقع طور پر کام نہیں کرتا: آپ کے existing market پر NO leg۔ Trump-NO دوسرے YES legs کے ساتھ correlated ہے مگر perfectly نہیں - اگر resolution "Other" ہو تو Trump-YES اور Trump-NO دونوں 0 پر چلے جاتے ہیں۔ NegRisk legs pure binaries نہیں ہوتے۔
NegRisk arb کب کام کرتا ہے (اور کب نہیں)
"sum to less than 1.0" والی NegRisk arb تب کام کرتی ہے جب تین conditions پوری ہوں۔
- تمام legs liquid ہوں: جس leg کو آپ buy کرنا چاہتے ہیں اس میں کم از کم $1k depth ہو اس price پر جس کی آپ کو ضرورت ہے۔ Arb کے لیے ایک ساتھ multiple books hit کرنا پڑتا ہے؛ ایک illiquid leg پورا trade توڑ دیتا ہے۔
- Spread کافی tight ہو: تمام legs پر cumulative spread-tax discount سے کم ہونا چاہیے۔ ہر leg پر 0.5c spread پانچ legs پر 2.5c cost بناتا ہے؛ اگر discount 1.5c ہو تو arb negative ہے۔
- آپ resolution تک hold کر سکیں: NegRisk arb settlement arb ہے۔ Parent event resolve ہونے پر payout ملتا ہے؛ اگر یہ 6 ماہ بعد ہے تو آپ کا capital locked ہے۔
95% bots کے لیے NegRisk arb strategy نہیں ہوتی۔ باقی strategies individual legs trade کرتی ہیں اور negRisk flag صرف order کے درست route ہونے کو یقینی بنانے کے لیے ہوتا ہے۔
Resolution کے edge cases
Resolution تک NegRisk positions hold کرتے وقت دو edge cases ذہن میں رکھیں۔
"None of the above" outcomes: کچھ NegRisk events میں explicit "Other" یا "None of the above" leg شامل ہوتی ہے۔ اگر اصل جواب کسی named leg سے match نہ کرے، تو یہی winner بنتی ہے۔ جو bots explicit Other leg کو model نہیں کرتے، وہ کبھی کبھی اسے degenerate case سمجھ کر payout miss کر دیتے ہیں۔
Disputed resolutions: NegRisk resolution کسی بھی دوسرے market کی طرح UMA کے ذریعے ہوتی ہے۔ اگر dispute ہو جائے تو market 24-72 گھنٹے unresolved رہ سکتی ہے۔ اس window کے دوران front-end "resolved" دکھا سکتا ہے جبکہ on-chain payouts ابھی set نہیں ہوئے ہوتے۔ Confirm کرنے کا محفوظ ترین طریقہ payoutNumerators کو CTF contract پر read کرنا ہے۔
Code: NegRisk order place کرنا
NegRisk YES leg buy کرنے کی مکمل Node example۔
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);
نئے builders میں سب سے common bug: NegRisk market پر negRisk: true omit کر دینا۔ Order CLOB قبول کر لیتا ہے مگر settlement fail ہو جاتی ہے۔ ہمیشہ Gamma سے market.negRisk پڑھیں اور اسے pass کریں؛ کبھی question title سے اندازہ نہ لگائیں۔










