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

Polymarket 上的统计套利:跨市场配对(相关事件)、Polymarket 与 Kalshi 价差、均值回归,以及当市场最终结算时如何控制 stat-arb 仓位大小。

本章内容

Polymarket 上的统计套利利用相关市场之间的短暂错误定价-例如 Polymarket 与 Kalshi 的同一事件,或 Polymarket 内部的相关市场。可捕捉的边际很小(通常 1-3 美分),而且在执行上非常脆弱。本章会坦诚说明哪些方法有效、哪些无效,以及那些会让大多数尝试失败的多腿执行风险。

跨市场统计套利利用 Polymarket 与 Kalshi、Polymarket 与 Manifold,或 Polymarket 内部相关市场之间的短暂定价不一致。可捕捉的边际很小(通常 1-3 美分),并且要求两条腿都快速执行。本章是一份诚实的实战手册,也包含了会让大多数尝试失败的操作复杂性。

  • stat-arb 在 prediction markets 中意味着什么
  • Polymarket-vs-Kalshi 价差示例
  • Polymarket 内部的配对(相关事件)
  • 均值回归 vs 趋势延续
  • 如何给会结算的(非永续)市场控制仓位大小
  • 风险:延续到结算之后的背离
  • 代码:配对监控与阈值触发

stat-arb 在 prediction markets 中意味着什么

prediction markets 中的 statistical arbitrage,指的是交易两个本应以一致价格定价的市场之间的价差。Polymarket 上最常见的有三种形式。

  • 跨交易所:Polymarket 和 Kalshi(或 Manifold、PredictIt)上的同一事件。价格应当收敛;但在实际中通常会偏离 2-5 美分。
  • 同事件配对NegRisk 多结果市场里,母市场与各个腿的总和之间的关系。总和应满足 = 1 的不变式,因此当各腿之和小于 1.0 时就可能套利。
  • 相关事件配对:两个关于相关结果的市场(例如“Trump 在 1 月 1 日时仍是 president”与“Trump 在 3 月 1 日时仍是 president”)。它们的价格通常应相差不超过 2-3 美分。

边际很小。操作复杂性是真实存在的。大多数尝试失败在执行上,而不是理论上。

Polymarket-vs-Kalshi 价差示例

根据 2025-26 年的观察,Polymarket 和 Kalshi 会挂出同样的美国重大事件,但长期来看价格通常会相差 1-4 美分。这种差距有结构性原因,而任何套利模型都必须把这些因素纳入计算。

结构性驱动因素:

  • 费用不对称:Kalshi 会对盈利交易收取 4-7% 的费用(因市场而异);Polymarket 的 taker fee 为 0。套利计算必须扣除 Kalshi 的抽成。
  • 结算风险溢价:当某个市场的 resolution 存在歧义时,一个交易所的 UMA 可能会和另一个交易所的 judge 给出不同结果。市场会把这一点计入价格。
  • 交易者结构:Polymarket 的用户通常更年轻、更 crypto-native;Kalshi 的用户更偏专业 / hedge。它们对同一事件的看法经常系统性不同。

当价差超过结构性溢价加费用时,套利才成立。某个市场若结构性溢价是 1c、合并费用是 1c,那么 5c 的价差就意味着 3c 的真实边际。

Polymarket 内部的配对(相关事件)

在 Polymarket 内部,相关事件配对比跨交易所套利更容易。费用结构相同、钱包相同,而且可以实现原子化执行。

长期会出现定价不一致的例子:

  • Trump 在 date A 时仍是 president vs Trump 在 date B 时仍是 president(其中 B 比 A 晚 < 90 天)。
  • Bitcoin 是否会在 July 31 前达到 $100k vs 是否会在 August 31 前达到 $100k。
  • 同一个二元市场里的 Yes 与 No 腿(总和应等于 1.0;但在薄书中有时会偏离到 1.04 左右)。

Yes+No=1 的套利最干净:从同一个市场读取两条腿,如果总和跌破 0.97,就对两条腿同时下 FOK(给点 spread tax 缓冲)。所需资金在两条腿上大致相等;当两边的成交回执同时返回时,执行就是原子化的。

均值回归 vs 趋势延续

有两种 stat-arb 状态:均值回归-配对因噪音而偏离,你预期其重新收敛;趋势延续-配对因为新信息到来而开始分化,你预期其继续分化。

区分它们才是难点。经验法则:如果背离发生在可见成交量上(某个 whale 把一条腿的订单簿打穿了),那就是 news-除非你有模型,否则不要逆势。若它是在低成交量下缓慢漂移,那就是噪音-可以更有把握地做均值回归。

对新手 builder 来说:只做均值回归,并且只在历史漂移的标准差 < 1 的配对上交易。趋势延续需要一个能捕捉 news 的模型;没有模型时,你就是在和 informed flow 博弈。

如何给会结算的(非永续)市场控制仓位大小

prediction markets 会结算,但 crypto pairs 不会。这改变了数学模型。

