Polymarket Bot Tutorial · บทที่ 25 จาก 32

บอทตลาดกีฬาใน Polymarket: เกม NFL รายสัปดาห์, microstructure ของแท็ก NBA (745), ฟุตบอล (Premier League, Bundesliga, Champions League), เทนนิส (864) - liquidity, แหล่งที่มาของ edge, รูปแบบโค้ด.

บทนี้ครอบคลุมอะไร

NFL, NBA, Soccer และ Tennis คือหมวดกีฬาที่มีปริมาณซื้อขายสูงที่สุดของ Polymarket แต่ละหมวดมีแหล่งข้อมูล, ความถี่, และลักษณะของ edge ที่ต่างกัน บทนี้จะครอบคลุมรูปแบบบอทเฉพาะของแต่ละลีก และ tag IDs ที่คุณจะใช้กรอง

  • NFL: จังหวะรายสัปดาห์, liquidity สูงสุดวันอาทิตย์
  • NBA (tag 745): in-game microstructure
  • Soccer: ลีกนานาชาติ vs ลีกสโมสร
  • Tennis (tag 864): จังหวะของทัวร์นาเมนต์
  • แหล่งของ edge ที่ยังอยู่รอด
  • ข้อมูลสด: ESPN, official APIs
  • ตัวอย่างบอท: pre-game line catcher

NFL: จังหวะรายสัปดาห์, liquidity สูงสุดวันอาทิตย์

NFL มีจังหวะรายสัปดาห์ที่ชัดที่สุดในบรรดากีฬาบน Polymarket ตลาดจะเปิดวันอังคารหลังเกมของสัปดาห์ก่อน, line-shop เกิดวันพุธถึงศุกร์, ปริมาณเดิมพันพุ่งสูงสุดวันเสาร์ถึงอาทิตย์ โดยทั่วไปการตัดสินผลจะเกิดคืนวันอาทิตย์สำหรับเกมช่วงต้น และคืนวันจันทร์สำหรับเกมดึก

รูปแบบบอท: line-catcher วันอังคารถึงพุธเมื่อ opening line ถูกตั้ง, in-play วันอาทิตย์ระหว่างช่วงที่ volume สูงสุด ใช้บอทคนละตัวสำหรับแต่ละช่วงเวลา เกม Monday Night Football มักมี volume บางกว่าเกมอื่น-ระวัง slippage risk ที่สูงกว่าสำหรับการเข้า size เล็ก

จุดพีคของ volume คือ Super Bowl: มีการเทรดมากกว่า $50M รวมทุกตลาดของ SB ในสัปดาห์ของเกม แม้บอท $100 ในสัปดาห์นั้นก็แทบไม่มีนัย ตลาดมีประสิทธิภาพในสเกลนั้น

NBA (tag 745): in-game microstructure

NBA คือกีฬาที่มีความถี่สูงที่สุดบน Polymarket-25-30 เกมต่อสัปดาห์ในช่วง regular season, 5-15 เกมในช่วง playoffs Tag ID 745 ใช้กรองเฉพาะอีเวนต์ NBA

in-game microstructure ใช้ได้กับ NBA เพราะ: (1) ESPN อัปเดต scoreboards ทุก ~10 วินาที, (2) เกมกินเวลาราว 2.5 ชั่วโมงของ action ต่อเนื่อง, (3) order book ของเกมใหญ่ยังคงลึกตลอดจนถึงควอเตอร์ 4

กลยุทธ์ที่ได้ผล: subscribe ทั้ง WS book ของเกม + ESPN feed แล้วตอบสนองต่อ imbalance + score events ภายใน 10-15 วินาที กลยุทธ์ที่ไม่ได้ผล: pre-game line catching (มีประสิทธิภาพมากพอจนรายย่อยแทบจับไม่ได้), late-game certainty arbitrage (ดินแดน 0.99-trap)

Soccer: ลีกนานาชาติ vs ลีกสโมสร

