DepthFeed/Polymarket·資料品質

Polymarket CLOB WebSocket 與每小時封存檔對決:為何「解析度」決定你的回測能不能信

能拿來實戰交易的 Polymarket 回測,和會騙你的回測,差別通常不在資料量多寡,而在資料是怎麼取樣的。

DepthFeed··6 min

事件驅動式擷取會在 Polymarket 訂單簿每次變動時就記錄一次,直接取自 CLOB websocket;固定間隔封存則是照時鐘取樣(例如每小時一次),並丟棄兩次取樣之間的所有變化。對於數分鐘內就結算的短天期加密貨幣市場,間隔取樣往往只擷取到市場整個生命週期中的一兩個畫面——這正是為何決定回測可不可信的是解析度,而非檔案大小。

「解析度」到底是什麼意思

解析度指的是訂單簿狀態被記錄的頻率。基本上有兩種截然不同的做法。固定間隔取樣是照時鐘拍快照——每小時、每分鐘、每幾百毫秒一次——完全不管市場實際發生了什麼。事件驅動式擷取則是每當訂單簿真正發生變動時才記錄一張快照:一筆新掛單、一次撤單、一筆成交。

這兩種做法可能產生大小相近的檔案,承載的資訊卻完全不同。對一個冷清的市場做間隔取樣,會把一堆列數浪費在毫無變化的訂單簿上;對一個快速變動的市場做間隔取樣,則會錯過那些真正關鍵的行情。

短天期市場的難題

Polymarket 的加密貨幣漲跌(up/down)市場在 5 到 60 分鐘內結算。以一個 5 分鐘的 BTC 市場為例。每小時封存檔可能只擷取到它 0 次或 1 次——你甚至可能連這個市場整個生命週期中的一張訂單簿都拿不到。每分鐘封存檔大約給你五個畫面,但沒有一個對齊到你的策略真正會出手的那些時刻。

相較之下,事件驅動式擷取會在每一次重新報價與成交發生的當下就記錄下來,因此整段市場走勢——開盤、現貨每跳一格時的行情變動、邁向結算時逐漸放大的價差(spread)——全都完整保留,可供重播。

並排對照

每小時封存檔每分鐘取樣事件驅動(DepthFeed)
5 分鐘市場涵蓋度0–1 個畫面約 5 個畫面每一次變動
能否擷取價差放大極少
可否量測滑價近似
能否對齊現貨行情粗略逐跳對齊(tick for tick)
即時推送不適用不適用中位數約 10 ms(實測)

為何幾乎沒人保存事件驅動的深度資料

即時記錄每一次訂單簿變動代價高昂:這代表要為每個市場維持一條即時 websocket 連線、把每一張畫面持久化保存,而且永遠無法回填你當初沒擷取到的資料——訂單簿歷史無法事後重建。這正是為何交易所不提供自家的訂單簿歷史,而多數封存檔最多只停留在取樣過的最後價格(last price)。DepthFeed 的存在,正是為了專門記錄並提供這種事件驅動的深度資料。

Key takeaways

  • 01解析度關乎取樣方式,而非檔案大小。
  • 02固定間隔封存檔會錯過 5–60 分鐘市場的整段生命週期。
  • 03事件驅動式擷取記錄每一次訂單簿變動,因此整段市場走勢都可重播。
  • 04訂單簿歷史無法回填——只有當初有人即時擷取下來,才拿得到。

能拿來實戰交易的 Polymarket 回測,和會騙你的回測,差別通常不在資料量多寡,而在資料是怎麼取樣的。

免費開始

問題,一一解答。

Polymarket 的 CLOB websocket 會串流即時的訂單簿更新,但 Polymarket 並不提供這些訂單簿快照的歷史封存檔。若要重播當時的訂單簿,你需要一家持續擷取該 websocket 並加以保存的供應商——這正是 DepthFeed 在做的事。