策略參數(shù)如何優(yōu)化?同樣的策略模型,為什么每個人的運行結(jié)果不同?

2018-10-3 / 已閱讀:2531 / 上海邑泊信息科技

程序化交易策略開發(fā)完畢,并不是就完全結(jié)束,直接投入實際操作。實際運行之前,還需要對模型策略各個參數(shù)進行優(yōu)化調(diào)整,不同的參數(shù)也會導(dǎo)致最后運行結(jié)果有很大差異。這就是為什么同樣的策略模型,不同人使用它的時候結(jié)果差異很大的原因之一。那么如何進行策略參數(shù)搜索優(yōu)化呢?

一個最簡單的策略模型,比如均線組合策略。它由兩個均線指標組成:MA(m),MA(n)。如果m是長周期的話,比如取值20~40,那么n則是短周期,比如取值10~20,可以設(shè)置它們步進都是1。用它們組成程序化交易均線組合策略。當MA(n)上穿MA(m)時,買平開;上MA(n)下穿MA(m)時,賣平開。這個時候可以通過使用m*n的二維參數(shù)搜索尋找在[20~40][10~20]矩形塊上的最優(yōu)收益率。如果進一步擴大這個矩形塊,或者使用其它周圍的矩形塊做搜索實驗,會發(fā)現(xiàn)收益率波動也存在周期性,想波浪一樣,所以在這個小矩形塊里窮舉優(yōu)化已經(jīng)夠了,不需要在更大范圍窮舉。

對于簡單的策略模型,比如只有2個參數(shù)的,直接使用窮舉優(yōu)化就夠了,不需要其它特殊的策略參數(shù)搜索優(yōu)化算法和復(fù)雜計算模型架構(gòu)。而很多實際運營的模型策略可能比上面這個復(fù)雜得多,比如考慮止損和止盈的時候,可能又會增加止損點x%和止盈點y%。然后也會給它們設(shè)置一個范圍,比如從1%20%,然后需要計算機執(zhí)行優(yōu)化給出一個最優(yōu)參數(shù)組合。這個時候搜索空間從2維擴展到了4維,如果仍然使用窮舉法,計算量會成指數(shù)增長。在不增加計算機資源的情況下,實際上可以采用參數(shù)分批優(yōu)化和嘗試。比如首先優(yōu)化MA(n)MA(m),選擇最有點、最差點、中間點,然后針對這三種情況,固定mn再去優(yōu)化x%y%,看看對模型指標整體收益情況有多大改善,這個時候針對x%y%的優(yōu)化則從原來的4維降到2維了。針對這個策略,對于大部分品種行情的實際結(jié)果是,設(shè)置x%y%的止損和止盈,其實對策略收益率整體幫助并不大,聽起來不錯的想法,實際當中其實沒什么用,通過嘗試后,可以將這個x%y%去掉,簡化模型為原來的2維。最后,還是簡單唯美。

有的模型策略,可能會有幾百個開關(guān)和參數(shù),對于這種情況,也要取輕避重,除了自己明確知道開關(guān)和參數(shù)意義的以外,剩下的參數(shù)要么分批優(yōu)化,要么大部分作為基本不變的固定參數(shù)放在那里。這樣,可以將幾百維的策略空間很容易地降維到2~3維來處理。

而對于實在沒辦法分解和降維的策略模型,只能使用并行計算機加快對高維空間策略優(yōu)化的搜索速度,或者使用單純型最優(yōu)化算法、遺傳算法、人工智能神經(jīng)網(wǎng)絡(luò)來優(yōu)化搜索最有參數(shù)組合了。而一個投入運行的程序化交易策略,可能需要每天或每周都要進行一部分參數(shù)的調(diào)整優(yōu)化,以適應(yīng)市場特性的變化演化。

 

 


上一篇:跨周期策略怎么開發(fā)?如何高效運行跨周期策略?
下一篇:做股票分析的時候為什么要做除權(quán)復(fù)權(quán)處理?都有哪幾種復(fù)權(quán)?

推薦列表

返回博客