[轉(zhuǎn)] 程序化交易之避免過(guò)度最佳化
程序化交易策略的設(shè)計(jì)有個(gè)大難題,不論是新手或老手都會(huì)一直感到困擾的問(wèn)題是: 我的程序化是否過(guò)度最佳化了?
以我們現(xiàn)在開(kāi)發(fā)程序化交易策略的方式,是將歷史資料作為數(shù)據(jù),套用各種不同的邏輯來(lái)測(cè)試,希望能找到一種通則可以適用在對(duì)未來(lái)的預(yù)測(cè)。這樣的方式是利用歸納法找出通則,而通則是表示有一定的機(jī)率,也可以當(dāng)作是我們回測(cè)的勝率。
但若將前述各種不同的邏輯條件增加的越來(lái)越多,就會(huì)越來(lái)越像是對(duì)數(shù)據(jù)作細(xì)節(jié)的描述,可以得到很漂亮的測(cè)試,但對(duì)未來(lái)的預(yù)測(cè)能力必然不如對(duì)過(guò)去的好,這很像是考試前把所有的考古題答桉背下來(lái),而不是真的瞭解怎么解答,那當(dāng)考試時(shí)題目稍有改變就不會(huì)寫(xiě)了。
有指標(biāo)就一定有參數(shù),有參數(shù)就一定要作選擇,選擇參數(shù)的個(gè)數(shù)及個(gè)別的范圍還有更大的考量是,要怎么判斷是否也用了太多指標(biāo)以致于最佳化了? 或許它真的就是這么準(zhǔn),也沒(méi)什么不可能。
那怎么辦?
目前并沒(méi)有主動(dòng)正向的建議或準(zhǔn)則說(shuō)明該使用多少參數(shù)或指標(biāo)個(gè)數(shù),只有被動(dòng)的再去測(cè)試,常用的方法是forward backtesting,就是把數(shù)據(jù)切兩部份,一部份測(cè)試合適參數(shù),另一部份作為未知數(shù)據(jù)來(lái)測(cè)試結(jié)果。假設(shè)同一組參數(shù)在這兩部份的運(yùn)作情形差異不大,那很可能表示這組參數(shù)是夠穩(wěn)健的,若在兩部份的差異很大,那好險(xiǎn)有先作測(cè)試…
這邊說(shuō)的差異大不大要如何判斷? 可以利用之前談過(guò)的交易策略評(píng)估,參考連結(jié)
交易策略評(píng)估-Kelly formula
交易策略評(píng)估-獲利風(fēng)險(xiǎn)比
交易策略評(píng)估-損益期間
(交流會(huì)的朋友知道怎么從測(cè)試報(bào)表中,較快速的選擇合適參數(shù)了)。
以上,是針對(duì)單一策略作forward backtesting來(lái)判斷是否過(guò)度最佳化,但作了也評(píng)估過(guò)了,能表示未來(lái)績(jī)效會(huì)和測(cè)試時(shí)一樣好嗎? 當(dāng)然,還是不一定的,唯一可以確定的是對(duì)這支策略的信心和瞭解更加提昇了,這也是很重要的。
除了forward backtesting之外,避免程序化交易策略過(guò)度最佳化是從策略組合的角度來(lái)設(shè)計(jì),簡(jiǎn)單的說(shuō),就是讓各策略專注。專注在目標(biāo)上,目標(biāo)是長(zhǎng)波段10%行情、中波段3%行情、當(dāng)沖策略、極短線策略、震盪盤(pán)策略或是針對(duì)只作多空單方向的特殊策略等等。
在設(shè)計(jì)這些程序化交易策略時(shí),單一的目標(biāo)要夠明確,例如想設(shè)計(jì)一個(gè)大行情必吃的策略,那小行情就不予理會(huì),或許能作到避開(kāi)損失就夠好了,千萬(wàn)不要想連震盪小行情也吃的到,因?yàn)檫@樣很可能又會(huì)陷入多重邏輯的陷阱。
以交流會(huì)談到的故事來(lái)說(shuō),動(dòng)物界舉辦了鐵人三項(xiàng)比賽,項(xiàng)目是飛行、短跑和游泳,老鷹在飛行項(xiàng)目得了第一名,但是短跑和游泳都不行,獵豹在短跑得了第一名,但是另兩項(xiàng)不行,海豚則是游泳第一名,但另外兩項(xiàng)也不行。最后這項(xiàng)比賽的冠軍是一隻鴨子,三項(xiàng)都會(huì)一點(diǎn),雖然都不怎樣。
這故事和程序化交易策略有什么關(guān)係? 假如我們希望設(shè)計(jì)一個(gè)任何狀況都適用的策略,什么行情大小都要吃到,那么就可能會(huì)設(shè)計(jì)出一個(gè)什么都吃不好的鴨子,而好的作法應(yīng)該是建立一個(gè)團(tuán)隊(duì),由老鷹、獵豹和海豚組合的超級(jí)戰(zhàn)隊(duì)。
這和避免程序化交易策略過(guò)度最佳化又有什么關(guān)係? 當(dāng)我們專注在特定目標(biāo)設(shè)計(jì)策略可以有較簡(jiǎn)化的邏輯,同時(shí)在組合時(shí)又可以有效的截長(zhǎng)補(bǔ)短,這個(gè)有不有效,主要是指降低整體drawdown,也就是看老鷹、獵豹和海豚彼此合不合,這個(gè)戰(zhàn)隊(duì)能否發(fā)揮綜合效果,這部份下篇再紀(jì)
您需要 [注冊(cè)] 或 [登陸] 后才能發(fā)表點(diǎn)評(píng)