用 White’s Reality Check 檢驗策略回測中的資料窺探
了解 White’s Reality Check 如何將搜尋中表現最佳的策略與基準比較,並用保留相依結構的 bootstrap 最大值校正選擇效應
本指南內容檢定關注搜尋勝出者是否超過選定基準
簡短摘要
White’s Reality Check 檢驗:在納入「勝出者是從多個候選中依最高表現選出」這項事實後,預先定義的搜尋家族中最佳候選是否優於指定基準。它對所有候選共同且隨時間變化的表現差值進行 bootstrap,再將觀察到的最大值與 bootstrap 最大值構成的虛無分布比較。調整後的 p 值較小,表示有證據反對「該候選家族中沒有策略優於此基準」的聯合虛無假設;它不預測實際交易的獲利能力。
檢定關注搜尋勝出者是否超過選定基準
研究者可能測試數十種移動平均視窗、突破規則、持有期間、市場與篩選條件,接著報告回測分數最高的策略。這位勝出者並非一般的單一候選:搜尋過程給了它許多次表現得異常出色的機會。如果把它當成看資料前就指定的策略來單獨檢定,就忽略了選擇過程。
White’s Reality Check 將選擇納入檢定。它詢問已研究的候選家族中,是否存在預期表現高於既定基準的候選。White 將虛無假設寫成一組單尾比較的交集:每個候選相對基準的預期表現都不大於零;對立假設則是至少一個候選具有正的預期優勢。基準可以是買進並持有、簡單的預測規則或其他比較規則,但必須符合研究問題,並在查看檢定結果前確定。正式設定見 White 的原始論文。
這是針對整個候選家族的問題,不是對偶然勝出策略的保證。拒絕虛無假設只表示在選定統計量與假設下,記錄的候選家族中存在優越性的證據。它不證明所有候選都有用、勝出者會一直最好,也不證明優勢能延續到新的市場狀態。
將每個候選表示為可比較的表現差值
令 d[k,t] 表示候選 k 在期間 t 的表現減去基準同期表現;數值越大應始終越有利於候選。比較報酬時,可以用候選的淨報酬減去基準的淨報酬。比較預測損失時,則反向定義為基準損失減去候選損失。符號約定必須始終讓正值代表候選占優。
所有候選的每一列都應對應相同時間區間。統一幣別、報酬口徑、融資處理與成本政策。若研究結論針對可執行策略的報酬,應在計算 d[k,t] 前扣除相關佣金、價差、滑價、資金費與借券成本。檢定毛報酬、卻只在註腳提及成本,回答的是另一個問題。
候選 k 的樣本平均為 d̄[k] = (1/T) Σ_t d[k,t]。聯合虛無假設為 H0: max_k E[d[k,t]] ≤ 0,對立假設為 H1: max_k E[d[k,t]] > 0。整個家族共用一個基準,並用相同標準評估所有候選。若候選間有不同的缺漏日期或觀察頻率,應先定義合理且可辯護的共同樣本,再計算差值;不要默默給某個候選較有利的時間區間。
研究主張必須涵蓋完整候選家族
候選家族應包含所有可能影響最終勝出者的規則,例如測試過的回溯視窗、進場門檻、訊號組合、資產範圍、持有期間、投資組合限制與執行假設。看過結果後測試又棄用的人工變體也屬於搜尋。White 在 2000 年的論文中廣義使用「specification search」一詞:造成選擇問題的是篩選過程,而不只是最終表格。
有兩種相反的錯誤。遺漏曾幫助選出報告策略的實驗,會使校正後的檢定過於樂觀,因為 bootstrap 看到的搜尋規模小於實際規模。事後加入大量任意且無關的規則,又可能讓檢定不必要地保守,降低發現有用候選的能力。應按照實際選擇過程定義家族,並保留可稽核其邊界的研究紀錄。
檢定無法推斷從未記錄的實驗。只記下勝出參數的筆記不足以重建搜尋。應一併保存候選登記表、資料版本、評估日期、目標、成本假設與選擇決策。若家族是在看過結果後才更改,應說明改了什麼、原因是什麼;不要把事後建構的家族說成事前已固定。
最大值統計量把選擇過程帶入虛無分布
先計算每個候選的平均相對表現,再取其中最大值。一種常見的未 studentize 統計量是 Vobs = √T × max_k d̄[k]。最大值很重要,因為它代表產生表面勝出者的「挑選最佳」操作。若只檢定勝出欄位,就會從參考分布中刪掉這個選擇步驟。
Bootstrap 用來近似:若聯合的「無優越性」虛無假設成立,單憑抽樣波動可能產生多大的最大值。第 b 次 bootstrap 抽樣時,重新抽取所有候選按時間排列的差值向量,並計算中心化統計量,例如 V*b = √T × max_k(d̄*[k,b] − d̄[k])。中心化會將候選平均放在虛無假設最不利的邊界,也就是預期優勢為零;最大值則保留候選間的選擇過程。White 的論文建構最大值的 bootstrap 分布,並與觀察到的統計量比較。
重複這個過程許多次。調整後的 p 值是 bootstrap 最大值不小於 Vobs 的比例。抽樣次數為 B 時,常見的 Monte Carlo 估計為 (1 + count{V*b ≥ Vobs})/(B + 1)。不同實作可能在 studentization 方式或估計模型的處理上有所差異,因此應記錄統計量與虛無假設下的中心化規則。關鍵是每次重複都重新計算整個候選家族的最大值,而非只評估觀察到的勝出者。
重新抽樣候選歷史時保留相依關係
金融觀察值依時間排序。獨立打亂可能抹去序列相依、波動聚集,以及相關損益的連續區段;也可能扭曲那些經常對相同市場日作出反應的策略之間的關係。這些特徵會影響最大值統計量的尾部。因此,分別重新抽取每個候選或逐日有放回抽樣,可能產生錯誤的參考分布。
White 描述了移動區塊 bootstrap 等相依資料方法,並分析 Politis 和 Romano 提出的平穩 bootstrap。抽到一個區塊後,通常會接著取下一時點的觀察值;遇到隨機重新開始時,則從另一個抽到的日期重新起算。因此區塊長度服從指定平均值的幾何分布。在方法假設與參數設定適當時,它比 i.i.d. 抽樣更能保留短期序列。參見 Politis 和 Romano 關於平穩 bootstrap 的論文。
對策略家族,應抽取一條共用的時間索引序列,並將它套用到整列向量 (d[1,t], …, d[K,t])。如此既保留抽取區塊中的時間順序,也保留候選間同期的相依關係。依策略期限與相依診斷選擇區塊長度,並報告合理替代設定下結果的敏感程度。若研究流程包含重新估計參數,應判斷推論目標是否包括這個步驟;必要時在每次重抽中重新執行。只重新抽取已擬合且固定的報酬,可能把流程的一部分條件化後排除在外。
一個假設的 bootstrap 範例會改變解讀
假設研究者以 T = 252 個交易日比較三種策略與一個基準。扣除成本後,三者的每日平均表現差值分別為 +2.0、+1.0 與 −0.5 個基點。勝出者的平均值因此為 2.0 個基點,觀察統計量為 √252 × 2.0 bp ≈ 31.75 bp·√交易日。這種縮放是檢定統計量的一部分;它沒有除以估計標準誤,因此不是 t 統計量。
再假設進行 9,999 次平穩 bootstrap,三個候選使用同一組抽取日期。在這個假設結果中,1,199 個重複樣本的最大值等於或超過 31.75。加一修正後的 Monte Carlo 估計為 (1 + 1,199)/(9,999 + 1) = 0.12。單獨檢定勝出者,假設可能得到 0.03,但會漏掉從三個候選中搜尋的過程。Reality Check 的 p 值比較整個候選家族,因此本例在 5% 門檻下不拒絕聯合虛無假設。
這些數字只是用來說明計算,並非實測市場表現,也不是 White 論文中的結果。p 值 0.12 不表示策略有 12% 的機率虧損。它表示在指定的 bootstrap 與虛無假設建構下,這麼大或更大的家族最大值並不罕見到足以在所選顯著水準拒絕原假設。樣本平均也不能說明扣除風險、容量與執行影響後是否具有經濟價值。
將調整後的 p 值視為關於指定家族的證據
較小的 Reality Check p 值反駁以下主張:在檢定假設成立時,納入的家族中沒有任何候選在預期表現上超過選定基準。由於虛無假設是聯合的,拒絕它不會自動指出哪個候選具有可持續優勢。不同樣本可能選出不同勝出者;即使拒絕家族層級的虛無假設,針對某個策略的證據仍可能薄弱。
較大的 p 值表示未能拒絕虛無假設,不代表所有策略都與基準等效。樣本太短、表現雜訊大、候選家族過寬、衡量不準確或檢定力不足,都可能造成這個結果。p 值也不是虛無假設為真的機率;它是在由候選集合、表現指標、基準、bootstrap 設計與觀察資料共同決定的參考分布下計算的尾端機率。
White 的問題是相對比較。某個規則可能勝過較弱的基準但仍虧損;也可能未勝過較強的基準卻仍有正報酬。應同時報告絕對與相對結果,以及不確定性、週轉率、最大跌幅、容量和實際成本。相對預測優勢的統計證據,與投資在經濟上的可行性,是兩種不同判斷。
依賴結果前先檢查假設與限制
原始理論對表現差值過程與其極限分布設有正則條件。White 的架構包括平穩且強混合的時間序列;相依型 bootstrap 也需要合適的區塊長度序列。在有限樣本中,市場狀態轉換、結構性斷點、長記憶、罕見跳躍和波動不穩定,都可能讓平穩重抽樣的近似值得懷疑。區塊 bootstrap 只能保留部分局部相依性,無法重現未知的未來市場狀態。
檢定也會承接資料與策略評估中的錯誤。前視資訊外洩、生存者偏差、修訂資料、不切實際的成交、遺漏成本、公司行動處理錯誤,以及看過結果後才選的基準,都可能使表現差值失效。若持有期間重疊,報酬可能在建構上就具有相依性;重新抽樣單位與區塊長度必須能反映這種相依性。若最後採用 Sharpe ratio 等非線性指標,應在每次重複中重新計算,不要假設報酬均值的 bootstrap 會自動檢定它。
Reality Check 的實作可能偏保守,尤其是大型候選集包含許多明顯較差的替代方案時。較寬的最大值分布可能讓拒絕虛無假設變難,即使存在一個好候選。Hansen 的 Superior Predictive Ability 檢定是相關的 bootstrap 方法,處理較差候選的方式不同;它不是通用替代方案,假設也需要檢查。應根據研究問題比較方法並報告敏感性,而非挑選能得出偏好結論的方法。
與時間順序驗證和其他選擇工具配合使用
White’s Reality Check 處理的是:考量選擇效應後,記錄在案的搜尋家族中是否存在相對基準占優的候選。它不能取代凍結策略的時間順序留出測試或 walk-forward 評估,也不會自行解決標籤重疊或資訊外洩。PBO 則總結組合切分中,樣本內勝出者排名低於候選中位數的頻率;PBO 原始論文定義了這項選擇風險診斷。虛假發現程序關注多次拒絕中預期的錯誤比例。Deflated Sharpe Ratio則針對選擇偏誤與非正態報酬,調整以 Sharpe 為基礎的顯著性評估。也可閱讀[金融領域的多重檢定與虛假發現率](/zh-TW/learn/multiple-testing-false-discovery-rate-finance-explained)、[PBO 與 CSCV](/zh-TW/learn/probability-of-backtest-overfitting-cscv-explained)、[walk-forward 驗證](/zh-TW/learn/walk-forward-validation-expanding-vs-rolling-windows-explained),以及[purged cross-validation 與 embargo](/zh-TW/learn/purged-cross-validation-embargo-time-series-finance-explained)。
實務審查時,先固定基準與表現定義,重建實際使用過的候選家族,計算逐期配對差值,選擇並說明保留相依性的重抽樣設計,再報告最大值統計量與 bootstrap 尾端機率。接著用較晚的時間序列資料檢驗凍結的選擇流程,並分別評估成本與可執行性。Sullivan、Timmermann 和 White 將此方法應用於技術交易規則,說明規則全集的重要性:若推論納入完整搜尋,而非只有報告的勝出者,結論可能不同。Reality Check 校正特定的選擇問題;它不是回測能在實際交易中存活的證書。
常見問題
Q1White’s Reality Check 檢驗什麼?
它檢驗指定搜尋家族中表現最佳的候選,在考慮候選間的選擇後,其預期表現是否高於選定基準。
Q2較小的 Reality Check p 值能證明策略會獲利嗎?
不能。它是在選定基準、指標、資料與 bootstrap 假設下,反對家族層級無優越性虛無假設的證據;不保證未來報酬或淨獲利。
Q3為什麼使用區塊 bootstrap,而不是獨立重抽每天?
區塊可以保留部分局部序列相依性;對所有候選使用共用日期,也能保留同期關係。區塊設計仍必須符合資料與研究問題。
資料來源與延伸閱讀
回報問題
我們會準備一封包含本文連結的電子郵件。寄出後,Mark 才會收到你的回報
快速檢查
讀完指南後,用 3 道題檢查一下
問題 01
White 的聯合虛無假設表示什麼?
選擇答案即可查看解釋
期權術語表
清楚解釋從買權、賣權和選擇權鏈到 IV、希臘字母、未平倉量與最大痛點等核心選擇權術語
瀏覽期權術語表