量化策略的穩健性測試:六個維度的驗證與強化

一支量化策略的回測績效是一個點,穩健性是那個點周圍的形狀。多數人只驗證了點,然後拿真錢去賭那個沒看過的形狀。

一支量化策略的回測績效是一個點,穩健性是那個點周圍的形狀。多數人只驗證了點,然後拿真錢去賭那個沒看過的形狀。

具體一點說:回測報告告訴你,在這組參數、這段歷史、這套成本假設之下,策略賺了多少。它沒有告訴你,把其中任何一個條件推離原點之後,績效會變成什麼樣子。穩健性測試(robustness testing)做的就是後面這件事:沿著每一個可以動的維度,把條件動一動,看績效衰減的形狀。

衰減平緩,策略抓到的多半是市場結構。衰減陡峭,它抓到的是歷史的巧合。

你大概已經做過其中一兩項,例如樣本外測試或參數掃描,然後覺得驗證做完了。這篇文章想處理的正是這個落差:穩健性是多維的,單一維度的通過證明不了其他維度。下面把它拆成六個可以逐一執行的維度:參數、時間、路徑、regime、成本、基準,每個維度給做法和存活判準,最後講測不過之後怎麼辦,以及四個把策略越測越強的手段。

為什麼通過驗證的策略還是會死:單維度的盲區

阿倫在 2025 年做了一支 ETH 四小時動能策略。開發資料從 2023 年到 2025 年中,Walk-Forward 切了十二個 fold 全數通過,樣本外對樣本內的績效比值 0.71,以一般標準來說相當乾淨。2026 年 2 月上線,四個月虧 14%。

屍檢結果不複雜。十二個 fold 全部抽自同一段單邊行情。用外生的波動與趨勢指標把歷史切成趨勢、盤整兩種 regime 之後重看,策略在盤整 regime 的歷史 Sharpe 是 -0.4,只是開發樣本裡盤整占比不到 15%,被整段平均蓋掉了。2026 年上半年剛好是盤整。

他不是沒驗證,是只驗證了一個維度。Walk-Forward 檢查的是時間軸上的滾動穩定性,但它的每一個 fold 都抽自你手上那份歷史;歷史本身偏食,fold 切得再細也補不回來。同樣地,一般的 Monte Carlo 重排檢查的是路徑,它也不知道成本假設有沒有低估、基準有沒有選錯。這些工具都在「盒內」工作:在你選定的策略、選定的資料裡面驗證。而策略的死法,多數在盒外。

策略還會用哪些方式死,回測過擬合的九種死法整理過完整型錄。本文的六個維度是同一件事的執行版:把驗證的探照燈從單一時間軸,轉到盒外那幾個最常見的死角。

六個維度的穩健性測試怎麼做

先給全景。六個維度各自回答一個問題:

維度 回答的問題 主要工具
參數 參數動一格,還賺嗎 擾動測試、響應面
時間 換一段歷史,還賺嗎 子區間、Walk-Forward
路徑 換一種歷史的排列,還賺嗎 交易重排、K 棒重排
Regime 換一種市場環境,還賺嗎 外生 regime 條件化
成本 成本假設變嚴,還賺嗎 費用壓力測試
基準 贏的是最強笨方法,還是零 靜態配置對比

六項全部做完,一支中頻策略大約多花一到兩週。相對於實盤學費,這是整個研究流程裡最便宜的保險。

參數維度:高原還是孤峰

參數敏感度的測法很直接:把每個自由參數逐一擾動 ±10%,或前後各兩個檔位,攤開績效對參數的響應面。真實的市場結構是鈍的:突破策略的回看週期從 20 改成 22,抓的還是同一種行為,績效不該劇烈變化。

存活判準是形狀,不是數字。生產參數要落在一片高原的中心,鄰域內 Sharpe 衰減溫和;如果週期 21 大賺、19 和 23 賠錢,你優化到的是雜訊的座標,不是市場的節奏。孤峰上的最佳解,樣本外的期望通常輸給高原上的次佳解。

時間維度:子區間與 Walk-Forward

把回測期切成年度或半年度的子區間,逐段看績效。要抓的是集中度:如果全期獲利的七成來自某一年的三個月,策略的本體就是那三個月,其餘時間只是沒賠而已。

再用 Walk-Forward 做滾動的樣本外測試,訓練段調參、測試段驗證、逐窗前進。樣本外對樣本內的比值掉到五成以下,通常代表參數吃進了大量雜訊。切法與判讀門檻在 Walk-Forward Analysis 的完整拆解裡有,不重複。這裡只提醒一件事:時間維度是最多人做的一維,也最常被誤認為全部。López de Prado 在 Advances in Financial Machine Learning 裡對此講得直接:在同一段歷史上反覆測試,本質上是重複使用同一份證據,時間軸驗證做得再多次,證據總量也不會變多。

路徑維度:把一條歷史變成一萬條

歷史只給了你一條路徑,回測的最大回撤只是這一條路徑的抽樣結果。路徑維度用蒙地卡羅模擬(Monte Carlo)的重排把它變成分布,有兩種做法,回答兩個不同的問題。

