Polymarket CLOB WebSocket 对比小时级归档:为什么分辨率决定你的回测可信度
一份能拿来真金白银交易的 Polymarket 回测,和一份会骗你的回测,区别通常不在于你有多少数据,而在于这些数据是怎么采样的。
事件驱动捕获会在订单簿每次发生变化时记录 Polymarket 的状态,数据直接来自 CLOB websocket;而固定间隔归档则按时钟采样(比如每小时一次),并丢弃两次采样之间的一切。对于几分钟内就结算的短周期加密市场来说,间隔采样往往只能截取一个市场整段生命中的一两帧画面——这正是为什么决定回测是否可信的是分辨率,而不是文件大小。
“分辨率”到底指什么
分辨率是指订单簿的状态被记录的频率。这里有两种根本不同的做法。固定间隔采样按时钟拍快照——每小时、每分钟、每几百毫秒一次——而完全不管市场当时在做什么。事件驱动捕获则是只要订单簿真正发生变化就记录一张快照:一笔新挂单、一次撤单、一笔成交。
这两种方式可能产出大小相近的文件,承载的信息却天差地别。对一个安静的市场做间隔采样,会把一行行记录浪费在一动不动的订单簿上;而对一个快速变动的市场做间隔采样,又会错过那些真正重要的波动。
短周期市场的难题
Polymarket 的加密涨跌(up/down)市场会在 5 到 60 分钟内结算。设想一个 5 分钟的 BTC 市场。一份小时级归档可能只捕到它零次或一次——你甚至可能连这个市场整段生命中的一张订单簿都没有。一份每分钟归档大约能给你五帧,但没有一帧对得上你的策略真正会出手的那些时刻。
相比之下,事件驱动捕获会在每一次重新报价和每一笔成交发生时就记录下来,于是这个市场完整的轨迹——开盘、现货价格跳动时的每一次移动、结算前不断扩大的价差——全都在那里,可供回放。
并排对比
| 小时级归档 | 每分钟采样 | 事件驱动(DepthFeed) | |
|---|---|---|---|
| 5 分钟市场覆盖 | 0–1 帧 | 约 5 帧 | 每一次变化 |
| 能否捕捉价差扩大 | 否 | 极少 | 能 |
| 滑点可否度量 | 否 | 近似 | 能 |
| 能否对齐现货波动 | 否 | 粗略 | 逐 tick 对齐 |
| 实时投递 | 不适用 | 不适用 | 中位数约 10 ms(实测) |
为什么几乎没人留存事件驱动深度
实时记录订单簿的每一次变化代价高昂:这意味着要为每个市场维持一条持续的 websocket 连接、把每一帧都持久化下来,而且永远无法回填你当初没捕到的部分——订单簿历史无法事后重建。这正是为什么交易所不提供自己的订单簿历史,而大多数归档止步于一个采样后的最新价。DepthFeed 的存在,就是专门为了记录并提供这种事件驱动的深度数据。
Key takeaways
- 01分辨率关乎采样方式,而非文件大小。
- 02固定间隔归档会错过 5–60 分钟市场的整段生命。
- 03事件驱动捕获记录订单簿的每一次变化,于是市场的完整轨迹都可回放。
- 04订单簿历史无法回填——只有当有人在实时捕获时记录下来,它才存在。
一份能拿来真金白银交易的 Polymarket 回测,和一份会骗你的回测,区别通常不在于你有多少数据,而在于这些数据是怎么采样的。
免费开始