2026年九月19日 · 回測

Tick 資料救不了你的回測——對大多數策略來說,反而會讓結果更糟

Tick 資料救不了你的回測——對大多數策略來說,反而會讓結果更糟

一般的建議是:想讓回測誠實,就去拿 Tick 資料。我認為這個建議對大多數策略來說是錯的,照做通常只會讓回測變得更糟,而不是更好。問題不在於 Tick 資料不準——它是你能取得最精確的資料——而在於多數人使用它的方式,是拿解析度取代嚴謹度;兩者並不是一回事。

常見的失誤是這樣:研究者用 1-minute K 線建立策略,得到一個自己滿意的 Sharpe,接著有人——導師、論壇貼文,或自己揮之不去的疑慮——告訴他,這份回測是假的,因為它建立在 K 線上。於是他們把整條流程都改用 Tick 資料重建:每一筆成交、每一次報價更新,時間戳精確到微秒。回測變慢了,程式碼複雜度增加到原本的 3 倍,Sharpe 卻……幾乎沒變,或是朝著沒人說得清楚的方向變動。最後他們還是把策略上線,因為 Tick 資料讓人感覺比較嚴謹,而「感覺嚴謹」和真正嚴謹並不一樣。

Tick 解析度實際能帶給你什麼

Tick 資料會記錄每筆成交的先後順序與價格,也會記錄每次委託簿更新(如果你願意付費取得)。這些都是真正有用的資訊。你可以據此重建排隊位置、估算特定價位的成交機率,也能觀察逆向選擇——也就是假設成交後,市場是否立刻朝不利於你的方向移動。如果你的持倉時間以秒計算,優勢又只有幾個 Tick 的零頭,這些資訊就非常重要。

但在 Stratmill 看過的策略中,大多數——零售與半職業研究者實際執行的策略也大多如此——持倉時間從幾分鐘到幾天不等。在這個時間尺度下,決定回測是否誠實的,不是你有沒有模擬某分鐘內的第 40 筆成交,而是你有沒有正確建模價差、資金費率、滑價曲線,以及限價單在委託佇列中排在其他人的單子後面這件事。用 Tick 資料時,這 4 項全都可能算錯;用 1-minute K 線時,也可能 4 項全都算對。解析度與誠實度是互不相關的兩件事。

~24MBTCUSDT 永續合約每日成交筆數
1,440同一天的 1-minute K 線數量
0.5–1 Tick每筆成交常見的買賣價跳動雜訊
3–5x
建置正確的 Tick 資料流程所需工程時間,是 K 線流程的

最後這個數字,大家往往低估了。Tick 級回測不是「同一份回測,只是資料列比較多」。多數交易所的成交資料,相對於你的資料擷取時間戳會有亂序、事後修正、分散在多個撮合引擎分片等問題;我們從好幾個交易所擷取資料時,也遇過重新連線後偶爾重複或漏掉資料的情況。要打造一條真正比完善的 K 線資料流程更正確、而非只是更細緻的 Tick 資料流程,是一個實打實的系統工程專案。多數團隊不會做這個專案。他們只是把回測程式接上供應商的 Tick 檔案,就當作大功告成。結果是,他們用一套未知且未公開的近似處理方式(供應商在糟糕的一天如何校正 Tick 資料),取代一套已知且有文件說明的近似方式(OHLCV)。

你買進的雜訊

還有第二種成本,和工程的關聯較小,和統計更有關。每筆成交價會在買價與賣價之間跳動——這就是買賣價跳動效應,早在 1980 年代的市場微結構文獻中就已是廣為人知的現象。如果你的訊號運作速度快於幾秒,Tick 級回測可能會讓你把純粹的跳動效應看成某種結構。我看過有研究者在逐筆成交資料中找到漂亮的均值回歸模式,但一彙整成 5-second K 線,模式就立刻消失了,因為那根本只是買賣價跳動效應。

我認識一位量化交易員,過去做市,現在管理一本小型加密貨幣投資組合。他這麼跟我說:「Tick 資料就像放大鏡。拿它看你的優勢,很好;拿它看你的雜訊,你就會花 6 個月把雜訊建模得漂漂亮亮。」現在他幾乎所有回測都用 1-second 或 1-minute K 線,只有在確認「這張限價單實際上會不會成交」這個特定問題時才用 Tick 資料。這是成交機率問題,不是訊號問題。

這樣區分才是對的,也是多數 Tick 資料倡議者會忽略的一點。誠實使用 Tick 資料,不是把整套策略都跑在上面,而是針對性地用它回答 1、2 個 K 線資料確實無法回答的問題。

批評者說得對的時候

話雖如此,有些策略確實非用 Tick 資料不可;若假裝不是這樣,就是把話說得太滿。如果你做的是做市類策略——雙邊報價、逐 Tick 管理庫存,並在意自己在特定價位的委託佇列中排在哪裡——K 線資料根本無法呈現你的交易問題。這類策略的全部經濟效益都發生在一分鐘之內,而不是跨越幾分鐘。同樣的,對交易場所之間的延遲敏感型統計套利,問題就是「哪筆交易先發生」;大型部位附近的選擇權做市也是如此,成交後幾百毫秒內的逆向選擇就是成敗關鍵。在這些情況下,用 K 線回測不是簡化,而是分類錯誤——你測試的不是策略的低解析度版本,而是另一個剛好和真實策略同名的策略。

策略時間尺度K 線資料看不到的內容需要 Tick 資料嗎?
做市/依據委託佇列的策略成交機率、逆向選擇、佇列位置需要,沒有替代方案
延遲套利/跨交易場所套利成交先後順序、哪個交易場所先變動需要
日內動能、均值回歸(幾分鐘至幾小時)K 線區間內的成交時機、價差成本只在探討成交機率時需要,訊號則不需要
波段/多日策略、選擇權方向性策略幾乎沒有重要資訊不需要——K 線已足夠,通常也更乾淨
如果你無法用一句話說明,針對你的特定策略,Tick 資料能回答什麼 K 線無法回答的問題,那你現在還不需要 Tick 資料。你需要的是把現有 K 線資料上的成交模型做得更好。

所以我的主張不是「Tick 資料很糟」。而是我們常常急著採用 Tick 資料,藉此迴避更難、也沒那麼光鮮的問題:我的成本模型對嗎?成交假設對嗎?這張單實際上會成交嗎?還是我假設自己能在委託簿從未真正提供過的價格成交?只要誠實處理排隊位置與價差,這些問題用 1-minute 甚至 1-second K 線就能回答。Tick 資料能讓答案更精確,但工程成本會增加好幾倍;而對某些策略來說,多出來的精確度並不會改變結論。把額外力氣用在時間尺度真正需要它的地方,其他地方就省下來——這比預設採用能拿到的最細資料、只因為資料越細看起來越嚴謹,更能善用研究團隊的時間。

Tick 資料市場微結構回測資料工程加密貨幣期貨
← 所有文章