同一支策略,在標普 500 成分股上跑出年化 Sharpe 1.5,跟在一籃子山寨幣上跑出年化 Sharpe 1.5,可信度不在同一個級別。差距不在策略設計,在你手上那段歷史能負擔幾次嘗試。
加密貨幣回測特別會騙人,原因不是這個市場比較隨機,也不是做量化的人比較不嚴謹。真正的原因是:決定一個回測可不可信的四個輸入,在加密市場同時被推到最壞的一邊。有效樣本更短、試驗次數更多、試驗之間更相關、樣本宇宙更殘缺。四個變數往同一個方向走的時候,誤判機率不是加起來,是乘起來。
機制層的東西這裡不重複。多重測試為什麼在數學上必然生出假訊號、選擇偏誤怎麼把雜訊變現成一支具體策略,選擇偏誤與多重測試那篇拆過。本文只處理一件事:把「加密市場是重災區」這句常識,換算成你可以自己重算的數字,然後給出對應的紀律。
加密貨幣回測的可信度由四個輸入決定,這裡四個同時最差
先把要拆的東西攤開。任何一套多重測試校正,不管你用 Bonferroni、SPA 還是 Deflated Sharpe,吃的都是同一組輸入。這四個輸入決定了同一個 Sharpe 值該被打幾折。
| 輸入 | 它決定什麼 | 美股大型股 | 加密市場 |
|---|---|---|---|
| 有效樣本 T_eff | t 值的分母,樣本越短、雜訊佔比越高 | 數十年、十幾個完整景氣循環 | BTC 約十幾年、3 到 4 個週期;多數山寨 1 到 2 年 |
| 試驗次數 N | 純雜訊能撈到多高的成績 | 資料授權貴、清洗門檻高,掃描量受限 | 全歷史 OHLCV 免費開放 API,掃描量沒有上限 |
| 試驗間相關 ρ | N 裡面有幾個是真的獨立 | 產業與因子分散,ρ 中等 | 幾乎全是 BTC beta,壓力期常在 0.8 以上 |
| 宇宙完整性 | 存活者偏誤有多重 | 下市有制度紀錄,資料商多半保留 | 死亡率高、下架無統一紀錄、ticker 會被重用 |
這張表是本文其餘部分的目錄。四段各拆一列,最後一段講這個論點在哪裡會過頭。
有效樣本:24/7 的資料看起來更多,能用的更少
加密市場全年無休,一年 365 根日線,美股 252 根。單看根數,你的樣本多了 45%。這是整個問題裡最有欺騙性的一個數字。
回測的統計力道不來自資料的行數,來自資料裡有幾個彼此獨立的觀察。一支靠週期輪動賺錢的策略,它真正的樣本數是市場經歷過幾次週期,不是走過幾根 K 棒。你在 2021 到 2024 的資料上看到策略「連續四年有效」,如果這四年只涵蓋一次完整的漲跌循環,你手上的樣本數是 1,不是 1460。
把量級標出來。比特幣從 2013 年算起,結構真的不同的市場環境大概是:2013 的散戶泡沫、2017 的 ICO 週期、2018 到 2019 的熊市、2020 到 2021 的流動性洪水與 DeFi、2022 的槓桿清算連環爆、2023 之後的 ETF 與機構化。掰著手指數,四到六個。山寨幣多半只趕上其中一到兩個。
從數學看更直接。年化 Sharpe 的 t 值大約是 Sharpe 乘以樣本年數的平方根。
| 有效樣本年數 | t = 2 需要的年化 Sharpe | t = 3 需要的年化 Sharpe |
|---|---|---|
| 1 | 2.00 | 3.00 |
| 2 | 1.41 | 2.12 |
| 3 | 1.15 | 1.73 |
| 5 | 0.89 | 1.34 |
| 12 | 0.58 | 0.87 |
讀法:一個只有兩年歷史的標的,你要它通過 Harvey、Liu 與 Zhu 主張的 t>3 門檻,年化 Sharpe 得先做到 2.12。這個數字在扣掉手續費、滑價與資金費率之後,多數策略根本到不了。反過來說,如果你的兩年回測真的跑出 Sharpe 2.1 以上,比較合理的第一反應是去找資料錯誤或前視偏誤,不是去加倉。
試驗預算:先算你買得起幾次嘗試
有效樣本短,直接壓縮的是你能做幾次嘗試而不至於必然過擬合。Bailey 等人的最短回測長度給了一個粗略但好用的上界:MinBTL 約等於 2·ln(N) 除以目標 Sharpe 的平方。把它倒過來解 N,就是你的試驗預算。
| 有效樣本 T_eff(年) | 目標 Sharpe 1.0 的試驗預算 | 目標 Sharpe 1.5 的試驗預算 |
|---|---|---|
| 1 | 2 次 | 3 次 |
| 2 | 3 次 | 9 次 |
| 3 | 4 次 | 29 次 |
| 5 | 12 次 | 277 次 |
| 8 | 55 次 | 8,100 次 |
| 12 | 403 次 | 729,000 次 |
這張表的重點不在最後兩列,在於 T_eff 該填什麼。如果你的策略靠的是週期轉折,比特幣的 T_eff 是 3 到 4,不是 12,你的預算就落在幾次到幾十次之間。任何一個五個參數各掃十格的網格,第一輪就是十萬次,超出預算三到四個數量級。這也是為什麼「我只是隨便掃一下」這句話在加密市場的代價,比在美股大得多。順帶一提,這個上界是寬鬆版,論文的精確版用期望最大值算,門檻更緊。
有一個誠實的分界要講清楚:被短歷史殺死的主要是週期級與宏觀級策略。做微結構、做資金費率套利、做造市的人,相關的時間尺度是分鐘與小時,一年就能累積幾十萬個獨立事件,有效樣本反而比很多股票策略還充足。判斷自己踩在哪一邊的方法很簡單:你的策略平均持倉多久,一年能產生幾筆真正獨立的進出。
試驗次數:你算的是自己的 N,加密貨幣回測面對的是市場的 N
多數人估試驗次數的時候,只算自己跑過幾組參數。這個數字幾乎一定嚴重低估,而在加密市場低估的幅度大到荒謬。
原因是資料的取得成本。美股要拿到乾淨的 point-in-time 資料,要付授權費、要處理股票分割與股利再投資、要處理下市紀錄,這些成本本身就是一道篩子,把大部分的隨手掃描擋在外面。加密市場相反:任何一家主要交易所都提供免費的全歷史 K 線 API,開源回測框架滿地都是,TradingView 上的策略腳本可以一鍵複製再改參數。門檻趨近於零。
結果是全世界幾萬到幾十萬個人,同時對著同一組公開的 BTC/USDT 日線跑最佳化。市場層級的試驗次數,是所有人試驗數的總和。這個數字沒有任何個人能誠實計數。
| 市場層級的嘗試次數 N | 純雜訊的期望最大 t 值 | 三年樣本對應的年化 Sharpe |
|---|---|---|
| 100 | 2.56 | 1.48 |
| 1,000 | 3.27 | 1.89 |
| 10,000 | 3.87 | 2.24 |
| 100,000 | 4.40 | 2.54 |
| 1,000,000 | 4.88 | 2.82 |
最後一列的讀法值得停一下。如果全網對同一段資料做過一百萬次搜尋,那麼「三年回測 Sharpe 2.8」這個成績,是純雜訊在這個搜尋規模下的期望產出。不是罕見,是預期值。你在論壇上看到一支三年 Sharpe 接近 3 的策略,它可信的程度跟丟一百萬次硬幣之後有人連二十正面差不多。
更麻煩的是社群層的篩選。你會看到那支策略,正是因為它贏了。幾萬個人各自 data mining,只有結果最漂亮的那幾個發文,賠錢的那幾萬個沒有人寫。你以為自己在複製一個被驗證過的 edge,實際上是在承接一次規模你看不見的選擇偏誤的末端。這一層懲罰無法計算,只能用一個原則處理:任何從公開來源撿來的策略,預設它的真實 Sharpe 接近零,除非你能自己重建它的經濟假設。
還有一批隱形的乘數,多數人根本沒把它們算進 N。同一支策略在八家交易所的資料上各跑一次、換三種報價幣(USDT、USDC、BTC)、換四個時間框架,這就是九十六次試驗。但報告上只會出現一行:「本策略在幣安 BTC/USDT 4 小時線上的表現」。你選了勝出的那個組合,那九十五次沒有被記錄,也沒有被懲罰。
把這幾條算進自己的研究流程之後,通常會發現候選池空掉一大半。這個過程實際怎麼落地,Lab 社群裡討論得比較細。
存活者偏誤:這裡的死亡率是另一個量級
傳統股市也有下市,但加密市場的標的死亡率是另一個層級的東西。每一輪週期結束,都會埋掉一大批歸零、停止開發、被交易所摘牌的代幣。確切的死亡率取決於你怎麼定義「死」,也取決於你用哪一家資料商的宇宙,但幾家主流來源的統計都落在同一個量級:一個完整週期下來,超過一半的標的不再有有意義的交易量。
問題在於,這批屍體不在你今天的清單上。
用一個具體的算術把代價標出來。假設你在 2025 年拿「當前市值前一百大」回測一支三年期的輪動策略。回測期起點的真實宇宙裡,有六十支活到今天、平均漲了 150%,有四十支實質歸零、平均剩下 5%。
- 用今天的清單回測:只看得到那六十支,平均報酬 +150%
- 用當時真實的宇宙回測:0.6 × 2.5 + 0.4 × 0.05 = 1.52,平均報酬 +52%
同一段期間、同一套邏輯,差了 98 個百分點。而且更糟的是第二層效果:你的選幣規則在回測裡看起來很會避開歸零幣,其實只是因為歸零幣從來沒有進過候選池。你以為驗證了風控,實際上什麼都沒驗證到。
加密市場還有三個傳統市場沒有的髒東西,都會讓 point-in-time 宇宙更難重建。
Ticker 重用。 同一個代號在不同時期屬於不同專案,資料商如果只用 symbol 當主鍵,會把兩段不相干的價格序列接成一條。
代幣遷移與面額重訂。 換鏈、換合約、1:1 換發、分叉後改名(LUNA 變成 LUNC 是最有名的一次),這些事件在資料上長得跟股票分割很像,但沒有統一的公司行動資料庫替你處理。
下架沒有統一紀錄。 交易所摘牌的公告散落在各自的公告頁,沒有像美股那樣的集中申報。要重建「2022 年 3 月那天,這家交易所上面到底有哪些交易對」,你得自己存快照。
三件事的共通結論是:宇宙的完整性要在資料層解決,不能靠回測層補。這部分屬於資料層的紀律。核心動作只有一個:每天把當下真實存在的交易對清單存下來,包含後來會死掉的那些。今天沒存,三年後花再多錢也買不回來。
相關性:一百個標的的驗證,實際只有 1.2 個
這一段是四個輸入裡最少人談、但殺傷力最大的一個。
常見的自我驗證動作是這樣:一個訊號在 BTC 上有效,於是拿去 ETH、SOL、BNB 等三十個標的上再跑一次,發現二十五個都有效,於是宣布「跨標的穩健性通過」。這個推論的前提是三十個標的提供三十份獨立證據。在加密市場,這個前提錯得離譜。
山寨幣本質上是 BTC 的槓桿 beta。Liu、Tsyvinski 與 Wu 在 Common Risk Factors in Cryptocurrency 裡發現,整個加密資產橫斷面的報酬,用市場、規模、動能三個因子就解釋掉絕大部分。其中市場因子的解釋力遠遠壓過另外兩個。翻成白話:這個市場的橫斷面差異,比傳統股市小得多。壓力期更誇張,跌起來的時候幾乎所有幣種對 BTC 的相關係數都會往 0.85 以上靠。
把相關性折算成「實際有幾份獨立證據」,用等相關的有效獨立數公式:N_eff = N ÷ (1 + (N−1)·ρ)。
| 你驗證的標的數 N | ρ = 0.3 | ρ = 0.6 | ρ = 0.85 |
|---|---|---|---|
| 5 | 2.27 | 1.47 | 1.14 |
| 10 | 2.70 | 1.56 | 1.16 |
| 30 | 3.09 | 1.63 | 1.17 |
| 100 | 3.26 | 1.66 | 1.17 |
看直欄,不要看橫列。每一欄往下走都很快撞到天花板,而那個天花板就是 1/ρ。ρ = 0.85 的時候,上限是 1.18。意思是:不管你拿五個幣還是一百個幣去驗證,你拿到的獨立證據永遠不會超過大約 1.2 份。加標的不會增加你的信心,只會增加你的計算時間。
這件事有兩個方向,要分開處理,混在一起會得到完全相反的結論。
懲罰面:相關性讓校正變鬆。 你掃過的一千組參數如果彼此高度相關,真正的獨立試驗數遠小於一千,Bonferroni 那種假設獨立的校正會懲罰過度。這時候該用的是有效獨立數,或能吃進相關結構的方法,例如區塊 bootstrap 配 SPA 或 StepM。選型對照在回測校正工具那篇。
驗證面:相關性讓證據變薄。 你以為的三十份跨標的確認,實際只有一到兩份。這個方向不會被任何校正工具自動修好,因為工具不知道你把相關的驗證當成獨立的驗證在數。
第二個方向才是加密市場真正的坑。同一件事在美股沒那麼嚴重,因為產業之間的分散度高,跑三十支股票確實能拿到比較多的獨立資訊。
順著同一條邏輯,還有一個直接的推論:加密策略的正確虛無假設是「單純長期持有 BTC」或一個市值加權指數,不是零。這個市場過去十年的 beta 本身就非常大,任何一支多頭偏向的策略在回測期都會贏過零。用零當基準等於送給自己一個免費的勝利。換成 BTC buy-and-hold 之後,很多「年化 80%」的策略會直接變成負 alpha。
資料層:你可能在對著不存在的成交量做最佳化
前面四個輸入談的都是統計結構。加密市場還有一個傳統市場程度輕很多的問題:原始資料本身是髒的,而校正工具不會檢查資料。
最有名的一個案例是成交量。Bitwise 在 2019 年向美國證管會提交的分析報告裡指出,當時全球回報的比特幣現貨成交量中,約 95% 是造假或非經濟性的洗單。真實的量集中在少數幾家受監管的交易所。這是 2019 年的樣本,之後監管與資料商的過濾都有改善,但方向性的教訓沒變:任何以成交量為輸入的訊號(量價背離、放量突破、成交量加權的動能),在未過濾的資料上做最佳化,你調的是造假流程的參數,不是市場行為的參數。
同一類問題還有幾個。
價格取哪一家。 同一時刻不同交易所的報價有差,用指數價、標記價還是某一家的成交價,會改變回測結果。而「哪一家的資料讓策略最好看」這個選擇,如果是事後決定的,它就是一次沒有被記錄的試驗。
鏈上資料的回滾與歸屬。 鏈重組會讓已經寫進資料庫的交易消失,地址標籤的歸屬本身是統計推估而非事實。用這類資料做出來的訊號,可能是在對著標籤供應商的模型誤差做最佳化。細節在鏈重組與鏈上數據那篇。
永續合約的資金費率結構改過很多次。 各家交易所的計費頻率、上下限、指數組成都調整過。跨越規則改版的回測,等於把兩個不同的遊戲接在一起算。
這一層有一個特別惡劣的性質:髒資料製造出來的假 alpha,經過 Deflated Sharpe 或 SPA 之後,會變成一個有統計背書的假 alpha,而且更難被質疑。校正工具處理的是「這個成績是不是運氣」,它不處理「這個成績是不是來自假資料」。
這個論點在哪裡會過頭
把「加密市場是重災區」推到底,會推出一個錯誤的結論:這個市場不能做量化。這個結論站不住,理由有四個。
真實的無效率也更大。 流動性分散在幾十家交易所、散戶佔比高、機構參與度不均、現貨與衍生品之間長期存在結構性基差。這些都是真的定價缺口。統計門檻更高跟報酬空間更大是同時存在的,正確的推論是證據標準要提高,不是退出。
時間尺度決定嚴重程度。 前面說過,短歷史殺的是週期級策略。做微結構與高頻的人,有效樣本充足,這篇文章裡最兇的那幾張表對他們的約束力小很多。真正該對號入座的是「用日線做因子輪動」跟「拿宏觀變數擇時」這兩類。
鏈上資料是真正的新資訊源。 傳統市場沒有辦法看到全市場的持倉成本分布與轉帳行為。這一層的資料髒,但它提供的是股市根本不存在的觀察角度,這是加密市場獨有的正面條件,也是唯一能直接觀察持有者行為的資料層。
過度校正也是一種錯誤。 加密市場歷史短、檢定力天生偏低,嚴格校正之下「什麼都不顯著」是常態,不是故障。如果你的反應是不斷放寬門檻直到有東西通過,那是換個形式做選擇偏誤。正確的反應是縮小搜尋空間:先寫下經濟假設再碰資料,讓事前理由替你付掉一部分懲罰。搜尋空間從 1000 縮到 20,門檻就鬆了兩個數量級,這比任何統計技巧都有效。
還有一件事這篇文章管不到。上面所有的討論都假設未來的資料生成過程跟樣本期間是同一個。加密市場的結構半衰期特別短:造市商換人、保證金規則改版、ETF 把新的資金曲線接進來、監管框架改寫參與者組成。這類斷裂不在任何顯著性檢定的射程內,通過校正的策略照樣會因為它死掉。這條線在市場結構性風險那篇拆過。
加密貨幣回測的最低紀律:八條清單
把上面的分析收成可以今天執行的動作。
- 先估 T_eff,不是 T。 週期級策略填週期數,事件級策略填事件數,微結構策略才填年數。填完再查試驗預算表,決定這個題目值不值得開。
- 每天存一份交易對快照。 包含當天真實掛牌、後來會下架的全部標的。用交易所 ID 加合約地址當主鍵,不要用 ticker。
- 把交易所、報價幣、時間框架都算進 N。 這三個維度的每一種組合都是一次試驗,包含你看一眼就丟的。
- 驗證用有效獨立數,不用標的數。 跑三十個幣之前先算 ρ,把 N_eff 寫進研究紀錄。ρ 高到 N_eff 不到 2 的時候,這個驗證不構成證據。
- 基準用 BTC buy-and-hold,不用零。 多頭偏向的策略贏過零沒有資訊量。
- 成交量類訊號先過濾資料源。 只用有真實流動性的交易所,或改用鏈上結算量、期貨未平倉這類比較難造假的量能代理。
- 社群來源的策略預設 Sharpe 為零。 除非你能自己寫出它為什麼應該存在的經濟機制,否則它只是一次你看不見的大規模搜尋的倖存者。
- 保險庫資料切一個完整時代,不是最後 20%。 加密市場的 regime 邊界很銳利,按比例切很容易切出一段同質的資料,起不到樣本外的作用。
清單裡最貴的是第二條,因為它沒有事後補救的辦法。其餘七條都可以從今天開始做。
結論
收攏成五句話。
- 加密市場放大選擇偏誤的方式,是四個輸入同時惡化:有效樣本更短、試驗次數更多、試驗更相關、宇宙更殘缺。這四件事是相乘的,不是相加。
- 有效樣本要用週期數或事件數估,不是用日線根數。週期級策略在比特幣上的 T_eff 是 3 到 4,對應的試驗預算是幾次到幾十次,不是幾萬次。
- 真正在定價的 N 是市場層級的總和。一百萬次搜尋規模下,三年 Sharpe 2.8 是純雜訊的期望產出,不是罕見成績。
- 跨標的驗證的獨立證據上限是 1/ρ。ρ 到 0.85 的時候,一百個幣只值 1.2 份證據,加標的不會增加信心。
- 結論不是遠離加密市場,是這個市場的證據門檻要訂得比股市高,而通過門檻之後的報酬空間也確實比股市大。
判斷一個加密策略可不可信,最有效的問題不是「回測績效多少」,是三個更無聊的問題:你的有效樣本是幾個、你試了幾次、你怎麼選的。這三個答案給不出來的策略,績效多漂亮都只是一個未知規模搜尋的最大值。
我每週會把這類驗證框架跟實際市場數據的交叉檢驗寫進電子報,包括流動性條件、衍生品結構與鏈上籌碼的例行審視。想替自己的研究流程多加一層濾網的,可以訂閱追蹤。




