如何在策略回測中避免過度擬合 (overfitting) 以及保證測試參數的穩健性 (robust)?

在策略回測中很容易會過度優化參數,使得這些策略在實盤交易中表現不佳,一個可靠的方法是把測試數據分為兩個樣本,一個樣本內數據,一個樣本外數據,在樣本內數據中測試與優化,而在樣本外里做檢驗,但問題是樣本外數據中只能使用一次,並不能保證參數是穩健可重複的,這就引出一個問題,如何保證測試中的參數在未來仍是穩健是可重複的?有沒有什麼系統性的檢驗穩健性的方法?


謝邀

物理學家戴森年輕時就一個問題請教費米,費米講了一句日後很著名的話:「我記得我的朋友約翰·馮·諾依曼(John von Neumann)曾經說過,用四個參數我可以擬合出一頭大象,而用五個參數我可以讓它的鼻子擺動。」

所以對於交易來說,很重要的一點就是參數一定要少,或者是「參數/交易次數」要足夠小。經驗來看一個平均每日交易一次的策略,進行遍歷的參數最多也不要超過三個,否則很容易陷入過度優化的陷阱。

樣本內外進行測試也是不錯的方法,可以採用較近的時間段進行遍歷,利用較遠的時間段來觀察其表現。

當然也可以採用不斷滾動的時間窗口進行遍歷;或者對行情進行分類後分別遍歷,然後通過主觀判斷市場後對不同階段市場採取不同參數組的半人工方法。

同時在參數選取時重要的一點是,不僅僅要看該點的參數獲利如何,同時還要看這個參數附近的值域獲利如何。做出參數和獲利的曲線圖後,孤立的高點顯然更有可能是特殊的偶然情況造成的(尤其對交易次數不多的策略來說),而成片的高點說明該參數穩定性可能會更好。


The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality

http://link.brightcove.com/services/player/bcpid2207682327001?bckey=AQ~~,AAAAt6-8xFk~,r8nyyutNWdB9cOzqmiiiQxC0oXMNGP7dbclid=2204845638001bctid=3878525144001

ILLEGITIMATE SCIENCE: Empirical Discoveries in Finance

Presentation at the Annual Conference of Wharton"s Jacob Levy Equity Management Center for Quantitative Financial Research.

Jacobs Levy Equity Management Center for Quantitative Financial Research, Wharton, University of Pennsylvania.

https://www.youtube.com/watch?feature=player_embeddedv=KKduDAbZ4Uk


如果單個參數稍微調整一下就會造成策略表現巨大波動的話,就基本可以斷定過度擬合了。

一個穩健的策略,參數應該能取一個範圍,而不會引起很大的影響


過分擬合,用白話說就是:

看到答案湊過程,

該賺的錢 正好被全賺到,

該虧得錢 正好被全閃避。

能發生這些開單巧合,本質上是回測數據太少。

解決方法是把回測時間拉長,測試開始時間統統拉到2007年之前。


首先是數據源。樓上有提到用bootstrap,確實可以採用。你可以把數據分成多個block,比如兩年的5分鐘數據,分成若干組組,再隨機打亂重組形成新的數據,再打亂再重組,這樣可以形成比原來多很多的數據。為保證行情的連續性,建議在分組的時候以某個固定數值為界,一般我用眾數。好了,第一步數據不足的問題算是解決了,你可以在此基礎上再分樣本內,樣本外。

再是參數尋優。方法就那麼幾個,最起碼的一點是要保證得出最優解的參數落在一定的參數高原內,比如最優的參數是50,而第二名到第十名的參數都是100以上,那第一名的參數就不可取。

最後是實測。一般一個月以上,看你交易的時間跨度,最起碼要有三十次的交易。具體運行的話,我個人對策略的失效標準是最大回撤或連續虧損次數,超過這個即認為失效。

其他也沒啥了,一點拙見,祝你好運。


避免曲線峭壁;推進分析;參數要精簡,對結果影響不大的要撇掉。


所有這類問題的答案都有兩個

1,參數太多。退一步海闊天空。

2,參數不夠多。遊戲升級。

但出於人類的本能,前者只是權宜之計,早晚走向後者。而後者的結果往往是推倒模型的主框架。

不破不立。


簡單提兩點吧:

  1. 參數的選擇最好是有理論或者經驗依據的。比如說商品期貨中,不同品種的生產周期、宏觀經濟等等都會對參數的設定有所影響,不同品種之間也會有所差異。
  2. 如果完全不考慮第1點,在參數優化的過程中,「參數高原」是你尋找的目標,而不是某一個參數高峰。


為何忽略策略邏輯這個前提呢


統計里常見手段是bootstrap


一堆英文,這也太高大上了吧。

好吧,土豪來回答一下

其實這事,真的挺簡單

我一般回測的話,1h的系統,3年,7個貨幣對(外匯、純手工)

如果回測效果還不錯,7個貨幣對,10年

4h的系統就更別提了

如果對交叉盤按耐不住的話,那就...

我個人認為不存在過度優化參數的可能性,出現過度優化參數的情況,是你對市場了解的片面而已

如果說市場是個姑娘,那她時而風騷,時而羞澀,時而狂野,讓你摸不著頭腦。你嘗試著畫一個風騷姑娘的肖像,這...

而且,你能確定市場是個姑娘嗎?


推薦閱讀:

一些數學理論在實際的金融工程的工作中是如何運用的?需要掌握的多深呢?
自學金融工程可以從哪方面入手?
哥倫比亞大學金融工程或金融碩士?
怎麼區分alpha因子和風險因子?
金融(工程)專業有必要系統的學習演算法嗎?

TAG:量化研究 | 量化交易 | 金融工程學 |