Polymarket 上的配对套利仓位有固定的 payout schedule:当两个市场都结算后,预测价差与实际价差之间的差异就被锁定了。这里不存在 rolling,也没有无限持有。

这对仓位大小的含义是:你能持有的最大规模受限于到结算的时间,因为资本会一直被锁住直到那一刻。一个 6 个月后结算的配对也许每股能赚你 3c,但如果两边都已经完全建仓,在此期间你就无法把更多资本投入进去。

正确的理解方式是:Polymarket 上的 stat-arb 是一系列有时间边界的交易,而不是连续策略。应该比较单位锁定资本、每天的 PnL,而不是总 PnL。

风险:延续到结算之后的背离

最糟糕的 stat-arb 结果,是你对“收敛”的预测本身就是错的,因为底层前提错了。比如:

  • 你做空 “Trump 在 Apr 1 时还是 president”,以为它会收敛到 “Trump 在 Mar 1 时还是 president”-但 date 1 市场结算为 YES,而 date 2 因为 3 月发生弹劾而结算为 NO。你“价差应该持平”的论点是错的。
  • 你在 Polymarket 和 Kalshi 上对同一个 NBA Finals winner 做套利。Polymarket 按官方系列赛胜者结算;Kalshi 却按一个略有不同的定义结算,对 overtime tie-breakers 的处理也不同。两边都按各自条款结算为 YES,但方向相反。

务必仔细阅读每个市场的 resolution criteria。跨交易所套利只要碰到一次结算规则不一致,就可能两条腿都全损。

代码:配对监控与阈值触发

参考实现:监控两个相关 token,当价差跨过阈值时触发套利。

def pairs_monitor(token_a, token_b, threshold_cents=3, size=10):
    """Buy A and Sell B when (1 - ask_A) + bid_B > 1 + threshold."""
    while True:
        book_a = fetch_book(token_a)
        book_b = fetch_book(token_b)
        if not (book_a.best_ask and book_b.best_bid):
            time.sleep(2); continue
        # implied: cost of buying A at ask + value of selling B at bid
        edge = (1 - book_a.best_ask) + book_b.best_bid - 1
        if edge > threshold_cents / 100:
            print(f"ARB edge={edge:.3f}; firing")
            r_a = fok_buy(token_a, price=book_a.best_ask, size=size)
            if r_a.status != "matched": continue
            r_b = fok_sell(token_b, price=book_b.best_bid, size=size)
            if r_b.status != "matched":
                # leg A filled, B failed -- unhedged, exit A
                fok_sell(token_a, price=book_a.best_bid, size=size)
        time.sleep(3)

partial fill 后的清理非常关键。如果没有这一步,部分成交会让 bot 暴露方向性风险,这与 stat-arb 的初衷完全相反。

常见问题

我可以在 Polymarket 和 Kalshi 之间做套利吗?
可以,只要同一个事件同时在两边交易。由于监管差异、费用结构和用户群差异,这两个交易所之间通常会长期存在 2-5 美分的价差。注意:Kalshi 仅限美国用户并且需要 KYC,所以你需要在两边都开账户-设置方法请查看我们的 /guide/polymarket-vs-kalshi/。这种价差套利是真实存在的,但操作负担很重。
在 Polymarket 语境下,pairs trade 是什么?
指两个相关市场,其价格比值会均值回归。比如 “Trump wins 2028” 和 “Republicans win 2028 House”-如果 Trump 这条突然上涨 5%,但 House 那条没动,bot 就会买入 House、卖出 Trump(或者反过来),假设这个比值会回归。边际很小,但在流动性好的政治市场里通常比较稳定。
当两个市场都会结算时,stat-arb 仓位该如何控制大小?
按你预期的最大背离来定仓位-如果你的模型认为价差在回归前最多还能扩大 8 美分,那就把仓位设到 8 美分继续扩大时不会超过你的亏损上限。把每一对配对都当作独立交易,并设定硬性亏损上限。把 stat-arb 当成“免费钱”的做法,往往就是账户爆掉的开始。
Polymarket-Kalshi 的套利是持续存在的吗?
是的,但随着更多 bot 发现它,这个机会正在缩小。到 2026 年,我们仍会在流动性好的政治市场看到 1-3 美分的价差持续数小时。体育市场的价差更窄。尾部市场(低成交量)会出现更宽的价差,但通常没有交易价值。
如果两个市场一直背离到结算会怎样?
配对交易的最终 PnL 会完全由实际结果决定-这也是 prediction markets 上的 pairs trading 本质上是有边界的(不同于 perpetuals,背离可以无限扩大)。配对交易的净亏损上限,是入场时的价格差,而不是无限大。
有哪些工具可以帮助发现 Polymarket 的 pairs?
从活跃市场的 correlation matrix 开始。用 gamma+CLOB 拉取的 30 天价格历史构建它。寻找历史上 rho > 0.7,但当前相对其典型比率出现错价的配对。每周更新一次矩阵-相关性会衰减。