Polymarket Bot Tutorial · Chapter 15 of 32

Polymarket پر sports microstructure bots: in-game edge، scoreline-driven mispricing، NBA tag (745) اور Tennis tag (864)، live data sources، اور high-frequency sports markets کے لیے execution patterns۔

یہ chapter کس بارے میں ہے

Sports markets Polymarket پر سب سے زیادہ مسلسل active non-political segment ہیں۔ جو bots واقعی کام کرتے ہیں وہ دو صاف buckets میں آتے ہیں: pre-game line-catchers جو line set ہونے کے بعد trade کرتے ہیں، اور in-game microstructure bots جو کھیل کے دوران order-book movement پر react کرتے ہیں۔ یہ chapter دونوں کو cover کرتا ہے، خاص tag IDs، data sources، اور latency budgets کے ساتھ جو ہر ایک پر apply ہوتے ہیں۔

Sports markets Polymarket پر سب سے مصروف non-political segment ہیں۔ جو execution pattern کام کرتا ہے وہ live-score feed (ESPN، PandaScore) کو order-book microstructure signals کے ساتھ combine کرتا ہے۔ یہ chapter خاص طور پر NFL، NBA، soccer، اور tennis کے لیے کیا کام کرتا ہے، اور esports کیسے مختلف ہے، یہ cover کرتا ہے۔

  • Sports markets tradeable کیوں ہیں
  • Pre-game بمقابلہ in-game (مختلف bots)
  • Verified tag IDs (745 NBA، 864 Tennis)
  • Data sources: ESPN، official APIs، on-screen
  • In-game کے لیے latency budget
  • 0.99 / 0.01 trap
  • Code: games book کو subscribe کریں اور react کریں

Sports markets tradeable کیوں ہیں

Sports markets defined timeframes (hours سے days) میں clear ہوتے ہیں، public live data رکھتے ہیں، اور games کے دوران مسلسل order flow attract کرتے ہیں۔ یہ تینوں tradeable market کے لیے ضروری ہیں - political markets میں "defined timeframe" نہیں ہوتا، weather markets میں "continuous flow" کمزور ہوتا ہے، اور obscure tournaments میں "public live data" نہیں ہوتا۔

Sports markets پر trader population بھی election markets کے مقابلے میں زیادہ diverse ہوتی ہے۔ casual sports bettors emotional pricing کرتے ہیں؛ informed traders game کے دوران fair value کی طرف correction کرتے ہیں۔ ان دونوں کے درمیان gap ہی bot edge ہے۔

Volume distribution uneven ہوتی ہے: ایک NFL Sunday Polymarket sports markets میں hundreds of millions of dollars rotate کر سکتی ہے؛ Tuesday-night Saudi Pro League fixture شاید $50k سے کم کرے۔ اپنی strategy کو اس کے مطابق size کریں جہاں action واقعی ہے۔

Pre-game بمقابلہ in-game (مختلف bots)

دو بنیادی طور پر مختلف bot designs۔

Pre-game line-catcher: نئے کھلے ہوئے markets scan کریں، اپنی model یا کسی sharper venue کے number کے مقابل mis-priced lines identify کریں، FOK buy place کریں۔ In-play تک hold کریں، کبھی کبھی resolution تک بھی۔ Speed: minutes-not-seconds۔ Edge: model + line-shopping۔

In-game microstructure: live game's order book WebSocket subscribe کریں، imbalance signals + score events پر seconds کے اندر react کریں۔ Speed: seconds-not-minutes۔ Edge: latency + order flow پڑھنا۔

دونوں کا code تقریباً ایک جیسا نہیں ہوتا۔ ان کے risk profiles مختلف ہیں، data sources مختلف ہیں، exit strategies مختلف ہیں۔ ایک bot اگر دونوں کرنے کی کوشش کرے تو آخرکار دونوں میں اچھا نہیں رہتا؛ ایک ہی منتخب کریں۔

Verified tag IDs (745 NBA, 864 Tennis)

Major sports categories کے لیے production tag IDs May 2026 میں verify کیے گئے۔ انہیں /events calls کو efficiently filter کرنے کے لیے استعمال کریں۔

Sport / LeagueTag IDTag slugNotes
NBA745nbaOct-Jun میں highest volume
NFL450nflSep-Feb میں Sun/Mon peak
Tennis (all)864tennisyear-round، tournament cadence
Soccer (general)1059soccerنیچے والے sub-tags کے ساتھ combine کریں
EPL739epl
UCL2186uefa-champions-league
Esports (all)702esportsLoL+CS2+Valorant+Dota
MLB1245mlbApr-Oct میں peak
NHL823nhlOct-Jun میں peak

