Polymarket Bot 教程 · 第 25 章,共 32 章

Polymarket 上的体育市场 bots:NFL 每周比赛、NBA tag (745) 微观结构、soccer(Premier League、Bundesliga、Champions League)、tennis (864)-流动性、edge 来源、代码模式。

本章涵盖内容

NFL、NBA、Soccer 和 Tennis 是 Polymarket 按类别划分后体育交易量最大的板块。每个板块都有自己的数据可用性、节奏和 edge 特征。本章将介绍各联赛特定的 bot 模式,以及你需要筛选的 tag ID。

  • NFL:每周节奏,周日流动性峰值
  • NBA(tag 745):比赛中微观结构
  • Soccer:国际赛事 vs 俱乐部联赛
  • Tennis(tag 864):赛事节奏
  • 仍然有效的 edge 来源
  • 实时数据:ESPN、官方 APIs
  • 示例 bot:赛前盘口捕捉器

NFL:每周节奏,周日流动性峰值

NFL 拥有 Polymarket 所有体育项目中最强的周度节奏。市场通常在前一周比赛结束后的周二开放,周三到周五进行盘口比价,投注量在周六到周日达到峰值。结算通常是周日夜间的早场比赛,晚场则在周一夜间结算。

bot 模式:周二到周三开盘线确定时做 line-catcher,周日流动性峰值期间做 in-play。不同时间窗口使用不同 bots。Monday Night Football 的市场通常比其他比赛更薄-要注意,小仓位进场时滑点风险更高。

交易量峰值是 Super Bowl:比赛周内所有 SB 市场累计交易额超过 5000 万美元。即使那一周有一个 100 美元的 bot,也只是无关噪音;在那个规模下市场是有效的。

NBA(tag 745):比赛中微观结构

NBA 是 Polymarket 上频率最高的体育项目-常规赛期间每周 25-30 场,季后赛期间 5-15 场。tag ID 745 用于筛选仅 NBA 相关事件。

NBA 的比赛中微观结构之所以有效,是因为:(1) ESPN 每约 10 秒更新一次记分牌,(2) 每场比赛有 2.5 小时连续进行的动作,(3) 主要比赛在第四节期间 Polymarket order book 仍保持较深深度。

有效的策略是:订阅某场比赛的 WS book + ESPN feed,在 10-15 秒内对失衡和得分事件做出反应。无效的策略包括:赛前 line-catching(市场已经足够有效,散户很难抓到太多机会),以及比赛末段的确定性套利(会落入 0.99 trap 区域)。

Soccer:国际赛事 vs 俱乐部联赛

Soccer 在 Polymarket 上大致分为三个层级。

  • 欧洲顶级联赛(EPL tag 739、La Liga、Bundesliga、Serie A)-交易量中等,重要比赛的 order book 较深。bot 策略与 NBA 类似。
  • Champions League / Europa League(UCL tag 2186)-淘汰赛阶段交易量达到峰值。从 16 强开始,order book 最深。
  • 国际赛事 / 小型联赛(Saudi Pro League、MLS、J-League)-order book 薄,价差大。通常不属于 bot 交易的理想范围。

Soccer 的离散得分特性(0-1 个进球就是重大事件)使它与 NBA 的连续流不同。Soccer 的 bot 模式是:在进球前站对方向,进球发生后快速退出。

Tennis(tag 864):赛事节奏

Tennis tag 864。ATP 和 WTA 巡回赛全年打 11 个月,四大 Grand Slam 分别在 1 月(Australian Open)、5-6 月(French Open)、7 月(Wimbledon)和 8-9 月(US Open)。交易量主要集中在这四个时段以及 Masters 1000 系列赛。

Tennis 拥有所有体育项目中最清晰的 in-play price ladders(见第 15 章)。比赛中期价格会沿着由 set 和 break 状态决定的可预测曲线变化。一个带有 tennis 专用 price ladder 模型的 bot 可以实时识别错误定价。

安静窗口:Grand Slams 之间,以及只有 ATP 250 / ATP 500 赛事的周,order book 都非常薄。在这些时间暂停 bot,或切换到其他体育项目。

仍然有效的 edge 来源

在这四项体育中,长期仍然有效的 edge 有:

  • 赛前盘口比价:对比更锋利的交易场所的盘口(Pinnacle、Betfair)。当 Polymarket 与 sharp book 的差异超过 3c 时,做空 Polymarket。
  • 比赛中对单个 play 的过度反应(抄截、伤病、 momentum 变化)。在 play 发生后等待 30-60 秒,如果市场反应过头就逆向。
  • 比赛末段 0.85-0.92 的重磅热门方,配合风险管理仓位。低于 0.85 = 真风险;高于 0.92 = 0.99 trap。

不再有效的 edge:纯技术分析价格、从 Twitter 抓取情绪、基于日历的季节性效应。

实时数据:ESPN、官方 APIs

四项体育的数据源矩阵如下。

SportPrimaryBackupUpdate cadence
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-level)

ESPN 对这四项都免费且可靠。如果需要低于 10 秒的更新,付费订阅专门 feed(StatsPerform、GeniusSports)-但对散户来说,边际延迟改善通常不值得这个成本。

示例 bot:赛前盘口捕捉器

参考:赛前 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)

注意:Pinnacle / Betfair APIs 需要账号;并非免费。没有 sharp 参考时,line-catching 会退化成观点对观点,这不属于 bot 交易的范畴。

常见问题

Polymarket 上哪个体育项目交易量最大?
会随季节变化。NFL 在周日比赛日领先。NBA(已验证 tag_id 745)在常规赛工作日夜晚领先。Soccer(没有单一 tag)在 Champions League 周和 World Cup 期间领先。Tennis(已验证 tag_id 864)在 Grand Slam 双周期间会激增。多体育 bot 能从这种持续轮换中受益。
赛前市场和比赛中市场,哪个更赚钱?
赛前:更容易定价(有更多研究时间,比赛中噪音的方差更小),但价差更紧,而且要和 sportsbook odds 竞争。比赛中:更难,需要实时数据,但在情绪波动时(达阵后、投篮不中后)会出现更大的错误定价。
我在哪里能获得足够快的实时体育数据给 bot 用?
ESPN.com 的非官方 JSON endpoints 适用于主要美国体育项目。the-odds-api.com 会聚合多个博彩公司,但有 rate limit。Sofascore.com 覆盖 soccer + tennis。对于低于 1 秒的数据:Sportradar 或 BetGenius 的付费 feed 属于专业级,但很贵。大多数散户 bot 依靠 ESPN + Twitter beat reporters 就能运作。
我应该信任 beat-reporter 的 Twitter 来获取实时新闻吗?
总体上可以,但有 caveats。beat reporters 发布伤病/首发阵容的速度通常比 ESPN 更快。但 Twitter rate limits 和账号封禁会带来可靠性缺口。最佳实践:订阅 5-10 个 reporter 账号,去重,并在触发伤病交易前要求至少 2 个来源确认。
Polymarket 体育和传统 sportsbook 相比如何?
没有 vig(而 FanDuel/DraftKings 通常约 5-10%),但流动性更薄,小市场的价差更宽。对于主流 NFL/NBA,传统 books 通常有更好的成交质量。对于小众体育(cricket、rugby、esports),Polymarket 往往更有 edge,因为传统 books 对它们定价不足。
我可以同时运行 sports + crypto + politics bots 吗?
可以,而且这是很好的 portfolio construction。sports、politics 和 crypto 的相关性都很低-分散到它们之间可以平滑每日 PnL 方差。注意:每个策略都需要自己的风险预算,而不是共用一个。