2017年5月7日 星期日

交易系統建構其之十二-樣本外資料測試


  即使做了萬全的測試,但是你還是不知道交易系統正式上路之後,會不會就完全變了樣。與其拿真金白銀當賭注,不如在一開始的測試就預留一段期間作為樣本外資料,看看你的系統在樣本外資料是否一樣有效。


  這也是為什麼我們之前的測試期間都只到2011年的原因:我們需要一段期間作為樣本外資料。

  在開發策略進行歷史回測的時候,我不會在一開始就把所有的價格資料都拿來測試,我自己的習慣大概是預留三分之一的長度,拿來測試的期間稱為樣本內資料,而預留的那段期間自然就是樣本外資料了。

  為什麼要這樣大費周章?如果回測沒有過度最佳化,那應該不會有問題吧?但是即使是最中立的測試者都會不自覺地做一些小調整,這就可能會影響到策略的穩定性。想像我們身處於2011年末,我們用了過去十一年的價格資料完成了交易系統的開發,期待在2012年初就讓系統在市場上大展身手,這個系統過去的表現很好,我們應該也沒有做什麼不必要的調整。但是心中還是有些小小的不安,畢竟聽過太多交易系統失效的故事,而我們面對不可知的未來往往心存恐懼。

  「如果這時候有人可以告訴我未來幾年市場會怎麼走就好了。」

  而樣本外測試,就提供了一個機會去模擬這個狀況:因為我們沒有用到2012年以後的價格資料,所以根本不可能經過調整來迎合2012年之後的市場走勢,因此只用2001-2011年的資料所開發出來的系統,如果在2012年之後仍然適用,那我們將這個系統實際應用到市場上的時候會更有信心。

  所以樣本外測試可說是交易策略的期末考,只有通過這個考驗,交易系統才有可能初步證明自己的獲利能力,進而開始做實際的交易。

  而由於我們每個策略都做了參數矩陣,所以觀察的重點還包括了每個參數組合在樣本內跟樣本外資料的表現是否有差異,那些在樣本內資料測試時表現優異的參數組合,在樣本外資料是否一樣優秀?還有我們為了侷限最大連續虧損所訂下的部位規模,在樣本外資料呈現的績效與最大連續虧損是否符合我們的預期?最後我們還會將整體的績效連接起來,並且討論時間切分點對交易系統發展的影響:如果我們今天是用2001-2010年做樣本內資料,很有可能會毀了整個交易系統的發展。

  真的假的?才差一年耶,這個通過2007-2008次貸風暴考驗的交易系統居然會死在2011的歐債危機上?

  當然,系統是中性的,沒有死不死的問題。會死掉的是交易者對系統的信心。這是一個很有趣的議題,而且困擾著許多系統交易者:如果你運氣不好,很可能在一開始就會被三振出局。


  所以下一篇,我們會研究之前介紹過的多方季線架構順勢策略,在樣本外資料的表現及其原因。

1 則留言: