設(shè)為首頁 | 加入收藏 | 今天是2024年11月13日 星期三

聚合智慧 | 升華財(cái)富
產(chǎn)業(yè)智庫服務(wù)平臺

七禾網(wǎng)首頁 >> 期貨讀書 >> 期貨書籍推薦和摘錄

《量化交易之門》連載19:參數(shù)最佳化

最新高手視頻! 七禾網(wǎng) 時(shí)間:2017-04-19 11:17:48 來源:七禾網(wǎng)

在之前介紹均線系統(tǒng)的時(shí)候,我說了均線系統(tǒng)的日線的置信區(qū)間在5-36這個(gè)范圍,也就是說,如果要以單均線來作為開平倉模塊的話,應(yīng)該這個(gè)參數(shù)選擇在5-36之間。


這個(gè)區(qū)間是怎么得到的呢,主要是靠兩個(gè)方面,一是經(jīng)驗(yàn),二是回測。經(jīng)驗(yàn)需要大量的交易去試錯,而回測則可以通過電腦技術(shù)來縮短這個(gè)時(shí)間周期,但回測需要花點(diǎn)功夫來學(xué)習(xí)編程,你要得到有價(jià)值的信息,必然通過這兩個(gè)途徑,其本質(zhì)都是通過歷史數(shù)據(jù)來尋找有價(jià)值的線索,并且都需要付出努力和事件,努力的過程將貫穿著整個(gè)交易生涯,無論是主觀交易還是量化交易均無捷徑。


在選擇具體的參數(shù)上,我不會去選擇一個(gè)單品種的最優(yōu)化參數(shù)來作為這個(gè)品種的參數(shù),因?yàn)闅v史數(shù)據(jù)并不能代表未來,如果通過數(shù)據(jù)挖掘的方法,必然會有一個(gè)參數(shù)會實(shí)現(xiàn)最佳業(yè)績,哪怕是一個(gè)本身并不賺錢的策略,也可以通過這種挖掘方式找到一個(gè)參數(shù)來實(shí)現(xiàn)盈利,那么這個(gè)盈利能否保持下去,就是一個(gè)非常值得懷疑的問題。


在單一參數(shù)的選擇上,我會選擇一個(gè)多品種組合最適合的參數(shù),假設(shè)我選擇20日均線,在40個(gè)品種的5年歷史回測中,有35個(gè)品種能夠獲利,并且過去5年中,每年也能夠?qū)崿F(xiàn)比較平均的獲利,那么20這個(gè)參數(shù),就是一個(gè)非常值得信任的參數(shù)。


除了盈利的多少外,還有一個(gè)比較值得關(guān)注的值,就是最大回撤,基本上這兩個(gè)信息需要綜合來考慮,并不能簡單的認(rèn)為盈利最大的策略就是最優(yōu)的策略,如果策略A最終收益是100萬,最大回撤是50萬;而另外一個(gè)策略B的最終收益是80萬,最大回撤僅10萬。無疑后者將是一個(gè)比前者更加優(yōu)秀的策略,我會毫不猶豫的選擇策略B,然后把杠桿增加5倍,就可以承受和策略A一樣的50萬的風(fēng)險(xiǎn)(回撤)的基礎(chǔ)上,實(shí)現(xiàn)400萬的最終收益。所以一個(gè)策略一定要結(jié)合風(fēng)險(xiǎn)來看收益,很多盈利因子、夏普比率、MAR等風(fēng)險(xiǎn)參考指標(biāo)無非也是基于收益和風(fēng)險(xiǎn)的關(guān)系來設(shè)計(jì)和計(jì)算的,所以與其去簡單的對比夏普比率,不如更多的了解其內(nèi)在的機(jī)制,直接從風(fēng)險(xiǎn)和收益的整體角度來考慮問題。


