Polymarket Bot Tutorial · باب 13 از 32

Polymarket پر market making: bid اور ask کو کیسے quote کریں، spread capture کریں، maker rebates کمائیں (taker fees کا 20-25%)، inventory risk math، اور prediction markets پر MM کب کام کرتا ہے۔

یہ باب کیا cover کرتا ہے

Polymarket پر market making کا مطلب ہے market book کے دونوں sides کو مسلسل quote کرنا اور ہر round trip پر spread earn کرنا۔ یہ strategy traditional finance میں اچھی طرح سمجھی جاتی ہے؛ Polymarket کے مخصوص فرق maker-rebate program اور prediction markets کی adverse-selection profile ہیں، جو CFD venues سے زیادہ ہوتی ہے۔ یہ باب خالص math ہے۔

  • سادہ English میں market making
  • Spread + rebate edge
  • Inventory risk اور skew
  • Polymarket پر MM کب کام کرتا ہے (اور کب نہیں)
  • Code skeleton: دونوں sides کو +/- N cents پر quote کرنا
  • News flow کے مطابق quotes adjust کرنا
  • Adverse selection spike ہونے پر bot kill کرنا

سادہ English میں market making

ایک market maker مسلسل دونوں sides quote کرتا ہے: buy price (bid) اور sell price (ask)، جو mid سے ایک fixed spread کے ساتھ wider ہوتے ہیں۔ جب کوئی bid کو hit کرتا ہے تو maker سستا buy کرتا ہے؛ جب کوئی ask کو lift کرتا ہے تو maker مہنگا sell کرتا ہے؛ bid اور ask کے درمیان فرق maker کی round trip revenue ہوتی ہے۔

یہ strategy order-flow-driven ہوتی ہے، directional نہیں۔ Maker اس بارے میں کوئی رائے نہیں رکھتا کہ YES جیتے گا یا نہیں؛ وہ یہ position لیتا ہے کہ flow آتا رہے گا اور spread pay ہوتا رہے گا۔

Risk adverse selection ہے: جو لوگ آپ کی bid hit کر رہے ہیں ان کے پاس وہ information ہو سکتی ہے جو آپ کے پاس نہیں۔ وقت کے ساتھ MM profits اس بات پر depend کرتے ہیں کہ spread informed traders کی slippage کو cover کرنے کے لیے کافی wide ہے یا نہیں۔

Spread + rebate edge

Polymarket maker کے لیے آمدنی کے دو streams ہیں۔

Spread capture: 0.46 mid کے ارد گرد bid 0.45 اور ask 0.47 quote کریں۔ bid پر ہر fill جسے آپ بعد میں ask پر exit کر سکیں، 2 cents earn کرتا ہے۔ Net edge fill imbalance اور price drift پر depend کرتا ہے۔

Maker rebate: Polymarket کا liquidity-rewards program eligible markets میں maker fills پر per-share rebate دیتا ہے۔ Numbers بدلتے رہتے ہیں؛ current values کے لیے official rewards page چیک کریں۔ Rebate trade سے الگ، periodic طور پر pUSD میں pay کیا جاتا ہے۔

زیادہ تر markets میں spread capture بڑی revenue stream ہوتی ہے۔ Rebate اس وقت meaningful ہوتا ہے جب آپ wide markets quote کر سکیں (election year، بڑے sports playoffs) جہاں Polymarket liquidity attract کرنے کے لیے rebates boost کرتا ہے۔

Inventory risk اور skew

ایک MM جو بار بار bid پر hit ہوتا ہے، long position accumulate کرتا ہے۔ Risk یہ ہے کہ mid نیچے آ جائے جبکہ inventory long ہو؛ maker spread revenue کے باوجود position پر loss realize کرتا ہے۔

Defenses: quote skew (جب inventory long ہو تو bid کو lower کریں، short ہو تو ask کو higher کریں، تاکہ one-sided fills discourage ہوں); inventory cap (اس side پر quoting روک دیں جہاں آپ پہلے ہی بہت زیادہ long ہیں); active rebalancing (جب inventory limit پر ہو تو position reduce کرنے کے لیے کبھی کبھار spread cross کریں)۔

