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.
| 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 є безкоштовним і надійним для всіх чотирьох. Для оновлень швидше ніж за 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.