交易序列重排回答風險問題。把策略的逐筆損益打亂重排幾千次,得到最大回撤的分布。回測報告上的 MDD 是其中一次抽樣,分布的 95 百分位往往比它深得多,資金配置要對著分布的尾端做,這點後面強化那節會再講。

K 棒重排檢定回答獲利來源問題。把 K 棒順序打亂、保留報酬的邊際分布,序列結構全部消失,再把完整策略(含停損停利)跑上去幾百次。訊號死了、出場機制還活著:如果策略在打亂後的路徑上照樣賺,獲利來自停損停利與波動的互動,不是進場訊號的預測力。這種死法 Walk-Forward 完全抓不到,因為機制 artifact 不依賴時序,往前走照樣獲利。凡是帶停損停利或條件出場的策略,這項必跑。Aronson 在 Evidence-Based Technical Analysis 對重排檢定有系統性的處理,是這一維的標準參考。

存活判準:真實路徑的績效在重排分布裡顯著突出(p 值小於 0.05),且資金配置以重排回撤分布為準。

Regime 維度:切掉最好的那段,再看一次

用外生資料定義市場環境:利率方向、牛熊、波動水平。切法必須來自宏觀或市場結構數據,不可以用策略自身的績效切,否則就是循環論證。切完做兩件事。

第一,條件績效表:逐 regime 算策略的超額報酬與 Sharpe,看 edge 是不是全部集中在單一環境,也就是有沒有 regime 依賴。第二,殺手測試:把 edge 最強的那個 regime 整段切掉,重跑一次完整的開發流程,看剩下的資料還選不選得出相近的配置、還有沒有正的 edge。切掉一段就散架的策略,本體是那段行情,不是你的邏輯。

加密市場在這一維要加倍嚴格。regime 壽命明顯短於股票市場,2021 年調出來的動能參數,2022 年整批陣亡;一支只在流動性擴張期有數據的策略,等於從來沒有被緊縮環境考過試。開發樣本裡缺哪種 regime,就要誠實承認那是策略的未知區域。

成本維度:把成本當參數做壓力測試

多數回測把成本設成一個常數然後忘掉它。正確的做法是把手續費、滑價、資金費率全部當成可擾動的參數:滑價加倍、maker 改 taker、funding 從常數換成歷史最差四分位的實際序列,逐項重跑。

阿凱在 2025 年做過一支永續合約網格,回測年化 34%。滑價假設從 1 個基點調到 3 個基點,年化剩 6%;再把 funding 換成 2024 到 2025 的實際序列重跑,變成 -2%。三十分鐘的成本壓力測試,換掉的是好幾個月的實盤學費。他的策略獲利不是 alpha,是成本假設的誤差。

存活判準:成本假設整體加嚴一級之後,策略仍然為正。獲利對單一基點的變動敏感,代表 edge 集中在極薄的邊緣上,而那個邊緣在實盤會第一個消失。交易越高頻,這一維的權重越高。

基準維度:贏過最強的笨方法

回測賺錢只證明策略贏過「零」,這個門檻毫無意義。正確的對手是最強的笨方法:含息的買進持有、靜態 50/50 配置、等權重組合。逐一比風險調整後的報酬。

這一維最常見的死法是把減風險誤認成 alpha。策略回撤比大盤淺,感覺像本事,但如果那只是因為它結構性半倉現金,任何固定比例配置都做得到,你的訊號沒有貢獻任何東西。判準:Sharpe 要贏過其中最強的靜態配置;只有回撤淺、風險調整後輸掉,等於在賣一個免費就有的東西。

贏了還有下半場:贏的幅度要經得起嘗試次數的折算。試了兩百組挑出來的贏家,本來就會贏過基準,這是選擇效應不是技能,Hansen 的 SPA 檢定處理的就是這個問題;單一策略的版本,用 Deflated Sharpe Ratio 把 trial 數折進顯著性即可。

穩健性測試沒過怎麼辦:回假設層,不是回去修補

某一維測掛了,最自然的反應是加一條規則把它修掉:regime 測不過就加一個 regime 濾網,成本測不過就把交易頻率調低。這個反應正是過度優化的入口。你在看了結果之後,為特定的失敗量身訂做補丁;每一個補丁都是新的自由度,統計上都是一次新的嘗試,嘗試怎麼把假陽性灌大,選擇偏誤與多重測試拆過完整機制。

比較誠實的處理分兩層。失敗能被機制解釋的,回到經濟假設去問:這個 edge 在那種條件下本來就該消失嗎。動能策略在均值回歸環境虧損,是機制的一部分,可以接受,但要把它寫進策略的適用邊界,反映在資金配置上。解釋不通的,策略回爐,從假設重新開始,不是從參數。

分辨「修補」和「正當改良」只有一個辦法:改良以新假設的身分進入下一輪研究週期,照從假設到回測的完整流程重新走一遍,六維全數重測;修補在同一輪裡看著結果直接改。前者留下紀錄,後者留下幻覺。

把策略越測越強的四個手段

測試是診斷,強化是處方。四個手段都在上線之前執行。

