Skip to content
survivorff's blog
Go back

跨平台价差不等于套利:预测市场聚合器的价格归一化

10 min read

聚合器做出来第一版,最兴奋的时刻是看到这样的画面:

事件:BTC 是否在 2026-09-30 前突破 $120,000
  Polymarket   YES  0.62
  predict.fun  YES  0.58
                    ────
              价差   0.04

4 个点。在 predict.fun 买 YES、在 Polymarket 卖 YES,锁死 4% 的无风险收益?

绝大多数时候,不是。

这篇把这 4 个点是怎么被一层层吃掉的拆开讲。结论提前说:名义价差是幻觉,可执行价差才是生意。 而在预测市场这个特定场景里,“可执行”这三个字比在普通 DEX 套利里复杂得多。

前两篇:事件对齐(怎么确认这两个市场说的是同一件事)、adapter 陷阱(怎么在两条链上安全下单)。这篇假设这两件事都已经做对了。


第 0 层:先确认你比的是同一个方向

在算钱之前,有一个纯技术性的坑要先跨过去。

因为 1 YES + 1 NO = $1 这条恒等式,每个市场的订单簿都是镜像的:

买 YES @ 0.62  ≡  卖 NO @ 0.38
卖 YES @ 0.65  ≡  买 NO @ 0.35

所以两个平台之间,你其实有四个方向要看,而不是两个:

组合含义
A 买 YES / B 卖 YES直觉上的跨平台价差
A 买 YES / B 买 NO两边都做多不同方向 → 合成对冲
A 卖 YES / B 卖 NO两边都做空
A 买 NO / B 卖 NONO 侧的价差

第 2 行特别值得注意:如果在 A 平台买 YES 的价格 + 在 B 平台买 NO 的价格 < $1,你就锁定了一个无风险收益(因为结算时必有一边赔付 $1)。这是预测市场跨平台套利最干净的形式,比”同向对冲”更好,因为它不需要借券、不需要卖空。

所以归一化的第一步不是比价,是把两个平台的订单簿都展开成统一的四向视图。只看 YES 的报价对比,你会漏掉一半机会。


第 1 层:Best price 是骗人的,你要的是深度

这一层是所有交易系统的通病,但在预测市场里更明显。

界面上的 0.62最优挂单价。它背后可能只有 200 份的量。而你想做 5000 份。

predict.fun YES 卖盘:
  0.58 × 300
  0.59 × 500
  0.61 × 1200
  0.64 × 3000     ← 你的第 5000 份成交在这里
  ────────────────
  加权均价 ≈ 0.622

原本的 0.58 变成了 0.622。而另一边 Polymarket 的卖出也会同样吃深度。4 个点的价差,在你真正想做的量上,可能已经归零甚至反向。

所以聚合器的比价引擎必须:

一个实用的做法是提供”给定金额,最优执行路径”的查询,而不是给一个价格数字。因为对用户真正有意义的问题是”我要花 $1000,在哪买、能买到多少份”,不是”现在报价多少”。

顺带一个预测市场特有的观察:这个赛道的流动性分布极不均匀。头部事件(大选、大赛事)两边都很厚;长尾事件可能一边有几万美元深度,另一边只有几百。所以价差最大的地方,往往正是深度最差的地方——这不是巧合,是因果。


第 2 层:两个平台的手续费不是同一种东西

这是我在上一篇提到、但值得在这里展开的一点。

两个平台的费用在语义上就不对齐

一个 feeRate 数字表达不了这件事,原因有三:

  1. 收取时点不同:一个在成交时,一个在结算时
  2. 计费基数不同:一个基于成交额,一个基于净利润
  3. 符号可能相反:持仓收益是负成本

第 2 点尤其反直觉。“对净利润抽成”意味着:如果这笔交易最终亏钱,这部分费用是 0。 所以它不是一个可以提前从价差里扣掉的固定成本,而是一个依赖最终结果的条件成本

这直接影响你怎么算套利:如果你构造的是一个真正无风险的对冲(两边合起来必有一边赔付 $1),那你需要分别算清楚赢的那一边要交多少利润抽成,而不是对总额套一个平均费率。


第 3 层:时间价值——被大多数人漏掉的一项

这是我认为预测市场跨平台定价里最独特、也最容易算错的一项。

predict.fun 的核心差异化是收益型抵押品:你下注的资金在持仓未结算期间会被路由去生息,而不是像传统预测市场那样闲置。(Polymarket 侧则是纯闲置,你付的是机会成本。)

这件事对套利定价的影响是结构性的:

同样的名义价差,持有到结算的时间越长,两个平台的实际成本差异就越大。

举个纯示意的例子(数字只为说明结构):

名义价差:            +4.0%
减:两边手续费/滑点     -2.0%
减:Gas + 资金搬运      -0.5%
──────────────────────────
表面可执行价差         +1.5%

