Polymarket Bot Tutorial · Bölüm 25 / 32
Polymarket'te sports market botları: NFL haftalık maçlar, NBA tag (745) microstructure, soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, edge kaynakları, code patterns.
Bu bölüm neleri kapsıyor
NFL, NBA, Soccer ve Tennis, kategori bazında Polymarket'in en büyük sports volume alanlarıdır. Her birinin data availability, cadence ve edge profile'ı farklıdır. Bu bölüm, league-specific bot patterns'leri ve filtreleyeceğiniz tag ID'leri kapsar.
- NFL: weekly cadence, peak liquidity Sunday
- NBA (tag 745): in-game microstructure
- Soccer: international vs club leagues
- Tennis (tag 864): tournament cadence
- Surviving edge sources
- Live data: ESPN, official APIs
- Sample bot: pre-game line catcher
NFL: weekly cadence, peak liquidity Sunday
NFL, Polymarket sporları arasında en güçlü weekly rhythm'e sahiptir. Markets, önceki haftanın maçlarından sonra Salı günü açılır, line-shop Çarşamba-Cuma yapılır, betting volume ise Cumartesi-Pazar zirve yapar. Resolution genellikle erken maçlar için Pazar gecesi, geç maç için ise Pazartesi gecesidir.
Bot pattern: opening line'ın belirlendiği Salı-Çarşamba günleri line-catcher, peak volume sırasında Pazar in-play. Her pencere için farklı botlar kullanılır. Monday Night Football market'i genellikle diğer maçlara göre daha ince volume'a sahiptir - küçük boyutlu girişlerde daha yüksek slippage riskine dikkat edin.
Volume zirvesi Super Bowl'dur: maç haftasında tüm SB markets genelinde 50M$+ trade edilir. O hafta çalışan 100$'lık bir bot bile önemsiz bir gürültüdür; market bu ölçekte efficient'tır.
NBA (tag 745): in-game microstructure
NBA, Polymarket'teki en yüksek-frequency sport'tur - regular season boyunca haftada 25-30 maç, playoffs'ta 5-15 maç. Tag ID 745, yalnızca NBA events'lerini filtreler.
NBA'de in-game microstructure çalışır çünkü: (1) ESPN scoreboard'ları yaklaşık her 10 saniyede bir günceller, (2) maçlar 2.5 saatlik sürekli aksiyondur, (3) büyük maçlar için Polymarket books 4. çeyreğe kadar derin kalır.
İşe yarayan strategy: bir maçın WS book'u + ESPN feed'ine abone olun, imbalance + score events'e 10-15 saniye içinde tepki verin. İşe yaramayan strategies: pre-game line catching (retail'in çok az yakalayabildiği kadar efficient), late-game certainty arbitrage (0.99-trap territory).
Soccer: international vs club leagues
Soccer, Polymarket'te kabaca üç tier'a ayrılır.
- Top European leagues (EPL tag 739, La Liga, Bundesliga, Serie A) - moderate volume, büyük maçlarda derin books. Bot strategies NBA'ye benzerdir.
- Champions League / Europa League (UCL tag 2186) - knockout stages'te peak volume. Books, round-of-16 ve sonrasında en derindir.
- International / smaller leagues (Saudi Pro League, MLS, J-League) - ince books, geniş spreads. Genellikle bot territory değildir.
Soccer'daki discrete scoring (0-1 gol büyük olaylardır) onu NBA'nin continuous flow'undan farklı kılar. Soccer için bot pattern şudur: gol gelmeden önce doğru tarafta olun, gol olduktan sonra hızlı çıkın.
Tennis (tag 864): tournament cadence
Tennis tag 864. ATP ve WTA tours, yılın 11 ayı oynar; Grand Slams ise Ocak'ta (Australian Open), Mayıs-Haziran'da (French Open), Temmuz'da (Wimbledon) ve Ağustos-Eylül'de (US Open) gerçekleşir. Volume, bu dört hafta ile Masters 1000 serisinde yoğunlaşır.
Tennis, tüm sports arasında en temiz in-play price ladders'a sahiptir (bölüm 15). Maç ortası fiyatlar, set ve break durumlarına bağlı öngörülebilir eğriler izler. Tennis-specific price ladder model'ine sahip bir bot, mispricing'i gerçek zamanlı tespit edebilir.
Quiet window'lar: Grand Slams arasındaki dönemlerde, yalnızca ATP 250 / ATP 500 tournament'larının olduğu haftalarda books çok incedir. Bu dönemlerde bot'u duraklatın ya da başka bir sport'a geçin.
Ayakta kalan edge kaynakları
Dört sporun tamamında zaman içinde ayakta kalan edges şunlardır:
- Pre-game line shop - daha sharp bir venue'nun number'ına karşı (Pinnacle, Betfair). Polymarket, sharp book'tan > 3c farklıysa Polymarket'e fade yapın.
- In-play overreaction - tek bir oyuna (interception, injury, momentum shift) aşırı tepki. Oyundan sonra 30-60 saniye bekleyin, market fazla ileri gittiyse fade edin.
- Late-game heavy favorites at 0.85-0.92 - risk-managed sizing ile. 0.85'in altı = gerçek risk; 0.92'nin üstü = 0.99 trap.
Ayakta kalmayan edges: fiyatlarda pure technical analysis, Twitter'dan sentiment scraping, calendar-based seasonal effects.
Live data: ESPN, official APIs
Dört spor için data source matrix'i.
| Sport | Primary | Backup | Update cadence |
|---|---|---|---|
| NFL | ESPN scoreboard | NFL.com feed | Oyun sırasında ~10s |
| NBA | ESPN scoreboard | stats.nba.com | Oyun sırasında ~10s |
| Soccer (EPL/UCL) | ESPN scoreboard | SofaScore | ~15-30s |
| Tennis (ATP/WTA) | ESPN scoreboard | tennis.com live | ~30s (point-level) |
ESPN, dördü için de ücretsiz ve güvenilirdir. 10 saniyenin altındaki updates için uzmanlaşmış bir feed'e (StatsPerform, GeniusSports) para ödeyin - ancak marjinal latency iyileşmesi retail için çoğu zaman maliyeti haklı çıkarmaz.
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)
Uyarılar: Pinnacle / Betfair APIs hesap gerektirir; ücretsiz değildir. Sharp bir reference olmadan line-catching, opinion vs opinion seviyesine düşer; bu da bot territory değildir.