Soccer แบ่งคร่าว ๆ บน Polymarket ออกเป็นสามระดับ

  • ลีกยุโรประดับท็อป (EPL tag 739, La Liga, Bundesliga, Serie A)-volume ปานกลาง, books ลึกในแมตช์ใหญ่ กลยุทธ์บอทคล้าย NBA
  • Champions League / Europa League (UCL tag 2186)-volume พุ่งในรอบน็อกเอาต์ books ลึกที่สุดตั้งแต่รอบ 16 ทีมเป็นต้นไป
  • ลีกนานาชาติ / ลีกเล็กกว่า (Saudi Pro League, MLS, J-League)-books บาง, spreads กว้าง โดยทั่วไปไม่ใช่พื้นที่ของบอท

การทำประตูของ soccer ที่เป็นแบบ discrete (0-1 goals คือเหตุการณ์ใหญ่) ทำให้ต่างจาก NBA ที่ไหลต่อเนื่อง รูปแบบบอทของ soccer คือ: อยู่ฝั่งที่ถูกก่อนจะมีประตู และออกเร็วหลังจากประตูเกิด

Tennis (tag 864): จังหวะของทัวร์นาเมนต์

Tennis tag 864 ATP และ WTA ทัวร์ตลอด 11 เดือนของปี โดยมี Grand Slams ในเดือน Jan (Australian Open), May-Jun (French Open), Jul (Wimbledon), และ Aug-Sep (US Open) volume จะกระจุกตัวในสี่สัปดาห์นั้น รวมถึง Masters 1000 series

Tennis มี price ladder ในเกมที่ชัดเจนที่สุดในบรรดากีฬาใด ๆ (chapter 15) ราคาในระหว่างแมตช์จะเคลื่อนไปตามเส้นโค้งที่คาดเดาได้ โดยยึดตาม state ของ set และ break บอทที่มี model price ladder เฉพาะ tennis สามารถจับ mispricing ได้แบบ real time

ช่วงเงียบ: ระหว่าง Grand Slams, สัปดาห์ที่มีแค่ ATP 250 / ATP 500 books จะบางมาก ให้หยุดบอทหรือสลับไปกีฬาอื่นในช่วงนี้

แหล่งของ edge ที่ยังอยู่รอด

ในทั้งสี่กีฬา edge ที่อยู่รอดได้ในระยะยาวคือ:

  • pre-game line shop เทียบกับตัวเลขจาก venue ที่ sharp กว่า (Pinnacle, Betfair) เมื่อ Polymarket ไม่ตรงกับ sharp book มากกว่า > 3c ให้ fade Polymarket
  • in-play overreaction ต่อเพลย์เดียว (interception, injury, momentum shift) รอ 30-60 วินาทีหลังเพลย์ แล้ว fade ถ้าตลาด overshot
  • late-game heavy favorites ที่ 0.85-0.92 พร้อมการบริหารขนาดการลงทุนอย่างมีความเสี่ยงต่ำกว่า 0.85 = risk จริง; สูงกว่า 0.92 = 0.99 trap

edge ที่ไม่อยู่รอด: pure technical analysis บนราคา, sentiment scraping จาก Twitter, seasonal effects ตามปฏิทิน

ข้อมูลสด: ESPN, official APIs

ตารางแหล่งข้อมูลสำหรับสี่กีฬา

กีฬาหลักสำรองความถี่การอัปเดต
NFLESPN scoreboardNFL.com feed~10s ระหว่างเกม
NBAESPN scoreboardstats.nba.com~10s ระหว่างเกม
Soccer (EPL/UCL)ESPN scoreboardSofaScore~15-30s
Tennis (ATP/WTA)ESPN scoreboardtennis.com live~30s (ระดับ point)

ESPN ใช้ฟรีและเชื่อถือได้สำหรับทั้งสี่กีฬา สำหรับการอัปเดตที่เร็วกว่า 10 วินาที ให้จ่ายซื้อ feed เฉพาะทาง (StatsPerform, GeniusSports)-แต่การลด latency เพิ่มเติมมักไม่คุ้มค่าใช้จ่ายสำหรับรายย่อย

