Polymarket Bot Tutorial · Chapter 25 of 32

Sports market bots di Polymarket: NFL weekly games, NBA tag (745) microstructure, soccer (Premier League, Bundesliga, Champions League), tennis (864) - liquidity, sumber edge, pola code.

Apa yang dibahas dalam chapter ini

NFL, NBA, Soccer, dan Tennis adalah volume sports terbesar Polymarket berdasarkan kategori. Masing-masing punya ketersediaan data, cadence, dan profil edge yang berbeda. Chapter ini membahas pola bot spesifik untuk tiap league dan tag ID yang perlu Anda filter.

  • NFL: weekly cadence, peak liquidity Sunday
  • NBA (tag 745): in-game microstructure
  • Soccer: international vs club leagues
  • Tennis (tag 864): tournament cadence
  • Sumber edge yang bertahan
  • Live data: ESPN, official APIs
  • Sample bot: pre-game line catcher

NFL: weekly cadence, peak liquidity Sunday

NFL punya rhythm mingguan paling kuat di antara semua sport di Polymarket. Markets dibuka Selasa setelah game minggu sebelumnya, line-shop terjadi Rabu-Jumat, volume betting memuncak Sabtu-Minggu. Resolution biasanya Minggu malam untuk early games, Senin malam untuk game yang paling akhir.

Pola bot: line-catcher Selasa-Rabu saat opening line ditetapkan, in-play Minggu saat volume puncak. Bot berbeda untuk tiap window. Market Monday Night Football sering punya volume lebih tipis daripada game lain - perhatikan bahwa slippage risk lebih tinggi untuk entry ukuran kecil.

Peak volume ada di Super Bowl: lebih dari $50M traded di semua market SB selama minggu pertandingan. Bahkan bot $100 pada minggu itu nyaris tidak berarti; market sudah efficient pada skala itu.

NBA (tag 745): in-game microstructure

NBA adalah sport dengan frequency tertinggi di Polymarket - 25-30 game per minggu selama regular season, 5-15 di playoffs. Tag ID 745 memfilter event khusus NBA.

In-game microstructure bekerja di NBA karena: (1) ESPN memperbarui scoreboard setiap ~10 detik, (2) game berlangsung 2,5 jam dengan aksi terus-menerus, (3) order book Polymarket untuk game besar tetap dalam sampai kuarter 4.

Strategi yang berhasil: subscribe ke WS book sebuah game + ESPN feed, bereaksi terhadap imbalance + score events dalam 10-15 detik. Strategi yang tidak berhasil: pre-game line catching (cukup efficient sehingga retail tidak banyak menangkapnya), late-game certainty arbitrage (wilayah 0.99-trap).

Soccer: international vs club leagues

Soccer terbagi menjadi tiga tier kasar di Polymarket.

  • Top European leagues (EPL tag 739, La Liga, Bundesliga, Serie A) - volume moderat, book dalam untuk match besar. Strategi bot mirip NBA.
  • Champions League / Europa League (UCL tag 2186) - volume puncak pada fase knockout. Book paling dalam mulai round-of-16 ke atas.
  • International / smaller leagues (Saudi Pro League, MLS, J-League) - book tipis, spread besar. Umumnya bukan wilayah bot.

Skor yang diskret di soccer (0-1 goals adalah event besar) membuatnya berbeda dari aliran kontinu NBA. Pola bot untuk soccer adalah: berada di sisi yang benar sebelum goal tercipta, keluar cepat setelah goal terjadi.

Tennis (tag 864): tournament cadence

Tennis tag 864. Tour ATP dan WTA bermain selama 11 bulan dalam setahun dengan Grand Slams pada Jan (Australian Open), May-Jun (French Open), Jul (Wimbledon), dan Aug-Sep (US Open). Volume terkonsentrasi pada empat minggu itu plus seri Masters 1000.

Tennis punya in-play price ladders paling bersih di antara semua sport (chapter 15). Harga di tengah match mengikuti kurva yang dapat diprediksi berdasarkan state set dan break. Bot dengan model price ladder khusus tennis dapat mendeteksi mispricing secara real time.

