Polymarket Bot Tutorial · Chapitre 25 sur 32

Bots de marché sportifs sur Polymarket : matchs hebdomadaires NFL, microstructure NBA (tag 745), soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, edge sources, code patterns.

Ce que couvre ce chapitre

NFL, NBA, Soccer et Tennis sont les plus gros volumes sports de Polymarket par catégorie. Chacun a sa propre disponibilité des données, son cadence et son profil d'edge. Ce chapitre couvre les bot patterns spécifiques à chaque ligue et les tag IDs sur lesquels vous filtrerez.

  • NFL : cadence hebdomadaire, pic de liquidité le dimanche
  • NBA (tag 745) : microstructure en cours de match
  • Soccer : ligues internationales vs ligues de clubs
  • Tennis (tag 864) : cadence des tournois
  • Sources d'edge qui tiennent dans le temps
  • Données live : ESPN, official APIs
  • Bot exemple : pre-game line catcher

NFL : cadence hebdomadaire, pic de liquidité le dimanche

La NFL a le rythme hebdomadaire le plus marqué de tous les sports sur Polymarket. Les marchés ouvrent le mardi après les matchs de la semaine précédente, la recherche de meilleures lines se fait du mercredi au vendredi, et le volume de betting culmine samedi-dimanche. La résolution a généralement lieu le dimanche soir pour les matchs de début de journée, et le lundi soir pour le match tardif.

Bot pattern : line-catcher mardi-mercredi lorsque la opening line est fixée, in-play le dimanche pendant le pic de volume. Des bots différents pour chaque fenêtre. Le marché Monday Night Football a souvent un volume plus faible que les autres matchs - attention, le risque de slippage est plus élevé sur les petites entrées.

Le pic de volume est le Super Bowl : plus de 50 M$ tradés sur l'ensemble des marchés SB la semaine du match. Même un bot à 100 $ cette semaine-là est un bruit négligeable ; le marché est efficient à cette échelle.

NBA (tag 745) : microstructure en cours de match

La NBA est le sport le plus fréquent sur Polymarket - 25 à 30 matchs par semaine pendant la saison régulière, 5 à 15 en playoffs. Le tag ID 745 filtre les événements NBA uniquement.

La microstructure in-game fonctionne sur la NBA parce que : (1) ESPN met à jour les scoreboards toutes les ~10 s, (2) les matchs durent 2,5 heures d'action continue, (3) les order books Polymarket des grands matchs restent profonds jusqu'au 4e quart-temps.

La stratégie qui fonctionne : s'abonner au WS book d'un match + au flux ESPN, réagir aux déséquilibres + aux événements de score en 10 à 15 secondes. Les stratégies qui ne fonctionnent pas : le pre-game line catching (assez efficient pour que le retail n'en capte pas grand-chose), l'arbitrage de certitude en fin de match (territoire du piège 0.99).

Soccer : ligues internationales vs ligues de clubs

Le soccer se divise en trois grands niveaux sur Polymarket.

  • Grandes ligues européennes (EPL tag 739, La Liga, Bundesliga, Serie A) - volume modéré, books profonds sur les gros matchs. Les stratégies bot sont similaires à celles de la NBA.
  • Champions League / Europa League (UCL tag 2186) - pic de volume lors des phases à élimination directe. Les books sont les plus profonds à partir des huitièmes de finale.
  • International / ligues plus petites (Saudi Pro League, MLS, J-League) - books fins, spreads larges. En général, ce n'est pas un terrain pour bot.

Le scoring discret du soccer (0 à 1 buts étant des événements majeurs) le rend différent du flux continu de la NBA. Le bot pattern pour le soccer est le suivant : être du bon côté avant qu'un but soit marqué, sortir vite après un but.

Tennis (tag 864) : cadence des tournois

Tag tennis 864. Les circuits ATP et WTA jouent 11 mois par an avec les Grand Slams en janv. (Australian Open), mai-juin (French Open), juil. (Wimbledon) et août-sept. (US Open). Le volume se concentre sur ces quatre semaines ainsi que sur la série Masters 1000.

Le tennis offre les price ladders in-play les plus propres de tous les sports (chapitre 15). Les prix en cours de match suivent des courbes prévisibles, indexées sur les états set-and-break. Un bot avec un modèle de price ladder spécifique au tennis peut détecter les mauvaises cotations en temps réel.

Fenêtres calmes : entre les Grand Slams, les semaines avec uniquement des tournois ATP 250 / ATP 500 ont des books très fins. Mettez le bot en pause ou basculez vers un autre sport pendant ces périodes.

Sources d'edge qui tiennent dans le temps

Sur les quatre sports, les edges qui survivent dans le temps sont :

  • Pre-game line shop contre la cote d'une venue plus sharp (Pinnacle, Betfair). Quand Polymarket diverge d'un book sharp de plus de 3 c, fade Polymarket.
  • In-play overreaction à une seule action (interception, blessure, changement de momentum). Attendez 30 à 60 secondes après l'action, puis fade si le marché est allé trop loin.
  • Gros favoris en fin de match à 0,85-0,92 avec un sizing géré par le risque. En dessous de 0,85 = vrai risque ; au-dessus de 0,92 = le piège 0.99.

Edges qui ne survivent pas : pure technical analysis sur les prix, scraping du sentiment sur Twitter, effets saisonniers basés sur le calendrier.

Données live : ESPN, official APIs

Matrice des sources de données pour les quatre sports.

SportPrimaireBackupCadence de mise à jour
NFLESPN scoreboardNFL.com feed~10 s pendant le jeu
NBAESPN scoreboardstats.nba.com~10 s pendant le jeu
Soccer (EPL/UCL)ESPN scoreboardSofaScore~15-30 s
Tennis (ATP/WTA)ESPN scoreboardtennis.com live~30 s (au niveau du point)

ESPN est gratuit et fiable pour les quatre. Pour des mises à jour sous les 10 s, payez un flux spécialisé (StatsPerform, GeniusSports) - mais l'amélioration marginale de latence ne justifie rarement le coût pour le retail.

Bot exemple : pre-game line catcher

Référence : pseudocode de 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)