每個(gè)人確定參數(shù)的方法是不同的,我的方法則很簡單。我將所有參數(shù)都測試一遍,得到所有參數(shù)下多品種組合的收益/風(fēng)險(xiǎn)數(shù)據(jù),我將收益/風(fēng)險(xiǎn)得到一個(gè)值,假設(shè)用5這個(gè)參數(shù)的均線交易系統(tǒng)5年的收益是2000%,最大回撤是10%,那么這個(gè)值就是2000%/10%=200,這個(gè)值沒有任何價(jià)值也不代表任何東西,僅僅是代表在某個(gè)參數(shù)下風(fēng)險(xiǎn)和收益之間的關(guān)系,它僅僅用于各參數(shù)之間的橫向比較參數(shù)。


那么我會把這個(gè)值輸入到Excel表格中,生成一個(gè)數(shù)據(jù)集,然后來尋找在不同的參數(shù)下,可信度比較高的幾個(gè)值。

這些回測數(shù)據(jù)本身就是通過多品種得到的,未來是充滿未知性的,所以這也是能夠通過歷史數(shù)據(jù)得到最有可能接近未來最優(yōu)參數(shù)的唯一方法了。由這張圖片可以看到,在5這個(gè)參數(shù)和17這個(gè)參數(shù)附近是一個(gè)持續(xù)的高點(diǎn),并且它們附近的參數(shù)都普遍比較高,5和17這兩個(gè)參數(shù)并非一個(gè)孤例,所以我認(rèn)為5和17這兩個(gè)參數(shù)的置信度是最高的,我很有可能將這兩個(gè)參數(shù)分別用于實(shí)盤交易。而29這個(gè)參數(shù),是一個(gè)突然變高的數(shù)值,這個(gè)值周圍均無可支撐的數(shù)據(jù),這就是一個(gè)孤例,29這個(gè)參數(shù),它的置信度就沒有5和17那么高。


關(guān)于雙參數(shù),其選擇的本質(zhì)和單參數(shù)是一樣的,就是通過多參數(shù)的組合來選擇一個(gè)可信的參數(shù)組合。常規(guī)的做法就是把所有的參數(shù)結(jié)果都輸入進(jìn)去,然后生成一張三維柱狀圖,來篩選其中的高點(diǎn)。


這個(gè)方法的優(yōu)點(diǎn)是比較直觀,但缺點(diǎn)也是顯而易見的,那就是比較繁瑣,還需要一些數(shù)學(xué)軟件的支持,并且還有一個(gè)致命的缺陷就是當(dāng)有第三組甚至第四組參數(shù)的時(shí)候,基本上就不能采取這種方法了。


我介紹一種更簡單高效的辦法,那就是不做組合參數(shù)的優(yōu)化,只做單參數(shù)的優(yōu)化。


比如我做一個(gè)三均線的參數(shù)優(yōu)化,有a,b,c三個(gè)參數(shù),這個(gè)系統(tǒng)是a上穿b做多,反之做空,參數(shù)c作為過濾參數(shù),b在c之上,只開多,反之只開空。這個(gè)系統(tǒng)該如何優(yōu)化參數(shù)呢?


三個(gè)參數(shù)構(gòu)建的系統(tǒng),其穩(wěn)定性本來就不如單參數(shù)或雙參數(shù),如果再通過尋找3個(gè)最佳參數(shù)來擬合交易系統(tǒng)的話,就非常容易的就產(chǎn)生過量優(yōu)化。那么如何解決這個(gè)問題呢?首先我會考慮,這個(gè)系統(tǒng)的核心參數(shù)是b,因?yàn)閍實(shí)際上是為了過濾收盤價(jià)穿過B頻繁發(fā)出信號而設(shè)計(jì)的,當(dāng)a穿過b之后會開多或開空,b才是決定趨勢的關(guān)鍵因素,所以最關(guān)鍵的一點(diǎn)就是要優(yōu)化好參數(shù)b。