參數集成。 不押單一參數點,在穩健高原內取三到五組參數,各配一部分資金同時跑。單一參數組的樣本外風險被攤開,「選哪一組」這個自由度本身也被鈍化。代價是報表難看一點,換到的是對參數運氣的免疫力。

照重排分布配資金,不照回測 MDD。 講一段我自己的。去年定版一支策略,回測最大回撤 14%,交易序列重排一萬次之後,回撤分布的 95 百分位是 26%,我按 26% 再加一層緩衝去配資金。實盤十個月,最深回撤走到 19%。如果當初按 14% 配置,那次回撤大概率會逼我在最差的位置關系統;因為事前知道 19% 在分布之內,系統照跑,後來整段回來了。回測給你一條歷史,重排給你一萬條,資金要配在一萬條的尾端,不是那一條的運氣上。

事前寫死失效條件。 穩健性測試不是上線前做完就丟的儀式,測試產出的分布要變成日常風險控管的監控門檻:回撤觸及重排分布的 95 百分位、滾動 Sharpe 跌破事前寫定的下界、實際滑價持續高於假設的兩倍,任何一條觸發就降槓桿或下線。規則必須寫在虧損發生之前,因為虧損發生之後你寫的不是規則,是情緒。

降自由度。 最便宜的強化。同樣的樣本,要養的規則越少,每一維測試的統計可信度越高。多數策略的強化方向是減法:刪掉講不出經濟理由的濾網,比加任何新東西都有效。

這四個手段在 Lab 社群裡有完整的實例走查,我們會拿一支真實策略把六維測試和失效條件從頭跑一遍,想把手上的策略丟進來檢驗的,那裡是合適的地方。

這套測試擋不住什麼

界線要說清楚,六維全過不是保證。

它擋不住 alpha decay。真實的訊號也會被市場套利掉,穩健性測試回答的是「過去這段績效是不是巧合」,不回答「這個 edge 未來還在不在」。

它擋不住沒見過的 regime。regime 維度測的是歷史上出現過的環境,歷史沒給過的考題,任何回測工具都測不到。這是用小部位上線、保留失效條件的根本理由。

它擋不住壞資料。存活者偏誤、時間戳錯位、被污染的價格源,在壞資料上做六維測試,得到的是六個維度都很穩健的錯誤結論。資料品質要在更上游解決,量化交易數據層的建法講過那一層的做法。

通過測試的策略拿到的不是護身符,是資格:投入小額真錢、掛上監控、進入下一輪檢驗的資格。

結論:穩健性是形狀,不是分數

把這篇收攏成五句話:

  1. 回測績效是一個點,穩健性是點周圍的形狀;穩健性測試就是沿著每個維度把條件推離原點,看衰減的樣子。
  2. Walk-Forward 和路徑重排是盒內工具,regime、成本、基準的死法在盒外,單一維度的通過證明不了其他維度。
  3. 六個維度各回答一個問題:參數動一格、換一段歷史、換一種排列、換一種環境、成本變嚴、對手變強,還賺嗎。
  4. 測不過的正確反應是回到假設層重來;看著結果打補丁,是把過度優化重新請回流程裡。
  5. 強化靠四件事:參數集成、照重排分布配資金、事前寫死失效條件、降自由度。

穩健的策略幾乎都有同一個特徵:回測數字不是最漂亮的那一支。漂亮是單點優化的產物,穩健是鄰域的性質,兩者多數時候互斥。選鄰域,不選單點。

這類驗證框架與實際市場數據的交叉檢驗,我每週會整理進電子報,包括流動性、衍生品結構與鏈上籌碼的例行審視。想讓自己的研究流程多一層濾網的,可以訂閱追蹤。


Meta Elements

Meta Title: 量化策略穩健性測試指南:六個維度的驗證方法與存活判準
Meta Description: 穩健性測試是判斷量化策略獲利來自市場結構還是歷史巧合的方法。本文拆解參數、時間、路徑、regime、成本、基準六個維度的做法與存活判準,以及測不過之後的處理。
Primary Keyword: 穩健性測試
Secondary Keywords: 量化策略, 蒙地卡羅模擬, 參數敏感度, Regime 依賴, 成本壓力測試, 樣本外測試, 量化回測
URL Slug: /blog/strategy-robustness-testing
Internal Links: /blog/backtest-overfitting, /blog/walk-forward-analysis, /blog/deflated-sharpe-ratio, /blog/selection-bias-multiple-testing, /blog/quant-trading-data-layer, /blog/quant-trading-system, /#lab-benefits, adtrader.beehiiv.com
External Links: Wiley (López de Prado, Advances in Financial Machine Learning), Wiley (Aronson, Evidence-Based Technical Analysis), Taylor & Francis (Hansen, A Test for Superior Predictive Ability)
Word Count: 約 3,800 字(中文字元)
個人頭像照片
AD.Trader Lab

AD.Trader Lab 創辦人 | 量化交易員 專注於在充滿雜訊的市場中,尋找數學上的必然性。AD.Trader Lab 實驗室主理人,帶你用數據看透漲跌背後的真相。