Polymarket Bot Tutorial · Kapitel 25 von 32
Sports market bots auf Polymarket: NFL weekly games, NBA tag (745) microstructure, soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, edge sources, code patterns.
Was dieses Kapitel behandelt
NFL, NBA, Soccer und Tennis sind Polymarkets größte Sports-Volumina nach Kategorie. Jede hat ihre eigene Datenverfügbarkeit, Taktung und Edge-Profile. Dieses Kapitel behandelt die league-spezifischen Bot-Muster und die Tag-IDs, nach denen du filtern wirst.
- 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 hat den stärksten wöchentlichen Rhythmus aller Polymarket-Sports. Markets öffnen am Dienstag nach den Spielen der Vorwoche, line-shoping findet Mittwoch bis Freitag statt, betting volume erreicht seinen Höhepunkt Samstag und Sonntag. Die Resolution erfolgt typischerweise am Sonntagabend für frühe Spiele, und beim späten Spiel am Montagabend.
Bot-Muster: line-catcher am Dienstag und Mittwoch, wenn die opening line gesetzt wird, in-play am Sonntag während des peak volume. Für jedes Zeitfenster gibt es unterschiedliche bots. Das Monday Night Football market hat oft dünneres volume als andere Spiele - beachte, dass hier bei kleinen Entries ein höheres slippage risk besteht.
Der Volume-Peak ist der Super Bowl: über 50 Mio. $ werden in der Woche des Spiels über alle SB markets hinweg gehandelt. Selbst ein 100-$-bot ist in dieser Woche irrelevant noise; der market ist auf diesem Niveau effizient.
NBA (tag 745): in-game microstructure
NBA ist der höchstfrequente Sport auf Polymarket - 25-30 Spiele pro Woche in der regular season, 5-15 in den playoffs. Tag ID 745 filtert auf reine NBA-Events.
In-game microstructure funktioniert bei NBA, weil: (1) ESPN aktualisiert scoreboards etwa alle 10 Sekunden, (2) Spiele 2,5 Stunden kontinuierliche action bieten, (3) Polymarket books für große Spiele bis ins 4. Viertel tief bleiben.
Die Strategie, die funktioniert: abonniere das WS book eines Spiels plus den ESPN-Feed, reagiere innerhalb von 10-15 Sekunden auf imbalance und score events. Strategien, die nicht funktionieren: pre-game line catching (effizient genug, dass retail kaum etwas erwischt), late-game certainty arbitrage (0.99-trap territory).
Soccer: international vs club leagues
Soccer lässt sich auf Polymarket grob in drei Tiers einteilen.
- Top European leagues (EPL tag 739, La Liga, Bundesliga, Serie A) - moderates volume, tiefe books bei großen Spielen. Bot-Strategien ähnlich wie bei NBA.
- Champions League / Europa League (UCL tag 2186) - peak volume in den K.-o.-Phasen. Die books sind ab dem Achtelfinale am tiefsten.
- International / kleinere Ligen (Saudi Pro League, MLS, J-League) - dünne books, große spreads. Im Allgemeinen kein Bot-Territorium.
Soccer ist durch das diskrete scoring (0-1 Tore sind riesige Events) anders als der kontinuierliche flow der NBA. Das Bot-Muster für Soccer lautet: vor einem Tor auf der richtigen Seite sein, danach schnell aussteigen.
Tennis (tag 864): tournament cadence
Tennis tag 864. ATP- und WTA-Touren spielen 11 Monate im Jahr, mit den Grand Slams im Jan (Australian Open), May-Jun (French Open), Jul (Wimbledon) und Aug-Sep (US Open). Das Volume konzentriert sich auf diese vier Wochen plus die Masters-1000-Serie.
Tennis hat die saubersten in-play price ladders aller Sports (chapter 15). Mid-match prices folgen vorhersehbaren Kurven, die an set-and-break states gekoppelt sind. Ein bot mit einem tennis-spezifischen price-ladder-modell kann mispricing in Echtzeit erkennen.
Ruhige Fenster: zwischen Grand Slams, in Wochen mit nur ATP-250- / ATP-500-Turnieren, sind die books sehr dünn. Pausiere den bot oder wechsle in diesen Phasen zu einem anderen sport.
Edge sources that survive
Über alle vier Sports hinweg sind die Edges, die sich langfristig halten, die folgenden:
- Pre-game line shop gegen die Zahl eines schärferen venues (Pinnacle, Betfair). Wenn Polymarket bei mehr als 3c von einem sharp book abweicht, fade Polymarket.
- In-play overreaction auf einen einzelnen play (interception, injury, momentum shift). Warte 30-60 Sekunden nach dem play und fade, wenn der market zu weit gelaufen ist.
- Late-game heavy favorites at 0.85-0.92 mit risikomanagierter Positionsgröße. Unter 0.85 = echtes risk; über 0.92 = der 0.99 trap.
Edges, die sich nicht halten: reine technical analysis auf prices, sentiment scraping aus Twitter, kalenderbasierte saisonale Effekte.
Live data: ESPN, official APIs
Datenquellen-Matrix für die vier Sports.
| Sport | Primary | Backup | Update cadence |
|---|---|---|---|
| NFL | ESPN scoreboard | NFL.com feed | ~10s während des Spiels |
| NBA | ESPN scoreboard | stats.nba.com | ~10s während des Spiels |
| Soccer (EPL/UCL) | ESPN scoreboard | SofaScore | ~15-30s |
| Tennis (ATP/WTA) | ESPN scoreboard | tennis.com live | ~30s (point-level) |
ESPN ist für alle vier kostenlos und zuverlässig. Für Updates unter 10 Sekunden brauchst du einen spezialisierten feed (StatsPerform, GeniusSports) - aber die marginale Latenzverbesserung rechtfertigt die Kosten für retail nur selten.
Sample bot: pre-game line catcher
Referenz: Pseudocode für einen 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)
Hinweise: Pinnacle- / Betfair-APIs erfordern Accounts; sie sind nicht kostenlos. Ohne eine sharp reference reduziert sich line-catching auf Meinung gegen Meinung, und das ist kein Bot-Territorium.