這個(gè)道理和邏輯顯而易見,因?yàn)槲疫@套系統(tǒng)就是以參數(shù)b的均線來定義是否出現(xiàn)趨勢行情的,所以我率先只優(yōu)化參數(shù)b,這里的唯一邏輯是,如果這個(gè)交易系統(tǒng)能夠獲利,那么最關(guān)鍵的是看短期價(jià)格和b均線之間的位置能否對后續(xù)行情產(chǎn)生概率上的預(yù)測。如果收盤價(jià)和b之間的關(guān)系不能盈利,那么優(yōu)化a參數(shù)和c參數(shù)就沒有任何邏輯支撐,策略整體上就可能就會出現(xiàn)問題,所以我最開始僅尋找收盤價(jià)和b之間的關(guān)系。假設(shè)b的參數(shù)優(yōu)化好之后得到的最佳值是17,那么我就會將參數(shù)b看作是一個(gè)常量17,這個(gè)值就不再變了。


然后基于這個(gè)17,我再去優(yōu)化參數(shù)a,因?yàn)閰?shù)a和參數(shù)c都要以參數(shù)b為參照,a和b的位置決定了買賣方向,b和c的位置決定了主要的方向過濾,但本質(zhì)上a和c沒有什么關(guān)系,所以,在處理a和b的關(guān)系的時(shí)候,可以先不管c?;谶@個(gè)關(guān)系,確定了b的值之后,再去優(yōu)化參數(shù)a,假設(shè)得到a的值為5,那么到目前為止,就是5日均線上穿17日均線做多的一個(gè)系統(tǒng)。


繼續(xù)后面的工作,把這兩個(gè)參數(shù)(a為5,b為17)確定之后,再去尋找過濾系統(tǒng)c的參數(shù),值得一提的是,如果參數(shù)c有兩個(gè)值可供選擇,一個(gè)是20,一個(gè)是200,那么就要從邏輯上來判斷這兩個(gè)值的意義了,因?yàn)閰?shù)c的存在是為了過濾長期趨勢,所以很明顯20的值并不符合過濾長期趨勢的初衷,即便是20的值有非常優(yōu)秀的表現(xiàn),那也是一個(gè)不值得信任的值,所以我最終會選擇200這個(gè)參數(shù)來構(gòu)建這個(gè)系統(tǒng)。


確定好所有的參數(shù)之后,這個(gè)系統(tǒng)的買賣模塊我們就算基本完成了。


通過這種參數(shù)優(yōu)化的方式,我們將一個(gè)原本需要三次項(xiàng)的復(fù)雜計(jì)算,轉(zhuǎn)變?yōu)榱艘粋€(gè)簡單的乘法運(yùn)算,在大大的節(jié)省了效率的同時(shí),還增加了穩(wěn)定性,這個(gè)方面是做量化交易最難以把握的方面,也是計(jì)算機(jī)不能實(shí)現(xiàn)的地方,需要人腦智慧去判斷和執(zhí)行,這也是為什么很多人做量化交易,但也僅有少數(shù)人能實(shí)現(xiàn)盈利的關(guān)鍵,這點(diǎn)其實(shí)和主觀交易是高度一致的,考察的是一個(gè)人能否尋找一件事情的本質(zhì)的能力。


說一句題外話,通過測試,所有加入c參數(shù)的過濾的均線系統(tǒng),均不如單均線和雙均線的表現(xiàn)優(yōu)秀。所以,與其去增加一些額外的參數(shù)來過濾,不如就直接用最簡單的系統(tǒng)。得到這個(gè)結(jié)論,需要從大量的參數(shù)最優(yōu)化的工作中得到,你既可以簡單的相信我,也可以自己做測試尋找答案,交易是一個(gè)由簡到繁再化繁為簡的輪回。

還有一種參數(shù)最佳化的算法,叫做自適應(yīng)算法,這種算法是把上一個(gè)周期的參數(shù)用于下一個(gè)周期,這種算法看似更加智能,也更加復(fù)雜,但是這種代碼真的更加有效嗎?


