پولی مارکیٹ بوٹ ٹیوٹوریل · باب 11 از 32
پولی مارکیٹ پر NegRisk کثیر-نتیجہ مارکیٹس کیسے کام کرتی ہیں: sum-to-1 میکانیت، CLOB آرڈرز میں negRisk فلیگ، کیوں NegRisk میں YES legs ایک دوسرے کے بدلے استعمال نہیں ہو سکتے، اور عمل درآمد کے بہترین طریقے۔
اس باب میں کیا شامل ہے
NegRisk مارکیٹس پولی مارکیٹ کا وہ طریقہ کار ہیں جو باہم متضاد کثیر-نتیجہ واقعات کے لیے استعمال ہوتا ہے - 2024 کے انتخابی امیدوار، Premier League winner، tournament brackets۔ زیادہ تر بوٹ پہلی کوشش میں انہیں درست طریقے سے نہیں سنبھال پاتے کیونکہ آرڈر لگانے کے لیے ایک فلیگ درکار ہوتا ہے جو غائب ہونے پر خاموشی سے گِر جاتا ہے۔ یہ باب میکانیت اور پروڈکشن code path دونوں کا احاطہ کرتا ہے۔
- NegRisk کا مطلب کیا ہے (باہم متضاد Yes legs)
- YES کے مجموعے 1 USD کے قریب کیوں رہتے ہیں
- آرڈر لگانے میں neg_رسک parameter
- NegRisk legs کے درمیان hedging
- NegRisk آربٹراج کب کام کرتی ہے (اور کب نہیں)
- ریزولوشن کے edge cases
- Code: NegRisk آرڈر لگانا
NegRisk کا مطلب کیا ہے (باہم متضاد Yes legs)
NegRisk ("negative رسک" کا مخفف) پولی مارکیٹ کا طریقہ کار ہے ایسے واقعات کے لیے جن کے متعدد باہم متضاد نتائج ہوں - صرف ایک ہی نتیجہ YES resolve ہو سکتا ہے۔ 2024 کا Presidential Election ایک NegRisk واقعہ تھا: Trump-YES پوزیشن اور Harris-YES پوزیشن دونوں ایک ساتھ ادائیگی نہیں دے سکتیں۔
اندرونی طور پر: ایک واحد NegRisk واقعے کا ایک parent question_id ہوتا ہے اور N child مارکیٹس ہوتے ہیں، ہر ایک کے اپنے YES/NO کے ساتھ۔ ایکسچینج ریزولوشن پر YES legs کے درمیان sum-to-1 نافذ کرتی ہے - بالکل ایک 1.0 پر resolve ہوتا ہے اور باقی 0.0 پر۔
بوٹ کے نقطہ نظر سے، ہر نتیجے کی YES leg اپنے الگ token کی طرح ٹریڈ کرتی ہے، اپنی بُک اور قیمت کے ساتھ۔ آرڈر لگانے میں negRisk فلیگ (نیچے) ٹریڈ کو NegRisk-specific ایکسچینج contract کی طرف route کرتا ہے؛ اگر یہ غائب ہو تو ٹریڈ standard CTF ایکسچینج پر چلی جاتی ہے اور تصفیہ درست طریقے سے نہیں ہوتی، مگر خاموشی سے ناکام ہو جاتی ہے۔
YES کے مجموعے 1 USD کے قریب کیوں رہتے ہیں
Arbitrageurs مسلسل تمام NegRisk legs کی YES قیمتوں کے مجموعے کو ≈ 1.0 کے قریب رکھتے ہیں۔ اگر Trump-YES 0.55 ہے اور Harris-YES 0.40 ہے اور کوئی اور مسابقتی امیدوار نہیں ہیں، تو غائب 0.05 تقریباً "کوئی اور نتیجہ" کی implied امکان ہے۔ جب غائب slice implied tail امکان سے زیادہ ہو جائے تو آربٹراج کا موقع موجود ہوتا ہے: تمام YES legs متناسب انداز میں خریدیں، مجموعہ 1.0 سے کم ہو، اور فرق lock in کر لیں۔
عملی طور پر آربٹراج بہت مسابقتی ہوتی ہے - نظر آنے والا discount عام طور پر liquid واقعات میں 1-2 سینٹس ہوتا ہے اور opening کے چند منٹوں میں ختم ہو جاتا ہے۔ آربٹراج liquidity-bound بھی ہوتی ہے: آپ $1k کا discount lock کر سکتے ہیں مگر $20k کا نہیں۔
زیادہ تر بوٹ NegRisk آربٹراج نہیں کر رہے ہوتے؛ وہ انفرادی legs ٹریڈ کر رہے ہوتے ہیں اور عمل درآمد کی درستگی کے لیے انہیں negRisk فلیگ کی پابندی کرنی ہوتی ہے۔
آرڈر لگانے میں neg_رسک parameter
CLOB v2 SDKs میں آرڈر لگانا ایک flags object لیتا ہے جس میں boolean negRisk ہوتا ہے۔ اس کی قدر مارکیٹ type سے میل کھانی چاہیے:
// 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
);
یہ فلیگ daemon op signature میں بھی ایک parameter ہے جسے زیادہ تر پروڈکشن بوٹ استعمال کرتے ہیں:
{ op: 'buy', tokenID, price, size, neg_risk: true, order_type: 'FOK' }
Source of truth: Gamma API سے market.negRisk۔ اسے ہمیشہ پڑھیں؛ کبھی hardcode نہ کریں۔ BTC-up/down مارکیٹ negRisk: false ہوتا ہے (بائنری)؛ tournament-winner مارکیٹ negRisk: true ہوتا ہے (کثیر-نتیجہ)۔ تاریں آپس میں الجھانے سے آرڈرز غلط ایکسچینج پر چلے جاتے ہیں اور تصفیہ پر transfer failures پیدا ہوتی ہیں۔
NegRisk legs کے درمیان hedging
اگر آپ کے پاس Trump-YES 0.50 پر ہے اور آپ Trump کے نقصان کے خلاف hedge کرنا چاہتے ہیں، تو NegRisk کے اندر دو اختیارات موجود ہیں۔
ایک مسابقتی NO leg خریدیں (مثلاً Harris-NO 0.45 پر)۔ یہ اس صورت میں ادائیگی کرتا ہے جب Harris ہارے، جس میں Trump کا جیتنا شامل ہے۔ غیر متوازن - Trump جیتے تو payoff ہے، مگر اگر Trump کسی تیسرے امیدوار سے ہار جائے تو بے قیمت ہے۔
تمام مسابقتی YES legs تناسب کے ساتھ خریدیں۔ اگر آپ کا portfolio NegRisk legs میں مکمل طور پر متوازن ہو، تو آپ کی exposure hedge ہو جاتی ہے: بالآخر صرف ایک ہی ادائیگی دے گا۔ یہ synthetic-cash پوزیشن ہے۔
وہ hedging instrument جو متوقع طور پر کام نہیں کرتا: آپ کے موجودہ مارکیٹ پر NO leg۔ Trump-NO دوسرے YES legs کے ساتھ correlated ہے مگر مکمل طور پر نہیں - اگر ریزولوشن "Other" ہو تو Trump-YES اور Trump-NO دونوں 0 پر چلے جاتے ہیں۔ NegRisk legs خالص binaries نہیں ہوتے۔
NegRisk آربٹراج کب کام کرتی ہے (اور کب نہیں)
"sum to less than 1.0" والی NegRisk آربٹراج تب کام کرتی ہے جب تین شرائط پوری ہوں۔
- تمام legs liquid ہوں: جس leg کو آپ خریدنا چاہتے ہیں اس میں کم از کم $1k گہرائی ہو اس قیمت پر جس کی آپ کو ضرورت ہے۔ آربٹراج کے لیے ایک ساتھ متعدد books hit کرنا پڑتے ہیں؛ ایک illiquid leg پوری ٹریڈ توڑ دیتا ہے۔
- اسپریڈ کافی tight ہو: تمام legs پر مجموعی spread-tax discount سے کم ہونا چاہیے۔ ہر leg پر 0.5c اسپریڈ پانچ legs پر 2.5c لاگت بناتا ہے؛ اگر discount 1.5c ہو تو آربٹراج منفی ہے۔
- آپ ریزولوشن تک روکے رکھ سکیں: NegRisk آربٹراج تصفیہ آربٹراج ہے۔ Parent واقعہ resolve ہونے پر ادائیگی ملتا ہے؛ اگر یہ 6 ماہ بعد ہے تو آپ کا سرمایہ locked ہے۔
95% بوٹ کے لیے NegRisk آربٹراج حکمتِ عملی نہیں ہوتی۔ باقی حکمتِ عملیاں انفرادی legs ٹریڈ کرتی ہیں اور negRisk فلیگ صرف آرڈر کے درست route ہونے کو یقینی بنانے کے لیے ہوتا ہے۔
ریزولوشن کے edge cases
ریزولوشن تک NegRisk پوزیشنز روکے رکھتے وقت دو edge cases ذہن میں رکھیں۔
"None of the above" نتائج: کچھ NegRisk واقعات میں واضح "Other" یا "None of the above" leg شامل ہوتی ہے۔ اگر اصل جواب کسی نامزد leg سے میل نہ کھائے، تو یہی فاتح بنتی ہے۔ جو بوٹ واضح Other leg کو ماڈل نہیں کرتے، وہ کبھی کبھی اسے degenerate case سمجھ کر ادائیگی سے محروم ہو جاتے ہیں۔
متنازع ریزولوشنز: NegRisk ریزولوشن کسی بھی دوسرے مارکیٹ کی طرح UMA کے ذریعے ہوتی ہے۔ اگر تنازعہ ہو جائے تو مارکیٹ 24-72 گھنٹے unresolved رہ سکتی ہے۔ اس window کے دوران front-end "resolved" دکھا سکتا ہے جبکہ آن-چین ادائیگیاں ابھی set نہیں ہوئے ہوتے۔ تصدیق کرنے کا محفوظ ترین طریقہ payoutNumerators کو CTF contract پر پڑھنا ہے۔
Code: NegRisk آرڈر لگانا
NegRisk YES leg خریدنے کی مکمل Node مثال۔
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 میں سب سے عام bug: NegRisk مارکیٹ پر negRisk: true چھوڑ دینا۔ آرڈر CLOB قبول کر لیتا ہے مگر تصفیہ ناکام ہو جاتی ہے۔ ہمیشہ Gamma سے market.negRisk پڑھیں اور اسے pass کریں؛ کبھی question title سے اندازہ نہ لگائیں۔



