Skip to content
所有選擇權指南
回測中的資料探勘校正閱讀約12分鐘

交易規則的 White Reality Check 與 Hansen SPA 檢定

比較 Reality Check 與 SPA 如何檢驗搜尋過的交易規則集合,了解全域虛無假設、聯合自助抽樣與結果解讀的限制。

本指南內容回測第一名為何不能當成預先指定的單一策略來檢定

簡短摘要

White 的 Reality Check(RC)和 Hansen 的 SPA(Superior Predictive Ability)檢定,會問搜尋過的候選集合中,是否至少有一項規則勝過事先指定的基準。兩者都會納入同一份樣本中挑選最佳候選的影響,但不會替個別規則背書,也不保證未來獲利。

回測第一名為何不能當成預先指定的單一策略來檢定

如果在看資料前只設定一個策略,單一比較檢定或許符合問題。但若先測試多項規則、查看結果,接著把第一名當成一開始就唯一選定的候選來檢定,就忽略了搜尋過程。即使沒有任何規則真有優勢,從許多含有雜訊的估計值中取最大值,也可能只是因為它是最大值而呈現正值。針對預先決定之單一候選的 p 值,沒有考量同一份樣本已被反覆用來挑出贏家的事實。

RC 與 SPA 處理的是整個候選集合的問題:計入已試過的選項後,是否有證據顯示至少一項候選在事先選定的表現指標上勝過基準?候選可以是技術交易規則、預測模型或其他策略。White 提出資料探勘檢定架構,用來測試規格搜尋中表現最佳的模型是否優於指定基準 (White, 2000)。Sullivan、Timmermann 與 White 將這個架構應用在大範圍技術交易規則上 (1999年研究)。校正範圍應涵蓋曾影響結果選擇的候選,而不只是最後留下的贏家。多重檢定與 FDR 指南談的是相關但不同的問題。

固定基準、候選集合與比較差值

以 k 表示候選集合 K 中的一項規則,t 表示所有候選與基準共同評估的日期。若比較報酬率,每期差值可以定義為:

d(k,t) = 候選 k 的淨報酬 − 基準的淨報酬

正值代表候選表現較佳。若比較預測損失,則將次序反過來,用基準損失減去候選損失,讓正值仍代表候選較佳。所有候選和日期都應使用一致的正負號方向。測試前也要固定候選集合、基準、評估日期、成本處理方式,以及「較佳」的定義。平均淨報酬差本身不等於風險調整後報酬,也沒有直接衡量最大回撤。

將候選 k 的期望差值寫成 μ(k)=E[d(k,t)],整個集合的假設如下:

H0: max(k∈K) μ(k) ≤ 0 H1: max(k∈K) μ(k) > 0

這是較弱的全域虛無假設:沒有任何候選具有正的期望優勢,但個別規則的真實差值可以是負數。檢定對整個集合做一項聯合判斷,而不是替每項規則各自提出互不相關的結論。基準和表現指標若未固定,檢定結果便可能被誤用於它實際沒有回答的問題。

實際建立虛無分布時,不應只把觀察到的贏家挑出來重複抽樣。一般會依虛無假設將各候選序列中心化,並在每次重複中重新計算整個集合的最大統計量。如此才把原先的搜尋步驟納入參考分布。中心化方式、候選欄位的聯合抽樣與區塊設計共同決定這個分布;任一環節改變,都可能改變檢定校準。因此應說明使用的實作,而不只是寫「做了 bootstrap」。

Reality Check 使用完整集合中的最大值

令 d̄(k) 代表候選 k 在 n 個評估日期的平均差值。在單純的平均差設定下,RC 統計量是:

T_RC = max(k∈K) sqrt(n) × d̄(k)