從邏輯上看,這種方法是有效的,因?yàn)槟骋粋€(gè)品種走勢的背后是同一批人,這一批人往往有著同樣的操作風(fēng)格,那么交易品種的風(fēng)格就具備某種特性。另外,因?yàn)槭袌龅耐七M(jìn)的,時(shí)間會改變參與者的結(jié)構(gòu),絕大部分自以為是的人會被淘汰,剩余的人都在使用一種方式后,方式的有效性會逐漸趨于無效,之前的老手也會被淘汰出局,堅(jiān)持到底的人會取得最終的勝利,市場始終在循環(huán),周而復(fù)始。


這種理念僅從邏輯層面來講是可行的,但是我們需要靠回測來反饋結(jié)果,有兩種測試的方法備選:


方法一:測試2010.1-2013.1黃金的數(shù)據(jù),最優(yōu)參數(shù)為(15,7)。而黃金的走勢在2013年之后分化為兩段行情,首先是2013.1-2013.8,這段時(shí)間內(nèi)有顯著的趨勢行情,而2013.8-2015.11期間,呈現(xiàn)無規(guī)律的震蕩行情,為了表述這兩段行情的具體表現(xiàn),按照遺傳推進(jìn)的規(guī)則,模擬以上一個(gè)時(shí)間段的最優(yōu)參數(shù)運(yùn)用到下一個(gè)階段的表現(xiàn)性。


方法二:因?yàn)樵谥盁o法得知每年的最優(yōu)參數(shù)和市場概況,對下個(gè)時(shí)間階段到底是趨勢行情還是震蕩行情的判斷是毫無根據(jù)和意義的,所以在推進(jìn)中以年為時(shí)間周期,上年最佳參數(shù)數(shù)據(jù),是沒有加入任何感情判斷完全是根據(jù)軟件優(yōu)化的結(jié)果照抄上去的,所以避免了過度擬合的嫌疑。


經(jīng)過權(quán)衡,我認(rèn)為方法二更加接近現(xiàn)實(shí),因?yàn)榉椒ㄒ挥惺褂梦磥砗瘮?shù)的嫌疑,所以我運(yùn)用逐年推進(jìn)的測試方法,試分析到底應(yīng)不應(yīng)該采用自適應(yīng)參數(shù)。


另外,如果出現(xiàn)某個(gè)別數(shù)據(jù)凸起產(chǎn)生的不正常收益表現(xiàn),這組數(shù)據(jù)是剔除了的。例如,當(dāng)參數(shù)15作為一個(gè)比較好的參數(shù),同時(shí)13,14,16,17可以互相印證參數(shù)15,那么15被選為某個(gè)置信參數(shù),假設(shè)參數(shù)24超過15的表現(xiàn),但是其周圍,22,23,25,26均出現(xiàn)明顯低收益,那么24這個(gè)參數(shù)就叫做凸起參數(shù),這個(gè)參數(shù)是一個(gè)孤例,不具備顯著的優(yōu)勢,更大可能是因?yàn)檫^度擬合的產(chǎn)物,為了更加結(jié)合現(xiàn)實(shí),我會剔除這個(gè)參數(shù)。


我們將數(shù)據(jù)分為兩段,2012年12月以前的3組數(shù)據(jù)作為測試數(shù)據(jù),2013年1月之后作為推進(jìn)測試,將2013年1月作為分水嶺沒有什么特別的意義,僅是隨機(jī)取中而已。


可以看出,運(yùn)用上年的最優(yōu)參數(shù)作為下年的參數(shù),從2013年1月至今收益為負(fù),虧損額度為87370元,;而采?。?5,7)的參數(shù)從一而終的進(jìn)行交易,有231760元利潤,說明過度擬合和追逐數(shù)據(jù)而戰(zhàn)勝市場的方法是徒勞的,更進(jìn)一步說明了一致性的重要性。雖然進(jìn)一步測試2013年1月到2015年11月的最佳參數(shù)組合是(9,5),但是用(9,5)這組數(shù)據(jù)和之前追逐數(shù)據(jù)的的做法并無本質(zhì)的區(qū)別,不知不覺差點(diǎn)走了陷阱。


