Polymarket Bot Tutorial · Capitolo 25 di 32

Bot per i mercati sportivi su Polymarket: partite NFL settimanali, microstructure del tag NBA (745), soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, edge sources, code patterns.

Cosa copre questo capitolo

NFL, NBA, Soccer e Tennis sono i maggiori volumi sportivi di Polymarket per categoria. Ognuno ha una propria disponibilità di dati, cadenza e profilo di edge. Questo capitolo copre i pattern dei bot specifici per lega e gli ID dei tag su cui farete filter.

Questo è il capitolo 25 della nostra serie in 32 parti sulla costruzione di un Polymarket trading bot. Trattiamo l'argomento in profondità nelle sezioni qui sotto. I contenuti principali di ogni sezione vengono scritti e pubblicati capitolo per capitolo; le risposte FAQ e i riferimenti sono già completi e riflettono l'esperienza production maturata gestendo il nostro trader.

  • NFL: cadenza settimanale, peak liquidity la domenica
  • NBA (tag 745): microstructure in-game
  • Soccer: leghe internazionali vs club league
  • Tennis (tag 864): cadenza dei tournament
  • Edge sources che resistono
  • Dati live: ESPN, official APIs
  • Bot di esempio: pre-game line catcher

NFL: cadenza settimanale, peak liquidity la domenica

L'NFL ha il ritmo settimanale più marcato tra tutti gli sport su Polymarket. I market si aprono il martedì dopo le partite della settimana precedente, il line shopping avviene da mercoledì a venerdì, il betting volume raggiunge il picco tra sabato e domenica. La resolution è in genere la domenica sera per le partite early, e il lunedì sera per quella late.

Pattern del bot: line-catcher martedì-mercoledì quando viene fissata l'opening line, in-play la domenica durante il peak volume. Bot diversi per ciascuna finestra. Il market del Monday Night Football spesso ha volume più sottile rispetto alle altre partite — attenzione: il rischio di slippage è più alto sulle entry di piccolo size.

Il picco di volume è il Super Bowl: oltre 50 milioni di dollari tradati su tutti i mercati SB nella settimana della partita. Anche un bot da 100 dollari in quella settimana è rumore irrilevante; a quella scala il market è efficiente.

NBA (tag 745): microstructure in-game

L'NBA è lo sport a maggiore frequenza su Polymarket — 25-30 partite a settimana durante la regular season, 5-15 nei playoffs. L'ID del tag 745 filtra gli eventi NBA-only.

La microstructure in-game funziona sull'NBA perché: (1) ESPN aggiorna i scoreboard ogni ~10s, (2) le partite durano 2,5 ore di action continua, (3) i books di Polymarket per le partite principali restano deep fino al 4th quarter.

La strategia che funziona: subscribe al WS book di una partita + feed ESPN, reagire a imbalance + score events in 10-15 secondi. Le strategie che non funzionano: pre-game line catching (abbastanza efficient da non lasciare molto ai retail), late-game certainty arbitrage (territorio del 0.99 trap).

Soccer: leghe internazionali vs club league

Il soccer su Polymarket si divide in tre livelli approssimativi.

  • Top European leagues (EPL tag 739, La Liga, Bundesliga, Serie A) — volume moderato, book deep sulle partite importanti. Le strategie bot sono simili all'NBA.
  • Champions League / Europa League (UCL tag 2186) — volume al picco nelle fasi a eliminazione diretta. I book sono più deep dagli ottavi in poi.
  • International / leghe minori (Saudi Pro League, MLS, J-League) — book thin, spread ampi. In generale non sono territorio da bot.

Il punteggio discreto del soccer (0-1 goal sono eventi enormi) lo rende diverso dal flusso continuo dell'NBA. Il pattern del bot per il soccer è: stare dalla parte giusta prima che segni un goal, uscire rapidamente dopo che scatta.

Tennis (tag 864): cadenza dei tournament

Tennis tag 864. I tour ATP e WTA giocano 11 mesi all'anno con i Grand Slams a gen (Australian Open), mag-giu (French Open), lug (Wimbledon) e ago-set (US Open). Il volume si concentra in quelle quattro settimane più la serie Masters 1000.

Il tennis ha le price ladder in-play più pulite di qualsiasi sport (chapter 15). I prezzi mid-match seguono curve prevedibili legate agli stati set-and-break. Un bot con un modello di price ladder specifico per il tennis può rilevare mispricing in real time.

