伴隨著我國金融市場的不斷發展,尤其是股票和期貨的日新月異,越來越多的投資者開始建立自己的交易系統來指導自己的投資行為。但很多投資者在設計和使用交易系統時往往會遇到的這樣一個問題:為什么自己的交易系統在使用歷史數據檢測時表現優異,但是用于實戰的時候就表現平平,甚至虧損呢?
普通的分析者在分析這個問題時主要將原因歸結為投資者沒有嚴格執行交易系統,或者認為歷史數據準確度低等等。但事實上一個至關重要且被很多人忽視的原因是,此交易系統在檢測時使用了不恰當的檢測方法,也就是說,投資者所看到的交易系統在歷史數據中的表現優異很可能只是一個假象,這樣的系統在實戰中的表現不盡如人意便也是情理之中。
通常設計程序化交易系統的步驟是這樣的。第一,制定一個交易模型,交易模型中含有若干參數;然后根據歷史數據優化這些參數;選定參數之后利用歷史數據中檢驗交易系統的表現。一般情況下,問題主要出現在第二步和第三步――模型設計者可能在優化參數和檢測系統的過程中使用的是相同的數據集!這一點初看起來貌似并無問題,但是,具有比較豐富數學知識的人可以告訴你,這種錯誤是致命的,最后很有可能使得在歷史數據中表現越好的系統在實戰中表現越糟糕。
筆者認為解決這個問題的辦法在于,交易者需要把歷史數據分成兩份,一份用于優化參數,另外一份用于檢測模型的效果。如果交易者的模型在這種情況下依然能有比較優異的表現,那么這個模型在實戰中的效果就比較能夠得到保證了。
交易者使用程序化交易系統進行交易,如果系統不能有效的經受住歷史的檢驗,那么這樣的系統投入到實戰中也不過只是讓交易者叫更多的學費罷了。