從情感上講,得出一個(gè)明顯的結(jié)果,卻不能用于操作,在現(xiàn)實(shí)中很難讓人接受,但是如果用原始參數(shù)(20,10),將發(fā)生虧損,那么從概率上考慮,應(yīng)該得出一個(gè)結(jié)論:那就是E(9,5)>E(20,10),我希望你能適應(yīng)我的這種表達(dá)方式,大于號的意思是優(yōu)于,前面的E是期望值,期望值你可以理解為風(fēng)險(xiǎn)和收益的綜合表現(xiàn)而不僅僅是收益。

那么至少現(xiàn)在應(yīng)該了解到,如果用這個(gè)策略來操作黃金,應(yīng)該避免(20,10)這組參數(shù),而相信(15,7)和(9,5)兩組參數(shù)其中之一,答案靠回測是不能告訴你的,因?yàn)闇y試的結(jié)果肯定是(9,5)更好,因?yàn)椋?,5)本身就是最優(yōu)化出來的參數(shù)。


如何取舍?


我是這么考慮的:首先,回測告訴我的是(9,5)參數(shù),但這組參數(shù)通過推進(jìn)的方法在明年的表現(xiàn)會輸給一個(gè)其他參數(shù),這種參數(shù)的回歸屬性是普遍存在的。然后從測試結(jié)果得知,黃金這個(gè)品種遵循了一個(gè)特點(diǎn):小參數(shù)比大參數(shù)更加可靠,這點(diǎn)是很顯然的。


以上信息通過簡單的分析就不難得到,但是如果不去重視,而完全依賴回測數(shù)據(jù),這無疑是種本末倒置的錯誤做法?;販y永遠(yuǎn)只是你的一個(gè)工具,工具的背后是一個(gè)交易者對交易的理解,如果僅能靠計(jì)算機(jī)技術(shù)就可以戰(zhàn)勝市場的話,那么每個(gè)程序員都將成為交易高手。如果你在這個(gè)問題上犯錯誤的話,說明你僅僅算是一個(gè)成功的程序員,而非成功的交易者。


通過測試的結(jié)果已經(jīng)很清楚的展現(xiàn)了,我只需要知道,海龜交易法則用于黃金這個(gè)品種,基本參數(shù)運(yùn)用要比原版的參數(shù)小,僅得出這個(gè)結(jié)論足以說明這次測試具備意義。知道得到了這個(gè)結(jié)論后,用任意一組比原版參數(shù)更小的參數(shù)都應(yīng)該是相等的預(yù)期,為了平衡,我索性用(20,10)、(15,7)、(9,5)的中間參數(shù)(15,7)。反過來看測試的表格,我也驚奇的發(fā)現(xiàn),15,7這組參數(shù)是整個(gè)按年測試中出現(xiàn)最多的數(shù)字,從另個(gè)角度證明了該參數(shù)的有效性,我將追蹤這一測試結(jié)果,在2016年底來驗(yàn)證是否正確,如果不正確,也不要緊,因?yàn)檫@僅僅是探討一種理念,并且我很樂于犯錯。


補(bǔ)充:以上寫于2015年12月初,目前是2016年12月31日,就目前看來,最適合黃金的參數(shù)是(15,7)。


具體如下:測試時(shí)間為2016年1月1日到2016年12月24日。

參數(shù)(9,5),凈利潤:68140,優(yōu)勢1.20,最大回撤23.78%

參數(shù)(15,7),凈利潤:159330,優(yōu)勢1.60,最大回撤24.41%

