2022-12-26

WFE的兩個缺點

WFO是很普遍且方便的交易模型穩健性檢測工具,最早由Robert Pardo於1992年在其著作『Design, Testing, and Optimization of Trading Systems』內提出,作者其實是取經自機器學習的領域,把機器學習那套搬到交易模型世界,但作者為了求簡便,在作法上有點取巧,導致WFE有兩個缺點:

  1. WFE使用淨損益,而非Risk-Adjusted Return
  2. WFE裡面切割樣本內(IS)與樣本外(OOS)前沒有做Shuffle處理
雖然WFO有其缺點,又是個很老舊的東西,但畢竟WFO是使用者不用額外寫程式,交易平台就可直接提供的模型穩健性檢測工具,所以還是有其價值。

WFE使用淨損益,而非Risk-Adjusted Return

WFE只使用淨損益,完全沒考量到風險,而嚴謹的交易,獲利與風險總是一起考量的,這是第一個缺點,以下圖為例,Robert Pardo原始WFE為76%,計算如下(IS與OOS的比例為8:1)

Robert Pardo原始WFE=樣本外年化淨損益/樣本內年化淨損益

(6887.98 / (51583.84 / 8) + ... + 1759.32 / (58257.90 / 8)) / 7 = 76%


我們把Risk-Adjusted Return定義為Net Profit / (1.5 * Average MDD),再把原本的公式上的Net Profit這項取代成Risk-Adjusted Return,修正版WFE計算如下(WFO另存CSV檔後,可在Excel簡易算出)

修正版WFE=樣本外年化績效Risk-Adjusted Return/樣本內年化績效Risk-Adjusted Return

((6887.98 / (9895.41 * 1.5)) / ((51583.84 / 8) / (5260.61 * 1.5)) + ... + ( 1759.32 / (9895.41 * 1.5)) / ((58257.90 / 8) / (5260.61 * 1.5))) / 7 = 41%

註:(1.5 * Average MDD)是MC WFO的PostOptimization Risk的計算方法

修正版WFE瞬間由76%跌落到只剩41%

WFE裡面切割樣本內(IS)與樣本外(OOS)前沒有做Shuffle處理

真正的機器學習在切割樣本內與樣本外前,會先做Shuffle處理,為的是達到隨機性,讓資料本身不會產生偏差,但Robert Pardo的WFO只是依時間先後直接整段切割樣本內與樣本外而已,缺少了Shuffle處理,這樣的取巧其實是有問題的,有交易經驗的人,應該都有這樣的經驗,相同的交易模型在某些年可能特別好做,但在某些年可能特別難做,所以少了Shuffle的隨機性處理會導致樣本外可能會比樣本內特別好做,也或者樣本外可能會比樣本內特別難做,如此WFE就會因為資料本身的偏差而產生偏差,所以Robert Pardo的WFE本身是具有偏差的。

Robert Pardo在其著作『Design, Testing, and Optimization of Trading Systems』內寫著下面這句話:

『It is good if a walk-forward test produces a profit and a WFE of at least 50%.』

作者這句話說,要滿足以下兩個條件,才會比較好

  1. 樣本外能獲利
  2. WFE超過50%

但或許有些人會覺得在輔以投資組合的截長補短機制下,只要交易模型的樣本外能獲利就好了(樣本外績效 > 0或原始WFE > 0%),沒必要對顯著性要求這麼高(原始WFE > 50%),因此而忽略了這句話的第二個條件,不過雖然作者沒明說,但其實這句話的第二個條件在某個層面上是用來應付因為取巧而導致WFE本身具有偏差的問題

註:如果WFE本身沒有偏差或只有很低的偏差的話,在輔以投資組合的截長補短機制下,確實只要交易模型的樣本外能獲利就可以了,WFE的最低門檻可降到10%或20%,不過可惜的是,在Robert Pardo原始設計上,WFE本身是具有一定程度的偏差的。

思考以下情況,就可看出這句話是如何應付此問題與其背後寧可錯殺也不可放過的犧牲:

WFE=樣本外年化績效/樣本內年化績效


情況一:

  • 假設樣本外具有比樣本內好做50%的程度
  • 原始WFE = 20%(樣本外年化績效 = 20;樣本內年化績效 = 100)
  • 如果還原實際的情況,WFE真實的值大約是-30%(20% - 50%)
還原後WFE真實的值是-30%,小於零代表交易模型的獲利其實是不可靠的,如果採取原始WFE > 50%的標準,自然會拒絕此不可靠的交易模型,所以OK;但如果採取原始WFE > 0%的標準,則會接受此不可靠的交易模型,所以不OK。


情況二:

  • 假設樣本外具有比樣本內好做50%的程度
  • 原始WFE = 51%(樣本外年化績效 = 51;樣本內年化績效 = 100)
  • 如果還原實際的情況,WFE真實的值大約是+1%(51% - 50%)
還原後WFE真實的值是+1%,稍微大於零代表交易模型的獲利有一點點的可靠性,如果採取原始WFE > 50%的標準,則會接受此有一點點可靠性的交易模型,所以還算OK


情況三:

  • 假設樣本外具有比樣本內難做50%的程度
  • 原始WFE = 20%(樣本外年化績效 = 20;樣本內年化績效 = 100)
  • 如果還原實際的情況,WFE真實的值大約是+70%(20% + 50%)
還原後WFE真實的值是+70%,遠大於零代表交易模型的獲利具有很好的可靠性,如果採取原始WFE > 50%的標準,則會拒絕此具有很好的可靠性的交易模型,這是不OK的(錯殺),這也是作者要求WFE要超過50%,以應付WFE本身具有偏差的問題背後的犧牲


延伸閱讀