Tag IDs سالوں کے ساتھ stable رہتے ہیں۔ نئے tags add ہوتے ہیں (Saudi Pro League، IPL) لیکن پرانے tags کو renumber نہیں کیا جاتا۔

Data sources: ESPN، official APIs، on-screen

Traditional sports کے لیے free ESPN scoreboard API وہ سب کچھ cover کرتی ہے جس کی آپ کو ضرورت ہے: scores، period/clock، win-probability، کبھی کبھی shot location۔ Key کی ضرورت نہیں؛ rate-limit صرف IP level پر ہوتا ہے۔ Endpoint pattern: https://site.api.espn.com/apis/site/v2/sports/<sport>/<league>/scoreboard۔

Esports کے لیے ESPN میں coverage نہیں ہے۔ Options: PandaScore ($30-60/mo، industry standard)، HLTV (صرف CS2، scrapeable، API نہیں)، Liquipedia (community-maintained، scrapeable، update cadence سست)۔

On-screen feeds (TV stream کے لیے pay کرنا اور OCR کے ذریعے scorebug پڑھنا) کام تو کرتے ہیں مگر operationally heavy ہیں۔ صرف اسی صورت recommend کیے جاتے ہیں جب آپ کے پاس ایسی strategy ہو جسے sub-3-second updates کی ضرورت ہو، اور جس sport کے لیے کوئی API real time میں cover نہ کرتی ہو۔

In-game کے لیے latency budget

In-game reactive bot کے لیے end-to-end latency budget۔

  • Score event ہوتا ہے: t=0
  • Source feed reflect کرتی ہے: t+3-15s (ESPN: ~10s; PandaScore: ~3s)
  • آپ کا bot feed پڑھتا ہے: t+10-16s
  • Bot action decide کرتا ہے: +50ms
  • FOK order place ہوتا ہے: +200-500ms
  • CLOB پر matched ہوتا ہے: +300-1000ms (network + matching)

Total: 11-17 seconds۔ سب سے تیز professional firms paid premium feeds اور co-located VPS کے ساتھ end-to-end 3-5 seconds achieve کرتی ہیں۔ Standard hosts اور free ESPN پر چلنے والے retail bots زیادہ سست end پر ہوتے ہیں۔

جن strategies کو sub-5s چاہیے، وہ retail کے لیے viable نہیں ہیں۔ جو strategies 10-17s window میں کام کرتی ہیں وہ یہ ہیں: score کے بعد line-catching، overreactions کو fade کرنا، late-game certainty plays۔

0.99 / 0.01 trap

سب سے common in-play sports bot failure: one minute left پر heavy favorite کو 0.99 پر buy کرنا، اور آسان +1¢ کی امید رکھنا۔ یہ تین reasons سے fail ہوتا ہے۔

First, underdog کی 1% implied probability صفر نہیں ہوتی - late comebacks غیر معمولی frequency کے ساتھ ہوتے ہیں۔ 99.5% certain win، اگر 200 بار کھیلا جائے، تو full position size کے لیے ایک loss پیدا کرتا ہے۔

Second, 0.99/0.01 پر spread کا مطلب ہے کہ آپ share کے لیے 99c pay کرتے ہیں، success پر 1c جیتتے ہیں، اور rare reversal پر 99c ہارتے ہیں۔ Risk-reward انتہائی brutal ہے۔

Third, GTC sell at 0.999 استعمال کرنے والا bot شاذ و نادر ہی fill ہوگا - اس price پر buyers نہیں ہوتے۔ Position resolution تک ride کرتی ہے۔ اگر جیت ہو جائے تو آپ نے 1c کمایا۔ اگر reversal ہو جائے تو آپ 99c ہار گئے۔

یہ trap builders کے حقیقی پیسے کا نقصان ہے جنہوں نے math نہیں چلائی۔ 0.95+ priced markets سے باہر رہیں جب تک کہ آپ کی strategy خاص طور پر redemption-arbitrage profile کے لیے نہ بنائی گئی ہو۔

Code: games book کو subscribe کریں اور react کریں

Reference: ایک مخصوص NBA game کے WebSocket کو subscribe کریں، book updates log کریں، imbalance signal پر FOK fire کریں۔

import websocket, json
THRESHOLD = 0.5  # imbalance level to trigger