Finestre calme: tra i Grand Slams, nelle settimane con soli tornei ATP 250 / ATP 500, i books sono molto thin. In questi periodi mettete in pausa il bot o passate a un altro sport.

Edge sources che resistono

Tra tutti e quattro gli sport, gli edge che resistono nel tempo sono:

  • Pre-game line shop contro il number di un venue più sharp (Pinnacle, Betfair). Quando Polymarket è in disaccordo con un sharp book di > 3c, fade Polymarket.
  • In-play overreaction a una singola play (interception, injury, momentum shift). Aspettate 30-60 secondi dopo la play, fate fade se il market ha esagerato.
  • Late-game heavy favorites a 0.85-0.92 con sizing gestito dal rischio. Sotto 0.85 = rischio reale; sopra 0.92 = il 0.99 trap.

Edge che non resistono: pure technical analysis sui prezzi, sentiment scraping da Twitter, effetti stagionali basati sul calendario.

Dati live: ESPN, official APIs

Matrice delle fonti dati per i quattro sport.

SportPrimariaBackupCadenza di aggiornamento
NFLESPN scoreboardNFL.com feed~10s durante il play
NBAESPN scoreboardstats.nba.com~10s durante il play
Soccer (EPL/UCL)ESPN scoreboardSofaScore~15-30s
Tennis (ATP/WTA)ESPN scoreboardtennis.com live~30s (point-level)

ESPN è gratuito e affidabile per tutti e quattro. Per aggiornamenti sub-10s pagate un feed specializzato (StatsPerform, GeniusSports) — ma il miglioramento marginale della latency raramente giustifica il costo per i retail.

Bot di esempio: pre-game line catcher

Riferimento: pseudocode del pre-game line-catcher.

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)

Avvertenze: le API di Pinnacle / Betfair richiedono account; non sono gratuite. Senza un riferimento sharp, il line-catching si riduce a opinione contro opinione, e non è territorio da bot.

Domande frequenti

Quale sport ha il maggior volume su Polymarket?
Varia in base alla stagione. L'NFL guida nelle Sunday game days. L'NBA (tag_id verificato 745) guida durante le regular season weeknights. Il soccer (nessun tag singolo) guida durante le settimane di Champions League e i Mondiali. Il tennis (tag_id verificato 864) sale durante le Grand Slam fortnight. I bot multi-sport beneficiano della rotazione costante.
I mercati sportivi pre-game o in-game sono più profittevoli?
Pre-game: più facili da prezzare (più tempo per la ricerca, meno variance del rumore in-game), ma spread più stretti e più competitivi rispetto alle odds dei sportsbook. In-game: più difficili, richiedono dati in tempo reale, ma hanno mispricing più grandi durante gli swing emotivi (post-touchdown, dopo un tiro sbagliato).
Dove prendo dati sportivi live abbastanza veloci per un bot?
Endpoint JSON non ufficiali di ESPN.com per i principali sport US. The-odds-api.com aggrega più bookmaker ma con rate limits. Sofascore.com copre soccer + tennis. Per dati sub-1-secondo: i feed a pagamento di Sportradar o BetGenius sono di livello professionale ma costosi. La maggior parte dei bot retail sopravvive con ESPN + i beat reporter su Twitter.
Devo fidarmi di Twitter dei beat reporter per le news live?
In gran parte sì, con cautela. I beat reporter diffondono infortuni/lineup più velocemente di ESPN. Ma i rate limits di Twitter e le sospensioni degli account creano gap di affidabilità. Best practice: iscrivetevi a 5-10 account di reporter, deduplicate, e richiedete 2 fonti prima di triggerare sugli infortuni.
Come si confronta Polymarket sports con i traditional sportsbooks?
Nessun vig (contro circa 5-10% su FanDuel/DraftKings) ma liquidity più sottile e spread più ampi sui mercati minori. Per NFL/NBA mainstream, i bookmaker tradizionali hanno di solito fill quality migliore. Per sport di nicchia (cricket, rugby, esports), Polymarket spesso ha edge perché i bookmaker tradizionali li prezzano male.
Posso eseguire bot sports + crypto + politics contemporaneamente?
Sì, ed è una buona costruzione di portfolio. Sports, politics e crypto hanno bassa correlation - diversificarli smussa la variance giornaliera del PnL. Avvertenza: ogni strategia deve avere il proprio risk budget, non uno condiviso.