ตัวอย่างบอท: pre-game line catcher

อ้างอิง: 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)

ข้อควรระวัง: APIs ของ Pinnacle / Betfair ต้องมีบัญชี; ไม่ฟรี หากไม่มี sharp reference การ line-catching ก็จะเหลือแค่ opinion เทียบกับ opinion ซึ่งไม่ใช่พื้นที่ของบอท

คำถามที่พบบ่อย

กีฬาประเภทไหนมี volume มากที่สุดบน Polymarket?
ขึ้นอยู่กับฤดูกาล NFL นำในวันแข่งวันอาทิตย์ NBA (verified tag_id 745) นำในคืนวันธรรมดาระหว่าง regular season Soccer (ไม่มีแท็กเดียว) นำในช่วง Champions League และ World Cup Tennis (verified tag_id 864) พุ่งสูงในช่วง Grand Slam แบบสองสัปดาห์ บอทหลายกีฬาจะได้ประโยชน์จากการสลับหมุนเวียนตลอดเวลา
ตลาดกีฬาแบบ pre-game หรือ in-game ทำกำไรมากกว่ากัน?
Pre-game: ตั้งราคาได้ง่ายกว่า (มีเวลาศึกษามากขึ้น, noise ระหว่างเกมน้อยกว่า) แต่ spreads แคบกว่าและแข่งขันกับ sportsbook odds อย่างหนัก In-game: ยากกว่า, ต้องใช้ข้อมูลแบบ real-time, แต่มี mispricing มากขึ้นในช่วงอารมณ์เหวี่ยง (หลัง touchdown, หลังช็อตพลาด)
ผมหรือฉันจะหาข้อมูลกีฬาสดที่เร็วพอสำหรับบอทได้จากที่ไหน?
ESPN.com unofficial JSON endpoints สำหรับกีฬาหลักในสหรัฐฯ The-odds-api.com รวบรวมหลาย bookmaker แต่มี rate limits SofaScore.com มีทั้ง soccer + tennis สำหรับข้อมูลระดับต่ำกว่า 1 วินาที: paid feeds จาก Sportradar หรือ BetGenius เป็นระดับมืออาชีพแต่ราคาแพง บอทรายย่อยส่วนใหญ่ยังใช้งานได้ด้วย ESPN + Twitter beat reporters
ควรเชื่อ Twitter ของ beat-reporter สำหรับข่าวสดไหม?
ส่วนใหญ่ควรเชื่อ แต่มีข้อควรระวัง Beat reporters มักรายงาน injury/lineups ได้เร็วกว่ ESPN แต่ rate limits และการ suspend account ของ Twitter ทำให้มีช่องโหว่ด้านความน่าเชื่อถือ แนวปฏิบัติที่ดี: ติดตามบัญชี reporter 5-10 บัญชี, deduplicate, และต้องมี 2 แหล่งก่อน trigger เรื่อง injury
Polymarket sports เทียบกับ traditional sportsbooks เป็นอย่างไร?
ไม่มี vig (เทียบกับ ~5-10% ที่ FanDuel/DraftKings) แต่ liquidity บางกว่าและ spreads กว้างกว่าสำหรับตลาดเล็ก ๆ สำหรับ NFL/NBA กระแสหลัก โดยทั่วไป books ดั้งเดิมมีคุณภาพการ fill ดีกว่า สำหรับกีฬากลุ่ม niche (cricket, rugby, esports) Polymarket มักได้เปรียบเพราะ books ดั้งเดิมตั้งราคาต่ำเกินไป
ผมสามารถรันบอทกีฬา + crypto + politics พร้อมกันได้ไหม?
ได้ และเป็นการจัดพอร์ตที่ดี Sports, politics, และ crypto มี correlation ต่ำ - การกระจายไปหลายกลุ่มช่วยให้ความผันผวนของ PnL รายวันเรียบขึ้น ข้อควรระวัง: แต่ละกลยุทธ์ต้องมี risk budget ของตัวเอง ไม่ใช่ใช้ร่วมกัน