逐筆成交與報價資料,預測報酬真的贏過 OHLC 嗎?
900 個標的日的美股奈秒級成交與報價資料,對上同一批只留開高低收的 K 棒。相同的 fold、相同的模型、相同的 隨機種子。
奈秒級的成交與報價資料昂貴、笨重,而且處理起來很慢。一個美股標的日就是一份幾千萬列的壓縮 CSV,五檔標的 的小樣本壓縮後就有 86.6 GB,後面每一步所需要的工程預算,都和一個放著一分鐘 K 棒的資料夾完全不是同一個 量級。
願意付這個價錢的人,買的是一個信念:逐筆資料裡的微觀結構帶著開高低收丟掉的資訊。這個信念很少被當成一個 對照實驗來檢驗。
微觀結構當然描述了市場的狀態,價差、深度、主動方組成與訂單流失衡本來就是它的量測,但描述現在和預測未來 是兩個不同的主張。比較窄的那個問題,也是交易台在簽資料合約之前必須回答的問題,是這些額外欄位能不能存活 到一個真的有人會交易的樣本外報酬預測裡。
我們把這個比較設計成答案不會取決於任何一個隨意的選擇。兩份資料集都由同一條過濾後的逐筆流建構,在相同的 K 棒、相同的 fold、相同的模型與相同的種子上評估,只差一件事:有沒有那些由逐筆資料衍生出來的欄位。
資料商的 schema、這個資料源裡的兩個陷阱、所有公式與所有洩漏檢查,都放在獨立的一頁,才不會擠掉這裡的 論證。
我們測了什麼
三個分支以配對設計同時擬合。分支 B 是 OHLC 基準,53 個特徵全部是開、高、低、收的函數。分支 A 是 B 再加上 所有能從奈秒級逐筆流推導出來的東西,總共 204 個特徵,因此它是 B 的嚴格超集合,兩者之間的任何差距都只能 歸因於資訊內容,而不是不同的建模選擇。
分支 T 有 156 個特徵,帶著逐筆資料加上原始的 K 棒幾何,但完全不含 B 的技術指標,用來回答在微觀結構已經 就位之後,傳統指標集是否還有存在的價值。
樣本是五檔標的,挑選的準則是涵蓋價位、價差型態與訊息速率,而不是市值:AAPL、SPY、JPM、XOM 與 F。最後這 一檔比它的市值所暗示的更重要,因為在每股約 12 美元時,一分錢的最小跳動等於 8.3 個基點,而同樣一分錢在 SPY 上只有 0.22 個基點,涵蓋這個範圍正是後面能用橫斷面去檢驗一個機械性解釋的關鍵。
三個各 60 個連續交易日的區塊取自不同年份與不同的波動狀態:2019 年 2 月到 4 月、2022 年 2 月到 4 月,以及 2024 年 2 月到 4 月。合計 900 個標的日的 Algoseek 奈秒級成交與報價資料,壓縮後 86.6 GB,重建成正常交易 時段的一分鐘網格。
在這個網格上評估了五個預測期,讓結論不會取決於單一的前瞻時間:1 根 K 棒、60 根、390 根(一整個交易日)、 1,950 根(一週)與 8,190 根(一個月)。目標一律是 K 棒收盤價的未來對數報酬,選它是因為兩個分支都看得到, 而以 NBBO 中價為目標會把一個分支 B 造不出來的量交到分支 A 手上。
三個 gradient boosting 實作並排訓練,分別是 LightGBM、XGBoost 與 CatBoost,全部使用同一組刻意加重正則化 的設定,並在整批跑之前就依照目標的訊噪比固定下來。驗證是每個標的區塊內部的 purged expanding walk-forward,每段訓練區間的最後 h 根 K 棒都被丟掉,讓重疊的目標無法伸進測試視窗。
在任何比較能被解讀之前,有兩件關於證據量的事必須先修正。重疊的 h 根 K 棒目標並不提供 n 個獨立觀測,而五 檔一小時報酬平均兩兩相關 0.32 的標的也不提供五條獨立序列,依標準的變異數論證只剩下 2.19 條。
因此每個結果都帶著修正後的有效樣本數,顯著性則是對照一個經驗虛無分布來判斷,做法是把目標在每個標的區塊 內部做環狀旋轉。這個旋轉破壞了特徵與目標的對應關係,同時保留了每個邊際分布與整個相關結構。
結果
在 1 分鐘的預測期,逐筆資料贏得非常明確。合併後的樣本外 rank IC 大致翻倍,從只用 OHLC 的約 0.045 升到帶 逐筆資料的約 0.103,而且在橫跨三個區塊、四個 fold 與三個模型家族的全部 36 個配對格子裡,分支 A 都贏過分 支 B,Wilcoxon p 值為 2.9e-11。
| 預測期 | IC,分支 A | IC,分支 B | 虛無分布第 95 百分位 | A 減 B | A 勝出 | Wilcoxon p |
|---|---|---|---|---|---|---|
| 1 分鐘 | 0.100 至 0.107 | 0.043 至 0.048 | 0.014 | +0.057 | 36 / 36 | 2.9e-11 |
| 1 小時 | 0.012 至 0.025 | 0.016 至 0.036 | 0.096 至 0.108 | -0.001 | 13 / 36 | 0.52 |
| 1 日 | 0.029 至 0.036 | 0.015 至 0.030 | 0.15 至 0.20 | +0.044 | 24 / 36 | 0.052 |
| 1 週 | 0.152 至 0.159 | 0.092 至 0.096 | 0.23 至 0.30 | +0.061 | 21 / 36 | 0.23 |
| 1 個月 | 無法檢驗 | 無法檢驗 | 不適用 | 不適用 | 不適用 | 不適用 |
各預測期的合併 rank IC。區間涵蓋三個模型家族,所以這裡沒有一個結論取決於用哪個套件。一個月沒有列:它的測試視窗比自己的預測期還短。
一分鐘處的 95% bootstrap 區間連接近重疊都談不上,LightGBM 下 A 是 [0.095, 0.104],B 是 [0.039, 0.048]; 相對於平均 IC 為 0.002、標準差為 0.008 的旋轉虛無分布,觀察到的 0.100 大約在 12 個標準差之外。
過了一分鐘就什麼都不剩。在一小時處,觀察到的 IC 0.022 正好落在虛無分布的均值 0.022 上,而且在一分鐘以外 的任何預測期,兩個分支都沒有越過各自的虛無分布;一日的配對差 +0.044 落在 p = 0.052、24 個有效觀測上,只 能說是有點意思,僅此而已。
在逐筆資料就位的前提下,傳統的 OHLC 特徵工程沒有帶來任何可量測的東西。分支 T 在一分鐘處是 0.101 到 0.107,分支 A 是 0.100 到 0.107,也就是說整套 RSI、MACD、布林、KD 與 Donchian 在微觀結構存在時,對樣本外 的預測力沒有任何增量貢獻。
五個預測期裡只有兩個真的能檢驗
修正目標重疊與 2.19 條有效序列之後,得到每個 fold 誠實的樣本數,而它掉得很快。
| 預測期 | 每個 fold 的有效觀測數 | 判定 |
|---|---|---|
| 1 分鐘 | 9,408 | 可檢驗 |
| 1 小時 | 156 | 可檢驗 |
| 1 日 | 24 | 檢定力不足 |
| 1 週 | 4.3 | 無法檢驗 |
| 1 個月 | 0.1 | 無法檢驗 |
修正目標重疊與跨標的相關之後,每個 fold 的有效觀測數。
一個月的測試視窗比它自己的預測期還短,390 根 K 棒對上 8,190 根 K 棒的目標,所以視窗裡的每一個目標幾乎都 指向同一個未來時點。它看起來 70% 的方向準確率與很大的正配對差,都是單一重疊觀測造成的假象,因此一週與 一個月被報告為無法檢驗,而不是被當成弱證據。
一分鐘的優勢跟著最小跳動幅度走
在一分鐘處,五檔標的都維持優勢,各自贏下 94% 到 100% 的格子,但真正的發現在於排序。
| 標的 | 價位 | 一跳動的基點數 | IC,分支 A | IC,分支 B | 差距 | A 勝出的格子 |
|---|---|---|---|---|---|---|
| F | ~$12 | 8.3 | 0.211 | 0.137 | +0.074 | 100% |
| XOM | ~$100 | 1.0 | 0.084 | 0.007 | +0.076 | 100% |
| JPM | ~$150 | 0.67 | 0.073 | 0.015 | +0.058 | 97% |
| AAPL | ~$170 | 0.59 | 0.046 | 0.010 | +0.036 | 94% |
| SPY | ~$450 | 0.22 | 0.044 | 0.007 | +0.037 | 97% |
各標的在一分鐘處的 rank IC,由相對跳動幅度最大排到最小。
這不是預測優勢的特徵,而是價格離散化這個機械現象的特徵;到了一小時,各標的之間的差距開始正負互換,那正 是雜訊的樣子。
模型實際上在用什麼
分支 A 在一分鐘處的 SHAP 歸因把 79.7% 的權重放在逐筆欄位上,而清單頂端非常清楚: a_micro_minus_close_bps 一個就佔 12.3%,接著是 a_q_micro_close_bps 的 6.5%、a_micro_minus_mid_bps 的 2.2%、a_t_vwap_bps 的 2.1%、a_q_mid_tw_bps 的 1.9%,以及 a_q_mid_close_bps 的 1.8%。
這六個量的都是同一件事,也就是最後成交價離公允價值估計有多遠。模型學到的是,成交價印在 microprice 之下 時,接下來的收盤往往較高,反之亦然,而這就是被直接觀測到的買賣價差跳動,不是被預測出來的。
過了一分鐘,歸因轉向慢速的量:1,950 根 K 棒的動能、已實現波動、報酬偏態,以及價差與零股佔比的移動平均。 這些預測期沒有一個越過自己的虛無分布,所以這只是描述樹在樣本內抓住了什麼,跟預測內容無關。
這些都不值錢
不論一分鐘的訊號在統計上值多少,它都小於執行它的成本。
| 分支 | 每根 K 棒毛利(bps) | 每根 K 棒成本(bps) | 損益兩平成本 | 毛 Sharpe | 淨 Sharpe |
|---|---|---|---|---|---|
| A,OHLC + TAQ | 0.43 至 0.47 | 0.93 | 1.00 bps | +16 至 +18 | -17 至 -19 |
| B,只有 OHLC | 0.17 至 0.19 | 0.80 | 0.51 bps | +6.5 至 +7.1 | -23 |
| T,只有 TAQ | 0.44 至 0.46 | 0.94 | 0.98 bps | +16 至 +17 | -18 |
一分鐘處的經濟性檢查,交易預測的方向。區間涵蓋三個模型家族。
樣本期間的平均有效價差是從逐筆資料量出來的,不是假設的,數值為 1.60 個基點。單看毛利,分支 A 的年化 Sharpe 接近 17,這種數字應該先引發懷疑,而不是先引發一張投資條件書,因為訊號在大約 45% 的 K 棒上換邊, 而每次換邊都要付那個價差。
損益兩平那一欄才是誠實的結論。逐筆資料把策略付得起的成本大約翻倍,從 0.51 個基點提高到 1.00 個基點,而 市場收 1.60,所以兩種資料表示法淨額都在虧錢,只是逐筆資料虧得少一點。
奈秒級的成交與報價資料,在定位當下成交價相對於公允價值的位置上,遠比 OHLC 精確,而這份精確度大約在一分鐘 內衰減殆盡。對執行、造市與交易成本分析而言,那一分鐘就是全部。對超過這個範圍的方向性預測,就這份證據而 言,OHLC 沒有讓出任何東西。
一分鐘之後的負面結果,值得和一分鐘處的正面結果同等的重量,而且它是兩者中比較令人意外的那一個。大約 150 個由逐筆資料衍生的特徵,涵蓋訂單流失衡、主動方組成、報價與有效價差、深度、microprice 偏離、報價強度、 Kyle lambda、Roll 價差、markout、零股佔比與交易所集中度,在一小時處產生的樣本外 IC 正好落在虛無分布的 均值上。
不論奈秒級資料源對下一個小時知道些什麼,三個經過良好正則化的 gradient boosting 實作,都無法從這批特徵、 在這個樣本上把它取出來。
我們對這個結果跑過的每一項洩漏、因果與虛無檢查都通過了,包括我們在正式跑之前找到並修好的兩個檢查本身的 臭蟲;確切的檢查與數字放在 可重現性頁面。
限制
- 五個預測期裡只有兩個帶著足夠的獨立證據可供檢驗。一週與一個月被報告為無法檢驗,要好好延伸到那裡,需要 的是好幾年的連續歷史,而不是 60 天的區塊。
- 五檔標的是很小的橫斷面,而且彼此相關,一小時報酬的平均兩兩相關為 0.32。這個設計刻意涵蓋價位與跳動幅度 的型態,也正是因此才看得到依跳動幅度排序的現象,不過更寬的樣本才能真正檢驗這個排序,而不只是暗示它。
- 目標用的是成交收盤價而不是中價,選它是為了讓兩個分支都能觀測到,但收盤價恰好就是承載價差跳動的那個 量,換成中價目標很可能會大幅縮小一分鐘處的優勢。
- 所有場外成交都透過這個資料源唯一帶有的
FINRA交易所標籤移除,某些標的因此丟掉約一半的合併 成交量,所以保留它們的設計,對流動性相關特徵可能得出不同的結論。 - 超參數是先驗固定、從未調校的,這擋掉了選擇偏誤,但也讓兩個分支都不在自己最好的設定上。
- 成本模型只收量測到的有效價差加上半個基點的費用,沒有建模市場衝擊、排隊位置、部分成交或延遲,而這些只 會讓情況更糟,不會更好。
- 每個數字都建立在單一資料商的合併 SIP 重建之上,而且在任何計算開始之前,該資料源的兩個特有性質必須先用 實測確認。
這一頁的每張圖都是在你的瀏覽器裡,用研究本身真實的結果表畫出來的,和內文與可重現性頁面引用的是同一批數 字。它們背後沒有任何圖片檔。
資料來源、這個資料源裡的兩個陷阱、特徵公式、walk-forward 迴圈、旋轉虛無分布、成本模型與所有洩漏檢查, 並附程式碼片段。