Window yang sepi: di antara Grand Slams, minggu-minggu yang hanya berisi turnamen ATP 250 / ATP 500, book sangat tipis. Pause bot atau pindahkan ke sport lain selama periode ini.

Sumber edge yang bertahan

Di keempat sport, edge yang bertahan dari waktu ke waktu adalah:

  • Pre-game line shop melawan angka dari venue yang lebih sharp (Pinnacle, Betfair). Saat Polymarket berbeda dari sharp book lebih dari > 3c, fade Polymarket.
  • In-play overreaction terhadap satu play (interception, injury, momentum shift). Tunggu 30-60 detik setelah play, lalu fade jika market overshot.
  • Late-game heavy favorites di 0.85-0.92 dengan risk-managed sizing. Di bawah 0.85 = risk nyata; di atas 0.92 = 0.99 trap.

Edge yang tidak bertahan: pure technical analysis pada harga, sentiment scraping dari Twitter, efek musiman berbasis kalender.

Live data: ESPN, official APIs

Matrix sumber data untuk keempat sport.

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 gratis dan andal untuk keempatnya. Untuk update di bawah 10 detik, bayar feed khusus (StatsPerform, GeniusSports) - tetapi peningkatan latency marginal jarang sepadan dengan biayanya untuk retail.

Sample bot: pre-game line catcher

Referensi: pseudocode 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)

Peringatan: API Pinnacle / Betfair memerlukan akun; tidak gratis. Tanpa reference yang sharp, line-catching berubah menjadi opini vs opini, yang bukan wilayah bot.

Pertanyaan yang sering diajukan

Sport apa yang volume-nya paling besar di Polymarket?
Bervariasi حسب musim. NFL memimpin pada hari game Minggu. NBA (verified tag_id 745) memimpin selama weeknights regular season. Soccer (tanpa satu tag tunggal) memimpin selama minggu Champions League dan World Cup. Tennis (verified tag_id 864) melonjak selama dua pekan Grand Slam. Bot multi-sport mendapat manfaat dari rotasi yang konstan.
Market sports pre-game atau in-game mana yang lebih menguntungkan?
Pre-game: lebih mudah dipricing (lebih banyak waktu untuk riset, noise in-game lebih kecil), tetapi spread lebih ketat dan bersaing dengan sportsbook odds. In-game: lebih sulit, memerlukan real-time data, tetapi mispricing lebih besar saat swing emosi (setelah touchdown, setelah missed shot).
Di mana saya mendapatkan live sports data yang cukup cepat untuk bot?
Endpoint JSON tidak resmi ESPN.com untuk major US sports. The-odds-api.com mengagregasi banyak bookmaker tetapi dengan rate limits. Sofascore.com punya soccer + tennis. Untuk data sub-1 detik: paid feed dari Sportradar atau BetGenius berskala profesional tetapi mahal. Kebanyakan retail bot bertahan dengan ESPN + Twitter beat reporters.
Apakah saya harus percaya Twitter beat-reporter untuk live news?
Sebagian besar ya, dengan catatan. Beat reporter memecahkan berita injury/lineup lebih cepat daripada ESPN. Tetapi rate limits Twitter dan suspension akun menciptakan celah reliabilitas. Praktik terbaik: subscribe ke 5-10 akun reporter, deduplicate, dan minta 2 sumber sebelum trigger pada injury.
Bagaimana perbandingan Polymarket sports dengan sportsbook tradisional?
Tidak ada vig (vs ~5-10% di FanDuel/DraftKings) tetapi liquidity lebih tipis dan spread lebih lebar pada market kecil. Untuk NFL/NBA mainstream, sportsbook tradisional biasanya punya fill quality yang lebih baik. Untuk niche sports (cricket, rugby, esports), Polymarket sering punya edge karena sportsbook tradisional memberi harga terlalu rendah.
Bisakah saya menjalankan bot sports + crypto + politics secara bersamaan?
Ya, dan itu bagus untuk portfolio construction. Sports, politics, dan crypto punya korelasi rendah - melakukan diversifikasi di antaranya membantu menghaluskan variance PnL harian. Catatan: tiap strategy membutuhkan risk budget sendiri, bukan budget bersama.