Polymarket Bot Tutorial · Rozdział 25 z 32

Sportowe boty rynkowe na Polymarket: NFL weekly games, NBA tag (745) microstructure, soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, edge sources, code patterns.

Co obejmuje ten rozdział

NFL, NBA, Soccer i Tennis to największe wolumeny sportowe Polymarket w swoich kategoriach. Każdy z tych rynków ma własną dostępność danych, rytm i profil edge. Ten rozdział omawia specyficzne dla lig wzorce botów oraz tag IDs, po których będziesz filtrować.

To jest rozdział 25 z naszej 32-częściowej serii o budowie Polymarket trading bota. Temat omawiamy szczegółowo w sekcjach poniżej. Treść główna dla każdej sekcji jest pisana i publikowana rozdział po rozdziale; odpowiedzi FAQ i referencje są już kompletne i odzwierciedlają doświadczenie produkcyjne z uruchamiania naszego własnego trader.

  • 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 ma najsilniejszy tygodniowy rytm spośród wszystkich sportów na Polymarket. Markets otwierają się we wtorek po meczach z poprzedniego tygodnia, line-shop odbywa się od środy do piątku, a volume bettingowy osiąga szczyt w sobotę i niedzielę. Resolution zwykle następuje w niedzielny wieczór dla wcześniejszych meczów, a w poniedziałek wieczorem dla tego późnego.

Wzorzec bota: line-catcher we wtorek i środę, gdy ustalany jest opening line, oraz in-play w niedzielę podczas peak volume. Dla każdego okna potrzebny jest osobny bot. Market Monday Night Football często ma mniejszy volume niż inne mecze — miej świadomość, że przy małych wejściach rośnie ryzyko slippage.

Szczyt volume przypada na Super Bowl: ponad $50M tradingu we wszystkich SB markets w tygodniu meczu. Nawet bot za $100 w tym tygodniu to nieistotny szum; market jest na tej skali efficient.

NBA (tag 745): in-game microstructure

NBA to sport o najwyższej częstotliwości na Polymarket — 25-30 meczów tygodniowo w regular season, 5-15 w playoffs. Tag ID 745 filtruje wydarzenia wyłącznie NBA.

In-game microstructure działa w NBA, ponieważ: (1) ESPN aktualizuje scoreboardy co około 10 sekund, (2) mecze trwają 2,5 godziny ciągłej akcji, (3) książki Polymarket dla dużych meczów pozostają głębokie aż do 4. kwarty.

Strategia, która działa: subscribe do WS book danego meczu + feed ESPN, reaguj na imbalance i zdarzenia punktowe w ciągu 10-15 sekund. Strategie, które nie działają: pre-game line catching (na tyle efficient, że retail niewiele wyłapuje), late-game certainty arbitrage (terytorium 0.99-trap).

Soccer: international vs club leagues

Soccer dzieli się na trzy przybliżone tier na Polymarket.

  • Top European leagues (EPL tag 739, La Liga, Bundesliga, Serie A) — moderate volume, deep books na dużych meczach. Strategie botów są podobne do NBA.
  • Champions League / Europa League (UCL tag 2186) — peak volume podczas fazy pucharowej. Books są najgłębsze od 1/8 finału wzwyż.
  • International / smaller leagues (Saudi Pro League, MLS, J-League) — thin books, duże spreads. Zwykle nie jest to territory dla botów.

Discreet scoring w soccerze (0-1 gole to ogromne zdarzenia) odróżnia go od ciągłego flow NBA. Wzorzec bota dla soccera jest taki: być po właściwej stronie przed padnięciem gola, wyjść szybko po jego trafieniu.

Tennis (tag 864): tournament cadence

Tennis tag 864. ATP i WTA grają przez 11 miesięcy w roku, a Grand Slams odbywają się w styczniu (Australian Open), maju-czerwcu (French Open), lipcu (Wimbledon) oraz sierpniu-wrześniu (US Open). Volume koncentruje się w tych czterech tygodniach oraz w serii Masters 1000.

Tennis ma najczytelniejsze in-play price ladders spośród wszystkich sportów (chapter 15). Mid-match prices podążają za przewidywalnymi krzywymi opartymi na stanach set-and-break. Bot z modelem price ladder specyficznym dla tenisa może wykrywać mispricing w czasie rzeczywistym.

Ciche okna: między Grand Slams, w tygodniach z samymi turniejami ATP 250 / ATP 500 books są bardzo thin. W takich okresach wstrzymaj bota albo przenieś się na inny sport.

Edge sources that survive

We wszystkich czterech sportach edge, które utrzymują się w czasie, to:

  • Pre-game line shop względem sharper venue's number (Pinnacle, Betfair). Gdy Polymarket różni się od sharp book o > 3c, fade Polymarket.
  • In-play overreaction na pojedynczą akcję (interception, injury, momentum shift). Poczekaj 30-60 sekund po akcji, fade jeśli market przesadził.
  • Late-game heavy favorites at 0.85-0.92 z risk-managed sizing. Poniżej 0.85 = real risk; powyżej 0.92 = 0.99 trap.

Edge, które nie utrzymują się: czysta technical analysis cen, sentiment scraping z Twittera, sezonowe efekty oparte na kalendarzu.

Live data: ESPN, official APIs

Macierz źródeł danych dla czterech sportów.

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 jest darmowy i reliable dla wszystkich czterech sportów. Dla aktualizacji poniżej 10 sekund zapłać za specjalistyczny feed (StatsPerform, GeniusSports) — ale marginalne zmniejszenie latency rzadko uzasadnia koszt dla 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)

Uwagi: Pinnacle / Betfair APIs wymagają kont; nie są darmowe. Bez sharp reference line-catching sprowadza się do opinion vs opinion, a to nie jest territory dla botów.

Najczęściej zadawane pytania

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.