參數(shù)(20,10),凈利潤:79250,優(yōu)勢1.29,最大回撤22.41%


點(diǎn)擊閱讀:


《量化交易之門》連載1:序,什么是量化交易?


《量化交易之門》連載2:怎樣成為一個(gè)成功的交易者?


《量化交易之門》連載3:成功是99%的努力,加1%的天賦


《量化交易之門》連載4:普世價(jià)值觀阻礙了人們對交易世界的探索


《量化交易之門》連載5:賭博導(dǎo)致破產(chǎn)的原因?


《量化交易之門》連載6:為什么普通人“期望的曲線”是向下的?


《量化交易之門》連載7:決定盈利與否的分水嶺——一致性


《量化交易之門》連載8:從恐懼和貪婪的角度談一致性


《量化交易之門》連載9:成功的交易習(xí)慣是反人性的


《量化交易之門》連載10:站在虧貨的對面


《量化交易之門》連載11:走出技術(shù)分析的迷宮


《量化交易之門》連載12:大部分新手虧損的原因——善于操底摸頂


《量化交易之門》連載13:趨勢交易法能夠有效獲利的原因


《量化交易之門》連載14:從零到一,構(gòu)建量化交易系統(tǒng)


《量化交易之門》連載15:交易系統(tǒng)構(gòu)建的兩種方式:自上而下VS自下而上


《量化交易之門》連載16:選擇一種方法來構(gòu)建交易系統(tǒng)的買賣模塊


《量化交易之門》連載17:交易系統(tǒng)的選擇


《量化交易之門》連載18:參數(shù)


《量化交易之門》連載19:參數(shù)最佳化


《量化交易之門》連載20:參數(shù)最佳化的三大陷阱——前視偏差、過度優(yōu)化、曲線擬合


責(zé)任編輯:韓奕舒

【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān)。本網(wǎng)站對文中陳述、觀點(diǎn)判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

本網(wǎng)站凡是注明“來源:七禾網(wǎng)”的文章均為七禾網(wǎng) levitate-skate.com版權(quán)所有,相關(guān)網(wǎng)站或媒體若要轉(zhuǎn)載須經(jīng)七禾網(wǎng)同意0571-88212938,并注明出處。若本網(wǎng)站相關(guān)內(nèi)容涉及到其他媒體或公司的版權(quán),請聯(lián)系0571-88212938,我們將及時(shí)調(diào)整或刪除。

聯(lián)系我們

七禾研究中心負(fù)責(zé)人:劉健偉/翁建平
電話:0571-88212938
Email:57124514@qq.com

七禾科技中心負(fù)責(zé)人:李賀/相升澳
電話:15068166275
Email:1573338006@qq.com

七禾產(chǎn)業(yè)中心負(fù)責(zé)人:果圓/王婷
電話:18258198313

七禾研究員:唐正璐/李燁
電話:0571-88212938
Email:7hcn@163.com

七禾財(cái)富管理中心
電話:13732204374(微信同號)
電話:18657157586(微信同號)

七禾網(wǎng)

沈良宏觀

七禾調(diào)研

價(jià)值投資君

七禾網(wǎng)APP安卓&鴻蒙

七禾網(wǎng)APP蘋果

七禾網(wǎng)投顧平臺

傅海棠自媒體

沈良自媒體

? 七禾網(wǎng) 浙ICP備09012462號-1 浙公網(wǎng)安備 33010802010119號 增值電信業(yè)務(wù)經(jīng)營許可證[浙B2-20110481] 廣播電視節(jié)目制作經(jīng)營許可證[浙字第05637號]

認(rèn)證聯(lián)盟

技術(shù)支持 本網(wǎng)法律顧問 曲峰律師 余楓梧律師 廣告合作 關(guān)于我們 鄭重聲明 業(yè)務(wù)公告

中期協(xié)“期媒投教聯(lián)盟”成員 、 中期協(xié)“金融科技委員會”委員單位