圣杯/Polymarket 微观噪声套利
2026 年春. 去年年中开始, 我发现周围的人开始陆陆续续玩 polymarket, 也听说过不少人靠着它暴富(或真或假的消息). 作为一个量化爱好者, 我自然也想研究一下这个平台上有没有什么可以量化的策略.
我在春节前开始研究, 持续了大概两个月的时间, 期间经历了数据采集, 策略设计, 实盘测试等多个阶段. 目前正在实盘运行中, 整体感觉还不错. 这里我把整个过程和思路总结一下, 希望对其他想在 polymarket 上量化的朋友有所帮助.
策略市场
我选择的市场是 polymarket 上的一个特殊合约: 每 5 分钟开盘一次的比特币涨跌竞猜. 每一轮市场都会问同一个问题: "比特币在未来 5 分钟内会上涨吗?". 答案只有是或否, 最终结算为 0 或 1 美元.
这类高频, 短周期的预测市场, 是量化策略一个天然的施展空间. 我认为这个市场 99% 的交易都是量化机器人在玩, 人类玩家基本上是没有什么优势的. 因此我们先回答一个量化策略的核心问题: 你准备赚谁的钱?
我的答案是: 赚量化机器人的钱.
策略思路
我的核心策略是微观噪声套利. 由于全球数以千计的量化机器人在这个市场上同时交易, 每个机器人到 polymarket 的网络延迟不同, 交易算法不同, 他们对市场的反应也会有微妙的差异. 这就导致了在每轮市场总会在一定的时间段内, 价格会有一些剧烈的抖动.
想象有三个机器人 a, b, c 都以相同的算法在进行交易, 但 a 的网络延迟是 100ms, b 的是 200ms, c 的是 300ms. 当策略信号出现, a 先成交并吃掉大部分套利空间, b 稍后成交, c 最后收到信号并成交. 这就形成了一个短暂的价格波动窗口, 会使得价格偏离正常水平. 我们的策略就是要在这个窗口内捕捉这种微观噪声, 去赚 b 或者 c 的钱.
- 实时挂单: 同时在是和否两侧各挂一张严重偏离当前价格的买单, 买入价格为
create_price. - 回填卖单: 当买单成交后, 立刻在同一侧挂一张卖单, 卖出价格为
redeem_price. - 超时撤单: 如果买单持续一定时间仍未成交, 则取消该买单. 单子存活时间极短, 通常必须在 5 秒以内撤单.
盈亏分析
假设每次投入一美刀, 那么每一笔交易有三种可能的结果:
| 情形 | 盈亏 |
|---|---|
| 买单成交, 卖单也成交 | 盈利 $redeem_price / create_price - 1 |
| 买单成交, 卖单未成交 | 亏损 $1 |
| 买单未成交 | / |
同时在两侧挂买单, 意味着无论市场向哪个方向剧烈波动, 只要出现短暂的价格低点就可以成交. 策略并不预测比特币会涨还是跌, 只是在捕捉市场微观结构中的价格非理智的抖动.
实盘
对于超时撤单逻辑, 一定要使用 polymarket 的 gtd 订单, 这样可以保证订单在到期时自动撤销, 不会因为网络问题或者程序崩溃而导致订单一直挂着. 这一点非常重要!
另外对于市场的数据, 一定要使用 polymarket 的 websocket 实时订阅, 这样才能第一时间捕捉到市场的成交信息, 以及价格的变化. 这也是策略能否成功的关键.
我目前的实盘结果是有一定的盈利, 但也有一些波动. 目前还在继续优化参数, 希望能进一步提升策略的稳定性和盈利能力.