Math: اگر bid پر ہونے والے 60% fills قیمت کے 2 cents adverse move کرنے سے پہلے exit ہی نہیں کرتے، تو strategy صرف انہی fills پر loss میں ہے۔ جب fill imbalance > 65/35 ہو تو aggressively skew کریں۔

Polymarket پر MM کب کام کرتا ہے (اور کب نہیں)

MM Polymarket پر تب کام کرتا ہے جب تین conditions پوری ہوں۔

  • Liquid book: اتنی quote competition کہ آپ کا spread competitive ہو مگر zero نہ ہو۔ 2024 election markets، بڑے NFL/NBA games، BTC up/down 5m سب qualify کرتے ہیں۔
  • Two-sided flow: buyers اور sellers دونوں active ہوں۔ One-sided markets (0.95+ کے قریب resolved-ish) میں maker کے لیے capture کرنے کو کچھ نہیں ہوتا۔
  • Bounded price moves: spread captures کو 5-cent jumps کھا جائیں۔ Stable mid-range markets (0.40-0.60) سب سے friendly ہوتے ہیں۔

MM ان cases میں fail کرتا ہے: news-driven markets جہاں mid آپ کے re-quote کرنے سے پہلے ہی jump کر جائے؛ illiquid books جہاں آپ ہی واحد quote ہوں اور اگلی trade 5 levels walk کر جائے؛ resolution-imminent markets جہاں ایک side 0 یا 1 کی طرف converge کر رہی ہو۔

Code skeleton: دونوں sides کو +/- N cents پر quote کرنا

سب سے سادہ viable maker کے لیے pseudocode۔

SPREAD_CENTS = 2
INVENTORY_CAP_SHARES = 50

def make_loop(token_id):
    while True:
        book = fetch_book(token_id)
        mid = (book.best_bid + book.best_ask) / 2
        inv = chain_balance(token_id)

        # Skew: pull the side we are too long on
        bid_px = mid - SPREAD_CENTS/200 - (0.005 if inv > INVENTORY_CAP_SHARES * 0.6 else 0)
        ask_px = mid + SPREAD_CENTS/200 + (0.005 if inv < -INVENTORY_CAP_SHARES * 0.6 else 0)

        cancel_my_existing_quotes(token_id)
        if inv < INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="BUY", price=bid_px, size=5)
        if inv > -INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="SELL", price=ask_px, size=min(5, inv))
        time.sleep(2)

Production makers یہ شامل کرتے ہیں: per-side inventory tracking، cancel-before-place ordering، re-quote interval پر jitter تاکہ آپ predictable نہ بنیں، adverse selection کے لیے kill-switch (اگلا section)۔

News flow کے مطابق quotes adjust کرنا

جب کوئی news event hit کرتی ہے، fair value آپ کے quotes سے پہلے move ہو جاتی ہے۔ جو MM news flow کے دوران quotes pull نہیں کرتا وہ pick off ہو جاتا ہے۔

Signal: incoming fills کا cancel rate 30 seconds میں baseline کے مقابلے میں تقریباً 3x سے اوپر jump کرنا، یا ایک broader event-stream cross-check (Polymarket Twitter/Discord، Bloomberg headline feed)۔ جب detect ہو جائے تو maker 60-120 seconds کے لیے تمام quotes pull کرتا ہے، نئے mid کو stabilize ہونے دیتا ہے، پھر نئے center کے گرد re-quote کرتا ہے۔

سب سے سادہ implementation token کے لیے last-trade-price stream دیکھتی ہے۔ rolling-window mean سے 2 standard deviations سے زیادہ jump pause trigger کرتا ہے۔ Bot تب دوبارہ engage کرتا ہے جب price 30+ seconds تک stabilized ہو جائے۔

Adverse selection spike ہونے پر bot kill کرنا

Hard exit۔ اگر bot کا last 50 fills کا fill PnL اچانک negative ہو جائے، تو کچھ نہ کچھ غلط ہے: یا تو market اب news-driven ہے اور آپ کو making نہیں کرنی چاہیے، یا آپ کا spread current adverse-selection level کے لیے بہت tight ہے۔