Réserves : les APIs Pinnacle / Betfair nécessitent des comptes ; ce n'est pas gratuit. Sans référence sharp, le line-catching se réduit à opinion contre opinion, ce qui n'est pas un terrain pour bot.

Questions fréquemment posées

Quel sport a le plus de volume sur Polymarket ?
Cela varie selon la saison. La NFL mène le dimanche les jours de match. La NBA (tag_id vérifié 745) mène pendant les soirées de semaine de la saison régulière. Le soccer (pas de tag unique) mène pendant les semaines de Champions League et la World Cup. Le tennis (tag_id vérifié 864) grimpe pendant les quinzaines de Grand Slam. Les bots multi-sports profitent de cette rotation permanente.
Les marchés sports pre-game ou in-game sont-ils plus rentables ?
Pre-game : plus facile à price (plus de temps pour rechercher, moins de variance liée au bruit in-game), mais spreads plus serrés et concurrence avec les sportsbook odds. In-game : plus difficile, nécessite des données temps réel, mais des mauvaises cotations plus importantes pendant les swings émotionnels (après un touchdown, après un tir manqué).
Où obtenir des données sports live assez rapidement pour un bot ?
Points de terminaison JSON non officiels de ESPN.com pour les principaux sports US. The-odds-api.com agrège plusieurs bookmakers mais avec des rate limits. Sofascore.com couvre le soccer + le tennis. Pour des données sous la seconde : les paid feeds de Sportradar ou BetGenius sont de niveau professionnel mais coûteux. La plupart des bots retail fonctionnent avec ESPN + les beat reporters sur Twitter.
Dois-je faire confiance aux beat-reporter Twitter pour les news live ?
Oui, dans l'ensemble, avec réserves. Les beat reporters sortent les blessures et lineups plus vite qu'ESPN. Mais les rate limits de Twitter et les suspensions de comptes créent des trous de fiabilité. Bonne pratique : s'abonner à 5 à 10 comptes de reporters, dédupliquer, et exiger 2 sources avant de déclencher sur une blessure.
Comment Polymarket sports se compare-t-il aux sportsbooks traditionnels ?
Pas de vig (contre environ 5 à 10 % chez FanDuel/DraftKings), mais liquidité plus faible et spreads plus larges sur les petits marchés. Pour la NFL/NBA grand public, les books traditionnels ont généralement une meilleure qualité de fill. Pour les sports de niche (cricket, rugby, esports), Polymarket a souvent l'avantage parce que les books traditionnels les sous-pricent.
Puis-je faire tourner simultanément des bots sports + crypto + politics ?
Oui, et c'est une bonne construction de portefeuille. Sports, politics et crypto ont une faible corrélation - diversifier entre eux lisse la variance quotidienne du PnL. Réserve : chaque stratégie doit avoir son propre budget de risque, pas un budget partagé.