績效回測 - 敏感度分析


敏感度測試 → 提早避開危險

如果想避開「過度最佳化」、「曲線套入」,
你該怎麼做?

一般人的做法是,
「使用足夠樣本、避免過多參數、避免策略過於複雜、不過度回測、使用樣本外資料。」

「最重要的,不要過度樂觀。」
只要我們不欺騙自己,便不會進行過度最佳化與曲線套入。

這不代表這些危險就不會發生。
有些時候只是你的無心之過,例如:

1.樣本還是太少...並非真的太少,而是樣本的數據欠缺多樣性,例如使用的區間內完全沒有經歷大空頭市場。

2.參數還是太多...只用了2個平均線的參數怎麼叫多?其實你用到的open、high、low、close開高低收,也都是參數。你用的每一個轉換的function,取移動平均等等,也都是參數。可以試問自己,為什麼用收盤價? 如果改成今天開盤價會有甚麼影響,改成下一根的收盤價,會有甚麼影響? 換成加權移動平均,會有甚麼影響。

完整的市場資料絕對必要,
但參數多並非全然不好,為了實現策略的完整性,必要的參數便無法太簡化。

敏感度分析,可以透過簡單的調整參數,測試資料的敏感性,去驗證策略是否禁得起小幅變化考驗。有疑慮的策略即便只是微調數據也會對績效產生極大變化,如此在未來的市場它將不堪一擊。

一般大多只會調整數值參數,對時間軸、週期等參數大小作調整。
以下提供另外兩種操作簡單的另類測試:

1. 晚一點進出場 & 早一點進出場
對長如持有10天以上的波段單來說,晚一天和早一天收盤或改成開盤價進出場,不應該對績效產生過大差異,或是晚一天最高價或提早一天最低價進出場等等亦同。對當沖策略來說例如晚5分鐘或晚10分鐘進出場,重要的不是多久,也不是這些績效的高低,而是觀察績效是否有出乎意外的變化。(如果因為這樣測出更好的績效,就因此改變策略的話,自求多福吧 !)

2.固定時間出場
使用固定時間出場,意味著出場為隨機,策略的好壞將完全取決於進場策略的能力。根據策略持有長度,不同的固定時間出場,例如10天、15天,不應該與預計的績效有過大落差。



「Trust,but verify.」
信任,但要驗證。 -雷根總統



沒有留言:

張貼留言