接著將這個最大值與虛無假設下建立的自助分布比較。White 的方法採用複合虛無假設中最不利的邊界:建立虛無分布時,假設每個候選的真實期望差值都是零。虛無假設也容許候選的真實差值為負;全零邊界則把每項規則都設成與基準打平,因此可能較保守。若集合中包含很多弱勢候選,臨界值可能提高,使檢定更難拒絕虛無假設。上述 RC 公式直接取樣本平均差值的最大值,不會額外用零截斷。

關鍵在於最大值來自一輪搜尋。問題不是「第一名若單獨檢定是否罕見」,而是「對整個候選集合做同樣搜尋後,出現這麼大的最大值是否罕見」。只將贏家和預先指定單一候選的參考分布比較,會漏掉挑選過程。

ω̂(k) 不只是替統計量換一個單位。若某條規則的報酬差更不穩定,即使平均差較高,平均估計的不確定性也可能較大;標準化會把這點納入比較。時間序列若有自相關,長期標準差亦須反映跨期共變異,不能假定每天彼此獨立。SPA 實作可能採用下限、一致或上限等不同 p 值版本,報告時應說明選用哪一種,避免把定義不同的數字直接比較。

SPA 以標準化統計量和樣本相依虛無分布作調整

Hansen 的 SPA 檢定保留相同的候選集合、基準差值與全域虛無假設,但改變統計量和虛無分布的建立方式。其統計量可以寫成:

T_SPA = max(0, max(k∈K) sqrt(n) × d̄(k) / ω̂(k))

ω̂(k) 估計 √n d̄(k) 的長期標準差。標準化會考量各候選平均值的不確定程度,而非只比較原始平均差。外層的 max(0, …) 確保 SPA 統計量不會低於零,與上面未做正部截斷的 RC 公式不同。

另一個差異是虛無分布會相依於樣本。在一致版本中,樣本平均差值足夠負的候選,建立虛無分布時會繼續保留負值;看來合理、可能接近虛無邊界的候選則以零為中心。SPA 不會直接把表現差的規則從檢定集合刪除。這項安排旨在減少弱勢候選對虛無分布的影響,不像 RC 的最不利邊界會把所有候選真實差值都設定為零。Hansen 的論文說明,標準化和樣本相依虛無分布可能提升檢定力,並降低對表現差或無關候選的敏感度 (Hansen, 2005)。但 SPA 並非在所有資料和條件下都優於 RC。

聯合抽樣保留的不只是報酬的先後順序,也包括同一天各規則共同面對的市場衝擊。例如,多條移動平均規則可能在同一段下跌時一起虧損;若每欄獨立抽日期,重複樣本便會拼出原序列中不存在的組合。最大統計量會受候選間這種重疊影響。使用共同時間索引後,區塊內仍可保留局部持續性,但區塊邊界會接合不同片段,所以還要檢查區塊長度和樣本量是否足以支撐近似。

用共同時間區塊聯合重抽候選向量

不同規則在同一天經歷相同市場環境,因此候選差值可能同時變動。每項規則的序列也可能有時間相依性。如果每一個候選欄位分開抽樣,就會破壞同期共變異,進而改變最大值的虛無分布。因此,每個日期應把 d_t=(d(1,t),…,d(K,t)) 視為一個向量,對所有候選套用相同日期索引或相同的區塊順序。

時間區塊可以保留部分序列結構。例如,定態自助法將長度服從幾何分布的區塊接在一起;Politis 與 Romano 的研究探討弱相依定態觀察值的推論 (Politis and Romano, 1994)。任何區塊方法都不能保證符合所有依賴結構,仍須假設過程足夠穩定、相依程度足夠弱。若樣本有結構轉折或市場狀態改變,把整段資料視為同一穩定過程重新抽樣並不會消除問題。區塊自助法指南另行解釋固定統計量的區塊設計。

多條路徑匯聚到山峰,旁邊有天平、兩個抽象分布和成排的時間區塊,畫面沒有文字。
這是策略搜尋與不確定性分布比較的概念圖,並非任何檢定結果或實際觀察到的市場報酬。

240項規則只是說明乘法的假設例子

以下只用假設數字說明候選數量:12種回看期、4種進場篩選和5種出場設定,完整組合為 12×4×5=240 項。若所有設定都用相同日期、相同成本規則,並以事先固定的買進持有策略作基準,便可逐一計算每項規則的淨報酬差,再從240項候選中取最大值。

240只是算術例子,不代表任何真實測試。本文沒有提供或暗示報酬、p 值、檢定結果或獲勝策略。實際研究中,研究者也可能試過不同市場、持有期間、篩選條件、樣本區間、基準或費用假設。如果這些選項曾影響選擇,只列出最後的參數組合會低估真正的搜尋範圍。

「表現較佳」的指標也必須在檢視結果前決定。若使用平均淨報酬差,檢定不會同時回答波動度、最大回撤或資金占用是否更好。候選之間應使用一致的交易日期、成交條件、手續費、融資、借券和滑價處理方式;成本假設不同造成的差異可能被誤當成策略優勢。

兩種方法的輸出用途也不同:FDR通常協助決定一組個別假設中哪些結果能稱為發現;RC或SPA拒絕只顯示候選集合最大值相對基準有整體證據,不會直接產生可信的候選排名。固定策略的區塊信賴區間則估計一項預先選定統計量的抽樣範圍。即使區間不含零,也不會自動回答「從240個候選中挑出的冠軍是否已經過搜尋校正」。不能只因兩者都用到 p 值或 bootstrap,就把不同的推論目標互換。

這項乘法也假設設定完整交叉:12種回看期、4種篩選器和5種出場方式全都有測試,才會得到240項候選。如果某些組合彼此衝突、實際上無法執行,就應記錄真正跑過的版本;若研究者看過結果後又增加或刪除窗口、調整門檻,最後表格的列數未必呈現實際發生過多少次搜尋。重點不是把所有可能設定一律算入,而是如實說明哪些結果曾參與決策。

候選數量也不等於彼此獨立的檢定次數。例如,相鄰回看期或只差一種出場條件的規則,報酬序列可能高度相關;不能因此把240項候選想成240個獨立市場實驗。共同時間抽樣會保留樣本中觀察到的部分同期關係,再以整個集合的最大值建立參考分布。不過,若這種關係會隨市場狀態改變,歷史樣本中的共變異不一定適用於其他階段。

FDR與固定統計量的區塊信賴區間回答不同問題

Benjamini–Hochberg 等錯誤發現率(FDR)方法處理一組個別假設的 p 值,並在符合假設時控制拒絕結果中錯誤發現比例的期望值。RC 和 SPA 則針對候選集合相對基準的最大值進行一項全域檢定。兩者都和多重性有關,但無法互相取代。多重檢定與 FDR 指南另外說明 FDR 的目標。

一般區塊自助信賴區間也不是 RC 或 SPA。它可以估計預先固定的一項統計量有多少抽樣不確定性,例如單一策略的平均報酬或夏普比率。但若策略是在看過多個候選結果後才選出來,單一統計量的區間不會自動校正挑選贏家的過程。RC 和 SPA 的重點是每次都在整個集合中重算最大統計量,再與依虛無假設建立的分布比較。區塊抽樣只是處理時間相依性的一種計算設計;使用「自助法」這個名稱,不代表已完成搜尋校正。

p 值是在既定虛無假設、樣本和檢定設計下,衡量最大統計量有多極端;它不是策略未來虧損的機率,也不是虛無假設為真的機率。全域檢定拒絕後,如何選出個別規則仍是另一個問題。可在獨立或前瞻資料上預先設定新的選擇程序,但不能不斷用同一份確認資料調參,再把結果稱為獨立驗證。驗證會增加證據,卻不能排除市場制度改變或執行成本的不確定性。

Purged Cross-Validation(淨化交叉驗證)處理另一個問題:在按時間排序的資料中,減少訓練樣本與測試樣本之間的時間資訊洩漏。它不檢定候選規則集合的最大值是否超越基準;那是 RC/SPA 的全域檢定問題。Purged CV 與 embargo 指南進一步說明如何處理時間隔離。