def on_message(ws, message):
    msg = json.loads(message)
    if msg.get("event_type") != "book": return
    bids = msg.get("bids", [])
    asks = msg.get("asks", [])
    bid_depth = sum(float(b["price"]) * float(b["size"]) for b in bids[:5])
    ask_depth = sum(float(a["price"]) * float(a["size"]) for a in asks[:5])
    total = bid_depth + ask_depth
    if total < 100: return  # too illiquid
    imb = (bid_depth - ask_depth) / total
    if abs(imb) > THRESHOLD:
        print(f"signal imb={imb:.2f} bid={bid_depth:.0f} ask={ask_depth:.0f}")
        # fire FOK here

ws = websocket.WebSocketApp(
    "wss://ws-subscriptions-clob.polymarket.com/ws/market",
    on_open=lambda ws: ws.send(json.dumps({"type":"Market","markets":["<CONDITION_ID>"]})),
    on_message=on_message
)
ws.run_forever()

Production additions: fires کے درمیان cooldown، per-token inventory cap، stale book پر kill (30s تک کوئی message نہ آئے)۔

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

Polymarket پر سب سے active sports tags کون سے ہیں؟
NBA (tag_id 745)، Tennis (tag_id 864)، اور soccer (competition کے مطابق مختلف) اپنے seasons کے دوران 24h volume میں lead کرتے ہیں۔ NFL regular season اور playoffs میں weekly spike کرتا ہے۔ ہم نے production میں NBA اور Tennis tag IDs verify کیے ہیں - باقی کو ان پر rely کرنے سے پہلے gamma /tags endpoint کے ذریعے check کرنا چاہیے۔
کیا میں in-game sports markets کو profitably bot کر سکتا ہوں؟
ممکن ہے - لیکن یہ مشکل ہے۔ Edge واقعی موجود ہے (live scoreline اکثر 30-90 seconds تک mispriced رہتی ہے) مگر دوسرے bots بھی دیکھ رہے ہوتے ہیں۔ جو best results ہم نے دیکھے ہیں وہ fast live-score data source کو simple rules کے ساتھ combine کرنے سے ملے ہیں ("opponent scored، market ابھی تک move نہیں ہوا، buy")۔ Pure stat-arb بغیر data source کے تیز competitors سے ہار جاتا ہے۔
مجھے live sports data کہاں سے ملے گی؟
ESPN.com کے پاس unofficial JSON endpoints ہیں جو live scores return کرتے ہیں - بہت سی strategies کے لیے کافی اچھے۔ Official APIs (NBA Stats API، NFL public endpoints) زیادہ reliable ہیں مگر slower ہیں۔ Beat reporters کے Twitter accounts text دیتے ہیں لیکن LLM parsing درکار ہوتی ہے۔ کوئی بھی HFT-grade نہیں؛ سب retail کے لیے "fast enough" ہیں۔
0.99 / 0.01 trap کیا ہے؟
جب کوئی sports market 99 cents YES پر ہو (یعنی جیتنے کے بہت زیادہ امکانات ہوں)، تو تقریباً کوئی upside باقی نہیں رہتا اور ایک 1-cent move مہینوں کی expected gain ختم کر سکتا ہے۔ بہت سے bots 0.99 پر buy کرتے ہوئے آخری cent chase کرنے میں پھنس جاتے ہیں اور جب کوئی unexpected event price کو 0.85 تک گرا دیتا ہے تو بری طرح متاثر ہوتے ہیں۔ سخت rule: تقریباً 0.95 سے اوپر buy نہ کریں جب تک کہ آپ کی expected value math بالکل مضبوط نہ ہو۔
Polymarket sports کا traditional sportsbooks سے کیا comparison ہے؟
Spread پر house edge نہیں ہے (FanDuel/DraftKings پر تقریباً 5-10% vig کے مقابلے میں)، مگر liquidity thin ہوتی ہے اور spreads wider ہو سکتے ہیں۔ Polymarket ان events کے لیے بہترین ہے جنہیں traditional books کم قیمت دیتے ہیں - international tournaments، esports، niche markets۔ Mainstream NFL/NBA کے لیے traditional books زیادہ liquid ہوتے ہیں مگر vig کی لاگت زیادہ ہوتی ہے۔
کیا میرا bot ایک ساتھ کئی sports markets میں trade کر سکتا ہے؟
جی ہاں - اور آپ کو کرنا چاہیے۔ Sports microstructure 5-20 simultaneous games کے portfolio کے طور پر بہترین کام کرتی ہے۔ Per-game position cap (مثلاً 50 USD)، portfolio cap (مثلاً 500 USD)، اور games کے درمیان uncorrelated exposure۔ ایک ہی game پر concentrate کرنے سے variance بڑھ جاتی ہے۔