如果这笔仓位要持有 6 个月到结算:
加:predict.fun 侧持仓期收益   +?%
减:Polymarket 侧资金机会成本   -?%

最后两项的大小完全取决于持有期长度当期收益率。这意味着:

所以”跨平台价差”这个指标如果不带上持有期,是没有意义的。 我的做法是把它建模成年化:

// 不要问「价差多少」,要问「年化可执行收益多少」
annualizedEdge =
  (executableSpread + holdingYieldDiff) / daysToResolve * 365

这个视角一换,很多东西就清楚了:一个持有 6 个月才结算的 1.5% 价差,年化只有 3%——扣掉资金占用和尾部风险后,很可能不值得做。而一个 3 天结算的 1.5% 价差,年化超过 180%。

名义价差大的机会往往是长周期的(因为长周期市场定价更松散、流动性更差),而它恰恰是年化最差的。 这是我在这个赛道里最反直觉的一课。


第 4 层:结算时间不对称,套利不是瞬时闭合

前面几层还只是”算得准不准”。这一层是风险

两个平台的结算路径不同(我在整理资料时注意到的结构性差异):

对聚合器意味着一件很具体的事:

你以为的”锁死无风险”,在结算阶段可能变成一段单边敞口。

具体场景:

  1. 事件结果实际已经明确
  2. predict.fun 侧自动结算完成,资金释放
  3. Polymarket 侧还在争议窗口里,甚至进入了争议投票
  4. 这段时间里,你的资金一边已回笼、一边还锁着

更糟的尾部情况:两边最终判定结果不一致。 这在正常情况下不会发生,但如果两个市场的结算数据源本来就不同(回到第一篇的问题),或者一边发生了争议改判——你那个”无风险对冲”就变成了两边都亏。

所以套利模型里必须显式包含:

说明
资金占用期较慢的那一边算,不是按平均
争议风险乐观预言机侧有非零概率进入长争议
判定不一致风险结算数据源不同时不可忽略
提前退出成本想在结算前平掉,要付订单簿的价差

这也是为什么第一篇里我坚持”置信度必须卡住操作权限”:如果事件对齐的置信度不是”高”,就根本不该允许跨平台对冲——因为你对冲的可能不是同一个风险。


把它拼起来:可执行价差的完整式子

我最后落地的模型,大致是这个形状(示意,不是可以直接用的公式):

可执行年化收益 =
  (
      名义价差(按目标数量的加权成交价算,四向取最优)
    − 两边 taker 成本 / 滑点
    − 赢方的结算利润抽成
    − Gas(两条链)
    − 资金搬运成本(跨链 / 出入金)
    + 持仓期收益差(predict.fun 侧生息 − Polymarket 侧机会成本)
  )
  ÷ 到结算的天数 × 365
  × 置信度折扣(事件对齐置信度 + 争议概率)

最后那个”置信度折扣”是我加的,也是我觉得最重要的一项。它把工程上的不确定性显式地定价进了收益里——而不是假装它不存在。


几条落地经验

  1. 不要展示”价差”,展示”给定金额的最优执行”。 用户要的是”我花 $1000 该在哪买”,不是一个报价对比
  2. 把持有期放进 UI。 一个 4% 的价差旁边如果不写”9 个月后结算”,就是在误导
  3. 四向都要算。 “A 买 YES + B 买 NO < $1” 是最干净的套利形式,只比 YES 会漏掉它
  4. 年化是唯一可比的口径。 不同结算周期的机会不能直接比绝对价差
  5. 价差最大的地方深度最差,这是结构性的,不要指望
  6. 短周期市场才是价差生意的主场。 时间价值项小、资金周转快、结算风险窗口短
  7. 把不确定性折价,不要把它藏起来。 这是我从交易所那些年学到的最有用的一条:金融系统里,宁可保守到错过,不要乐观到错账

小结

聚合器最容易做出来的功能是”并排展示两个价格”,最容易给用户造成的伤害也是它——因为一个不带深度、不带手续费、不带持有期、不带结算风险的价差数字,是一个看起来精确的错误答案。

这三篇写下来,我发现这个系列的主线其实是同一句话的三个变体:

都是同一个毛病的三个面:看起来一样的东西,其实不一样。 而聚合器这门生意,本质上就是把这些”其实不一样”一个个显式建模出来。


延伸阅读


预测市场聚合器实战系列,持续更新。订阅 RSS关注 X


Share this post on:

Previous Post
结算不对称:我那个"无风险"跨平台对冲,风险到底藏在哪
Next Post
两条链,一套代码:Polymarket 与 predict.fun 的同构与陷阱

继续阅读

如果觉得有用

订阅更新,每次发新文章第一时间收到。不发广告、不搞推销。