拒絕虛無假設不會指出贏家或保證未來報酬

若 RC 或 SPA 拒絕全域虛無假設,結論只適用於指定的候選集合、基準、評估樣本、表現指標、虛無分布設計與假設:有集合層級的證據顯示至少一項候選依據所選標準勝過基準。它不會指出哪項規則的真實表現最佳,不會自動證明最後挑選的規則個別顯著,也不代表所有候選都獲勝。未能拒絕也不是證明所有規則相同或毫無用途,只表示這份樣本與此設計未提供足夠證據。

這類檢定不是未來報酬的預測,也不保證回測可以在實際交易中重現。未記錄的試驗、前視偏誤、存活者偏誤、不切實際的成本、市場衝擊和非定態問題仍需另行處理。若看過結果後再改變候選集合,檢定涵蓋的搜尋範圍也會改變。若要對單一規則作結論,應採用適合候選層級的推論程序,並以未參與篩選的資料驗證;即使如此,也不能保證未來市場狀況與過去相同。

解讀統計顯著性時,還要分清估計目標和操作決策:全域檢定拒絕支持「某項候選可能勝過基準」的集合層級判斷,但實際部署仍要在規則中選擇。若再用同一份回測繼續挑參數,卻把後來的結果稱為確認性證據,就再次引入選擇。可以事先規劃新的確認資料、評估指標和停止規則,並與原先探索分開記錄。即使確認結果支持候選,也只是另一個樣本及流程的證據,不會讓RC或SPA變成報酬保證。

記錄設定,讓檢定可以重現

報告應列出基準、完整候選集合及其形成方式、日期和頻率、淨報酬或損失差值的定義、成本、選定指標、檢定名稱及 p 值。若使用 SPA,也要說明實作版本和採用哪一種 p 值。另須交代自助法、區塊長度或平均長度、重複次數、共同抽取時間向量的方法,以及虛無分布的建立方式。

也應保存選出贏家前嘗試過的市場、參數、篩選、持有期限、成本假設和重新執行紀錄。若最後只檢定縮小後的集合,須說明篩選方式以及使用過哪些資料。這些資訊能讓讀者判斷校正是否涵蓋真正的選擇程序。RC 或 SPA 結果仍是以描述的樣本和假設為條件之集合層級統計證據,不會取代對實際交易執行和策略後續表現的檢視。

常見問題

Q1SPA 是否一定比 Reality Check 有更高檢定力?

不是。SPA 的標準化與樣本相依虛無分布可能減低弱勢候選的影響並提高檢定力,但結果取決於資料和假設,兩種方法並沒有在所有條件下的固定優劣。

Q2SPA 顯著是否告訴我該選哪條規則?

不會。它提供的是整個候選集合中至少一項可能勝過基準的全域證據。要選擇個別規則,還需要適合候選層級的方法,以及未參與篩選的資料作驗證。

Q3可以把表現差的試驗從檢定集合中移除嗎?

若你在選出贏家前已嘗試過那些規則,排除它們可能低估搜尋範圍。解讀校正結果前,應界定並記錄曾影響選擇的相關候選。 主要研究 - White, “A Reality Check for Data Snooping” (2000) - Hansen, “A Test for Superior Predictive Ability” (2005) - Sullivan, Timmermann, and White, “Data-Snooping, Technical Trading Rule Performance, and the Bootstrap” (1999) - Politis and Romano, “The Stationary Bootstrap” (1994)

資料來源與延伸閱讀

回報問題

我們會準備一封包含本文連結的電子郵件。寄出後,Mark 才會收到你的回報

快速檢查

讀完指南後,用 3 道題檢查一下

問題 1 / 3

問題 01

RC 和 SPA 的全域虛無假設代表甚麼?

選擇答案即可查看解釋

期權術語表