Polymarket Bot Tutorial · Розділ 25 із 32

Sports market bots на Polymarket: NFL щотижневі ігри, NBA tag (745) microstructure, soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, джерела edge, code patterns.

Що охоплює цей розділ

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

  • NFL: weekly cadence, peak liquidity Sunday
  • NBA (tag 745): in-game microstructure
  • Soccer: international vs club leagues
  • Tennis (tag 864): tournament cadence
  • Edge sources that survive
  • Live data: ESPN, official APIs
  • Sample bot: pre-game line catcher

NFL: weekly cadence, peak liquidity Sunday

NFL має найсильніший weekly rhythm серед усіх sports на Polymarket. Markets відкриваються у вівторок після ігор попереднього тижня, line-shop відбувається в середу-п’ятницю, betting volume досягає піка в суботу-неділю. Resolution зазвичай у неділю ввечері для ранніх ігор, у понеділок увечері - для пізньої.

Bot pattern: line-catcher у вівторок-середу, коли встановлюється opening line, in-play у неділю під час peak volume. Для кожного вікна - окремі bots. Market Monday Night Football часто має тонший volume, ніж інші ігри - майте на увазі, що для невеликих входів тут вищий risk slippage.

Пік volume припадає на Super Bowl: понад $50M traded по всіх SB markets у тиждень гри. Навіть bot на $100 у той тиждень - це незначний шум; market на такому масштабі є efficient.

NBA (tag 745): in-game microstructure

NBA - це найвищочастотніший sport на Polymarket: 25-30 games на тиждень у regular season, 5-15 у playoffs. Tag ID 745 фільтрує events лише для NBA.

In-game microstructure працює в NBA тому, що: (1) ESPN оновлює scoreboards приблизно кожні ~10s, (2) games тривають 2.5 hours безперервної action, (3) Polymarket books для major games залишаються deep до самого 4th quarter.

Стратегія, яка працює: підключитися до game's 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 умовно ділиться на три рівні.

  • 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) - peak volume під час knockout stages. Найглибші books із round-of-16 onward.
  • International / smaller leagues (Saudi Pro League, MLS, J-League) - thin books, великі spreads. Зазвичай це не territory for bots.

Discrete scoring у soccer (0-1 goals - це дуже великі events) робить його відмінним від безперервного flow NBA. Bot pattern для soccer: бути на правильному боці до того, як буде забитий goal, і швидко виходити після того, як він спрацює.

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 концентрується в ці чотири тижні плюс series Masters 1000.

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

Quiet windows: між Grand Slams, у тижні лише з ATP 250 / ATP 500 tournaments books дуже thin. У ці періоди поставте bot на паузу або переключіться на інший sport.

Edge sources that survive

У всіх чотирьох sports edges, які зберігаються з часом, це:

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

Edges, які не зберігаються: pure technical analysis на prices, sentiment scraping з Twitter, calendar-based seasonal effects.

Live data: ESPN, official APIs

Матриця data sources для чотирьох 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 є безкоштовним і надійним для всіх чотирьох. Для оновлень швидше ніж за 10 seconds потрібен спеціалізований 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. Without a sharp reference, line-catching reduces to opinion vs opinion, which is not bot territory.

Часті запитання

Який sport має найбільший volume на Polymarket?
Залежить від сезону. NFL лідирує в неділю у дні ігор. NBA (verified tag_id 745) лідирує у будні вечорами під час regular season. Soccer (без одного single tag) лідирує під час тижнів Champions League і World Cup. Tennis (verified tag_id 864) різко зростає під час Grand Slam fortnights. Multi-sport bots виграють від постійної ротації.
Що прибутковіше: pre-game чи in-game sports markets?
Pre-game: легше оцінювати (більше часу на research, менше variance від in-game noise), але spreads вужчі, і конкуренція з sportsbook odds вища. In-game: складніше, вимагає real-time data, але дає більші mispricings під час emotional swings (post-touchdown, after a missed shot).
Де взяти live sports data достатньо швидко для bot?
ESPN.com unofficial JSON endpoints для major US sports. The-odds-api.com агрегує кілька bookmakers, але має rate limits. Sofascore.com має soccer + tennis. Для даних швидше за 1 second: paid feeds від Sportradar або BetGenius мають professional-grade якість, але вони дорогі. Більшість retail bots працюють на ESPN + Twitter beat reporters.
Чи варто довіряти Twitter beat-reporter для live news?
Переважно так, але з застереженнями. Beat reporters публікують injuries/lineups швидше за ESPN. Але Twitter rate limits і account suspensions створюють gaps у надійності. Best practice: підписатися на 5-10 reporter accounts, deduplicate і вимагати 2 sources перед тим, як реагувати на injuries.
Як Polymarket sports порівнюється з традиційними sportsbooks?
Немає vig (проти приблизно 5-10% на FanDuel/DraftKings), але liquidity тонша і spreads ширші на менших markets. Для масових NFL/NBA традиційні books зазвичай мають кращу fill quality. Для нішевих sports (cricket, rugby, esports) Polymarket часто має edge, бо традиційні books недооцінюють їх.
Чи можу я одночасно запускати sports + crypto + politics bots?
Так, і це хороша portfolio construction. Sports, politics і crypto мають low correlation - диверсифікація між ними згладжує daily PnL variance. Caveat: кожна strategy потребує окремий risk budget, а не спільний.