Polymarket Bot Tutorial · Chapter 25 of 32
Polymarket پر sports market bots: NFL کے weekly games، NBA tag (745) microstructure، soccer (Premier League, Bundesliga, Champions League)، tennis (864) - liquidity، edge sources، code patterns۔
یہ chapter کیا cover کرتا ہے
NFL، NBA، Soccer، اور Tennis category کے لحاظ سے Polymarket کی سب سے بڑی sports volumes ہیں۔ ہر ایک کی data availability، cadence، اور edge profile الگ ہے۔ یہ chapter league-specific bot patterns اور وہ tag IDs cover کرتا ہے جن پر آپ filter کریں گے۔
- NFL: weekly cadence، peak liquidity Sunday
- NBA (tag 745): in-game microstructure
- Soccer: international vs club leagues
- Tennis (tag 864): tournament cadence
- Edge sources جو survive کرتی ہیں
- Live data: ESPN، official APIs
- Sample bot: pre-game line catcher
NFL: weekly cadence، peak liquidity Sunday
NFL میں Polymarket کے کسی بھی sport کے مقابلے میں سب سے مضبوط weekly rhythm ہوتا ہے۔ Markets پچھلے ہفتے کے games کے بعد Tuesday کو open ہوتے ہیں، line-shop Wednesday-Friday ہوتا ہے، اور betting volume Saturday-Sunday کو peak پر پہنچتی ہے۔ Resolution عام طور پر early games کے لیے Sunday night، اور late one کے لیے Monday night ہوتی ہے۔
Bot pattern: line-catcher Tuesday-Wednesday جب opening line set ہوتی ہے، اور in-play Sunday کو peak volume کے دوران۔ ہر window کے لیے الگ bots۔ Monday Night Football market میں اکثر دوسرے games کے مقابلے thinner volume ہوتی ہے - چھوٹے-size entries پر slippage risk زیادہ ہوتا ہے، اس سے آگاہ رہیں۔
Volume peak Super Bowl میں ہوتا ہے: game week کے دوران تمام SB markets پر $50M+ trade ہوتا ہے۔ اس week میں $100 کا bot بھی irrelevant noise ہے؛ اس scale پر market efficient ہوتا ہے۔
NBA (tag 745): in-game microstructure
NBA Polymarket پر سب سے high-frequency sport ہے - regular season میں ہفتے کے 25-30 games، playoffs میں 5-15۔ Tag ID 745 صرف NBA events filter کرتا ہے۔
NBA میں in-game microstructure اس لیے کام کرتی ہے کیونکہ: (1) ESPN scoreboards تقریباً ہر 10s میں update ہوتے ہیں، (2) games 2.5 hours کی continuous action ہوتی ہیں، (3) major games کے لیے Polymarket books 4th quarter تک deep رہتے ہیں۔
جو strategy کام کرتی ہے: کسی game کے WS book + ESPN feed کو subscribe کریں، imbalance + score events پر 10-15 seconds میں react کریں۔ جو strategies کام نہیں کرتیں: pre-game line catching (کافی efficient ہوتی ہے، retail زیادہ catch نہیں کر پاتا)، late-game certainty arbitrage (0.99-trap territory)۔
Soccer: international vs club leagues
Polymarket پر soccer تین rough tiers میں تقسیم ہوتا ہے۔
- Top European leagues (EPL tag 739, La Liga, Bundesliga, Serie A) - moderate volume، بڑے matches پر deep books۔ Bot strategies NBA سے ملتی جلتی ہیں۔
- Champions League / Europa League (UCL tag 2186) - knockout stages میں peak volume۔ Round-of-16 سے آگے books سب سے deep ہوتی ہیں۔
- International / smaller leagues (Saudi Pro League, MLS, J-League) - thin books، بڑے spreads۔ عام طور پر bot territory نہیں۔
Soccer کی discrete scoring (0-1 goals بڑے events ہوتے ہیں) اسے NBA کے continuous flow سے مختلف بناتی ہے۔ Soccer کے لیے bot pattern یہ ہے: goal score ہونے سے پہلے درست side پر ہوں، اور goal آتے ہی تیزی سے exit کریں۔
Tennis (tag 864): tournament cadence
Tennis tag 864۔ ATP اور WTA tours سال کے 11 months کھیلتی ہیں، جبکہ Grand Slams Jan (Australian Open)، May-Jun (French Open)، Jul (Wimbledon)، اور Aug-Sep (US Open) میں ہوتے ہیں۔ Volume انہی four weeks اور Masters 1000 series میں concentrate ہوتی ہے۔
Tennis میں کسی بھی sport کے مقابلے سب سے clean in-play price ladders ہوتی ہیں (chapter 15)۔ Mid-match prices set-and-break states کے ساتھ predictable curves follow کرتی ہیں۔ Tennis-specific price ladder model والا bot real time میں mispricing detect کر سکتا ہے۔
Quiet windows: Grand Slams کے درمیان، جب صرف ATP 250 / ATP 500 tournaments ہوں، books بہت thin ہوتی ہیں۔ ان periods میں bot pause کریں یا کسی اور sport پر shift کریں۔
Edge sources جو survive کرتی ہیں
ان چاروں sports میں وقت کے ساتھ جو edges برقرار رہتی ہیں وہ یہ ہیں:
- Pre-game line shop ایک sharper venue کے number کے مقابلے میں (Pinnacle، Betfair)۔ جب Polymarket sharp book سے > 3c اختلاف کرے، تو Polymarket کو fade کریں۔
- In-play overreaction ایک single play پر (interception، injury، momentum shift)۔ play کے بعد 30-60 seconds انتظار کریں، اگر market نے حد سے زیادہ move کیا ہو تو fade کریں۔
- Late-game heavy favorites at 0.85-0.92 with risk-managed sizing۔ 0.85 سے نیچے = واقعی risk؛ 0.92 سے اوپر = 0.99 trap۔
جو edges survive نہیں کرتیں: prices پر pure technical analysis، Twitter سے sentiment scraping، calendar-based seasonal effects۔
Live data: ESPN، official APIs
چاروں sports کے لیے data source matrix۔
| Sport | Primary | Backup | Update cadence |
|---|---|---|---|
| NFL | ESPN scoreboard | NFL.com feed | ~10s during play |
| NBA | ESPN scoreboard | stats.nba.com | ~10s during play |
| Soccer (EPL/UCL) | ESPN scoreboard | SofaScore | ~15-30s |
| Tennis (ATP/WTA) | ESPN scoreboard | tennis.com live | ~30s (point-level) |
ESPN free اور reliable ہے چاروں کے لیے۔ sub-10s updates کے لیے specialized feed (StatsPerform, GeniusSports) خریدیں - لیکن retail کے لیے marginal latency improvement اکثر cost justify نہیں کرتی۔
Sample bot: pre-game line catcher
Reference: pre-game line-catcher pseudocode۔
def line_catcher():
# Find games starting in the next 2-12 hours
events = gamma_events(tag_id=745, hours_ahead=12)
for ev in events:
for m in ev["markets"]:
polymarket_prob = float(json.loads(m["outcomePrices"])[0])
sharp_prob = fetch_pinnacle_implied(ev["slug"]) # 3rd-party feed
if sharp_prob - polymarket_prob > 0.04:
# Polymarket has the YES side cheap vs sharp
tok = json.loads(m["clobTokenIds"])[0]
place_fok(tok, "BUY", polymarket_prob + 0.01, size=10)
elif polymarket_prob - sharp_prob > 0.04:
# Polymarket has the NO side cheap vs sharp
tok = json.loads(m["clobTokenIds"])[1]
place_fok(tok, "BUY", 1 - polymarket_prob + 0.01, size=10)
Caveats: Pinnacle / Betfair APIs کے لیے accounts درکار ہوتے ہیں؛ یہ free نہیں ہیں۔ Sharp reference کے بغیر line-catching opinion vs opinion تک محدود ہو جاتا ہے، جو bot territory نہیں ہے۔