جو kill conditions encode کرنی چاہئیں:

  • 5 consecutive bid fills مگر کوئی ask fill نہیں، اور first fill کے بعد mid > 1c down ہو۔
  • Last 25 round-trip fills پر realized PnL expected کے -25% سے نیچے ہو۔
  • WebSocket disconnect یا stale book detect ہو۔
  • کسی بھی side پر inventory cap پر > 5 minutes رہے۔

Trigger ہونے پر سب کچھ cancel کریں، inventory کو market پر flatten کریں، 15+ minutes کے لیے halt کریں۔ جس market maker کے پاس kill switch نہیں ہوتا وہ volatile periods میں manual notice آنے تک loss کرتا رہے گا - اور یہ ہمیشہ آپ کے اندازے سے زیادہ وقت لیتا ہے۔

اکثر پوچھے گئے سوالات

کیا ایک retail bot واقعی Polymarket پر market-making سے پیسہ کما سکتا ہے؟
کبھی کبھی، منتخب markets میں۔ Maker rebate (taker fees کا 20-25%) کے ساتھ 1-3 cent spread per round trip حقیقی return میں compound ہو سکتا ہے۔ لیکن Polymarket پر news flow market کو seconds میں 20+ cents move کر سکتی ہے - fast news feed کے بغیر market maker adversely selected ہو جاتا ہے۔ Best use: liquid sports markets pre-game اور کم-news periods میں۔
Polymarket پر مجھے کتنی wide quotes دینی چاہئیں؟
کم از کم اتنی spread جتنی worst expected adverse-selection کو cover کرے۔ Liquid sports/politics کے لیے: mid سے side per 1-3 cents۔ Thin markets کے لیے: 5+ cents۔ اگر آپ اتنا tight quote نہیں کر سکتے کہ دوسرے makers سے compete ہو سکے، مگر اتنا wide بھی نہیں کہ moves survive کر سکیں، تو یہ market آپ کے لیے market-makeable نہیں ہے۔
مجھے کون سے inventory limits set کرنے چاہئیں؟
جب تک آپ نے مہینوں تک profitability ثابت نہ کر لی ہو، ہر market پر hard cap 50-200 USD رکھیں۔ Inventory neutral کی طرف لانے کے لیے quotes skew کریں - اگر آپ Yes accumulate کر لیں، تو اپنا Yes bid lower کریں اور اپنا No ask lower کریں تاکہ No buys واپس encourage ہوں۔ ایک single market کو کبھی بھی آپ کے bankroll کے 20%+ تک نہ جانے دیں۔
کیا Polymarket market-make کرنے کے لیے fast VPS ضروری ہے؟
جی ہاں۔ Market making، Polymarket کی سب سے latency-sensitive strategy ہے۔ Jittery VPS stale quotes پیدا کرتی ہے جو pick off ہو جاتی ہیں۔ ہم اپنے MM bots کے لیے خاص طور پر TradingVPS استعمال کرتے ہیں کیونکہ jitter مسلسل کم رہتی ہے۔ Commodity cloud (DO/Vultr) paper trading MM کے لیے تو ٹھیک ہے، live کے لیے نہیں۔
Polymarket MM crypto MM سے کیسے مختلف ہے؟
دو بڑے فرق: (1) Polymarket میں hard outcome events (news، sports finales) ہوتے ہیں جو price کو instantaneously 30-100 cents تک move کر سکتے ہیں - crypto سے کہیں زیادہ sharp۔ (2) Polymarket markets آخرکار resolve ہوتے ہیں، اس لیے crypto pairs کے برعکس MM positions کی hard expiration ہوتی ہے۔ یہ دونوں آپ کو shorter holds اور tighter risk limits کی طرف دھکیلتے ہیں۔
کیا میں Polymarket پر 5-minute crypto markets market-make کر سکتا ہوں؟
ممکن ہے مگر بہت مشکل۔ 5-minute markets میں pair per day تقریباً 288 expirations دیکھنے کو ملتی ہیں، faster bots dominate کرتے ہیں، اور spreads بھی tighter ہوتے ہیں۔ زیادہ تر retail MM bots وہاں adverse selection کی وجہ سے پیسہ کھو دیتے ہیں۔ 5-minute crypto strategy کو اس series کے chapter 23 میں proper طریقے سے cover کیا جائے گا۔