Polymarket Bot Tutorial · Глава 25 из 32

Sports market bots на Polymarket: NFL weekly games, NBA tag (745) microstructure, soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, источники edge, code patterns.

Что охватывает эта глава

NFL, NBA, Soccer и Tennis - крупнейшие по объему sports-категории на Polymarket. У каждой свой доступ к data, cadence и profile edge. В этой главе рассматриваются league-specific bot patterns и tag IDs, по которым нужно фильтровать.

  • NFL: weekly cadence, пик liquidity в Sunday
  • NBA (tag 745): in-game microstructure
  • Soccer: international vs club leagues
  • Tennis (tag 864): tournament cadence
  • Источники edge, которые сохраняются
  • Live data: ESPN, official APIs
  • Sample bot: pre-game line catcher

NFL: weekly cadence, пик liquidity в Sunday

NFL имеет самый выраженный weekly rhythm среди всех sports на Polymarket. Markets открываются во вторник после игр предыдущей недели, line shopping происходит со среды по пятницу, betting volume достигает пика в Saturday-Sunday. Resolution обычно в Sunday night для ранних игр и в Monday night для поздней.

Bot pattern: line-catcher во вторник-среду, когда задается opening line, и in-play в Sunday во время пикового volume. Для каждого окна нужен отдельный bot. Market Monday Night Football часто имеет более тонкий volume, чем другие игры - учитывайте повышенный риск slippage при небольших входах.

Пик volume приходится на Super Bowl: более $50M traded across all SB markets в неделю игры. Даже bot на $100 в эту неделю - незначительный шум; на таком масштабе market efficient.

NBA (tag 745): in-game microstructure

NBA - самый high-frequency sport на Polymarket: 25-30 games в неделю в regular season, 5-15 в playoffs. Tag ID 745 фильтрует события только по NBA.

In-game microstructure работает в NBA, потому что: (1) ESPN обновляет scoreboards примерно каждые ~10s, (2) games длятся 2.5 hours continuous action, (3) Polymarket books для крупных games остаются deep до 4th quarter.

Рабочая strategy: подписаться на WS book игры + ESPN feed и реагировать на imbalance + score events за 10-15 seconds. Нерабочие стратегии: pre-game line catching (достаточно efficient, retail ловит мало), late-game certainty arbitrage (территория 0.99-trap).

Soccer: international vs club leagues

Soccer на Polymarket делится на три условных tier.

  • Top European leagues (EPL tag 739, La Liga, Bundesliga, Serie A) - moderate volume, deep books на крупных матчах. Bot strategies похожи на NBA.
  • Champions League / Europa League (UCL tag 2186) - пик volume на knockout stages. Books самые глубокие начиная с round-of-16.
  • International / smaller leagues (Saudi Pro League, MLS, J-League) - thin books, большие spreads. Обычно не территория bot.

Дискретное scoring в soccer (0-1 goals - это огромные события) делает его отличным от continuous flow NBA. Bot pattern для soccer: быть на правильной стороне до гола и быстро выходить после срабатывания события.

Tennis (tag 864): tournament cadence

Tennis tag 864. ATP и WTA tours играют 11 месяцев в году, а Grand Slams проходят в Jan (Australian Open), May-Jun (French Open), Jul (Wimbledon) и Aug-Sep (US Open). Volume концентрируется в эти четыре недели плюс в серии Masters 1000.

Tennis имеет самые чистые in-play price ladders среди всех sports (chapter 15). Mid-match prices следуют предсказуемым curves, привязанным к состояниям set-and-break. Bot с tennis-specific price ladder model может в real time обнаруживать mispricing.

Тихие окна: между Grand Slams, в недели только с турнирами ATP 250 / ATP 500 books очень thin. В такие периоды лучше поставить bot на паузу или переключиться на другой sport.

Источники edge, которые сохраняются

Across all four sports, edge, которые сохраняются со временем, это:

  • Pre-game line shop против более sharp venue's number (Pinnacle, Betfair). Когда Polymarket расходится с sharp book более чем на > 3c, фейдьте Polymarket.
  • In-play overreaction на одно play (interception, injury, momentum shift). Подождите 30-60 seconds после play, затем фейдьте, если market ушел слишком далеко.
  • Late-game heavy favorites at 0.85-0.92 с risk-managed sizing. Ниже 0.85 = реальный risk; выше 0.92 = 0.99 trap.

Edge, которые не сохраняются: pure technical analysis по prices, sentiment scraping из Twitter, calendar-based seasonal effects.

Live data: ESPN, official APIs

Data source matrix для четырех sports.

SportPrimaryBackupUpdate cadence
NFLESPN scoreboardNFL.com feed~10s during play
NBAESPN scoreboardstats.nba.com~10s during play
Soccer (EPL/UCL)ESPN scoreboardSofaScore~15-30s
Tennis (ATP/WTA)ESPN scoreboardtennis.com live~30s (point-level)

ESPN бесплатен и надежен для всех четырех. Для обновлений быстрее 10s можно платить за specialized feed (StatsPerform, GeniusSports) - но marginal latency improvement редко оправдывает cost для retail.

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 require accounts; not free. Без sharp reference line-catching сводится к opinion vs opinion, а это уже не territory bot.

Часто задаваемые вопросы

What sport has the most volume on Polymarket?
Varies by season. NFL leads on Sunday game days. NBA (verified tag_id 745) leads during the regular season weeknights. Soccer (no single tag) leads during Champions League weeks and World Cup. Tennis (verified tag_id 864) spikes during Grand Slam fortnights. Multi-sport bots benefit from the constant rotation.
Are pre-game or in-game sports markets more profitable?
Pre-game: easier to price (more time to research, less variance of in-game noise), but tighter spreads and competitive against sportsbook odds. In-game: harder, requires real-time data, but bigger mispricings during emotional swings (post-touchdown, after a missed shot).
Where do I get live sports data fast enough for a bot?
ESPN.com unofficial JSON endpoints for major US sports. The-odds-api.com aggregates multiple bookmakers but with rate limits. Sofascore.com has soccer + tennis. For sub-1-second data: paid feeds from Sportradar or BetGenius are professional-grade but expensive. Most retail bots survive on ESPN + Twitter beat reporters.
Should I trust beat-reporter Twitter for live news?
Mostly yes, with caveats. Beat reporters break injuries/lineups faster than ESPN. But Twitter rate limits and account suspensions create reliability gaps. Best practice: subscribe to 5-10 reporter accounts, deduplicate, and require 2 sources before triggering on injuries.
How does Polymarket sports compare to traditional sportsbooks?
No vig (vs ~5-10% at FanDuel/DraftKings) but thinner liquidity and wider spreads on smaller markets. For mainstream NFL/NBA, traditional books usually have better fill quality. For niche sports (cricket, rugby, esports), Polymarket often has edge because traditional books underprice them.
Can I run sports + crypto + politics bots concurrently?
Yes, and it is good portfolio construction. Sports, politics, and crypto have low correlation - diversifying across them smooths daily PnL variance. Caveat: each strategy needs its own risk budget, not a shared one.