舉個量化的例子。妳建立了壹個期貨交易系統,妳需要進行壹個歷史測試。
妳的交易系統中有壹個參數。什麽是參數?比如海龜交易規則的突破,20日在最高點開倉。這個20就是參數。
為什麽選20?為什麽不選21,34,15或者28?
這就是所謂的參數選擇。
所謂過擬合,就是妳使用這個策略,經過歷史回測,妳發現如果我把參數改成24,那麽我的系統在過去的走勢中收益最高。
所以,我會用24。在我的交易系統中,所有的參數都應該選擇歷史表現最好的。這太合適了。
這樣做有什麽壞處?因為它的效果在歷史趨勢中是最好的,但是在歷史趨勢中最好不代表未來還是會更好。可能妳壹年後回來測試,發現現在最好的參數是32。因為來年的趨勢已經融入歷史,改變了歷史。
而如果妳過度擬合壹個歷史測試結果,比如妳發現妳用654.38+0萬交易螺紋鋼期貨,妳的最大回撤只有654.38+0萬,妳的最大虧損只有5倍。所以,妳根據這個優化的數據設計了自己的倉位。
結果呢?在未來的市場走勢中,這個參數突然不如預期,節奏變了,導致妳直接虧損到平倉線。
這就是過度優化的危險。
其實能走到參數優化這壹步的期貨交易者壹般不會爆倉。最大的風險是虧損超出預期,會導致壹系列信心受挫,意誌動搖。
很多期貨交易者會對系統的參數進行優化,但往往不知道優化到什麽程度才算不過分。其實我也不知道。
過度這個詞,顯然是壹個沒有範圍的詞。什麽叫過分,我控制不了。
那麽,我該怎麽做才能避免過度擬合呢?
我在做的是,嘗試把它推上去,從另壹個維度來看待這個問題。
擬合,參數優化,說白了都是小細節。不同的參數背後,代表著不同的盈虧比。比如20日均線和50日均線,妳承擔的單筆虧損金額,壹波行情中的收益肯定是不壹樣的。然而,市場趨勢不確定。
這壹點非常重要。既然我們不知道未來的市場會是什麽樣子,我們在這裏糾結我選哪個數字有意義嗎?妳選21,妳選15,妳選45,這是不是擬合,這是不是過度擬合,由未來市場來說。我們去不了未來,糾結這個沒有意義。
所謂期貨交易之路之所以簡單,是因為有時候,妳的想法壹定是簡單的,簡單到別人覺得太粗暴。
我站的維度是直接看系統。
20日均線不同於50日均線。突破10天的高點也不同於突破20天的高點。前者的信號多,止損多,但前者的入場位置在某些時候可能更有優勢。
妳喜歡做更短的趨勢,不能接受大的獲利回吐,所以選擇小參數。妳不喜歡頻繁發信號,想走大趨勢,所以選擇大參數。
至於小參數,是20好,還是18,21好?糾結這些完全沒有意義。
另外,職位的設計不要參考所謂的歷史。有些人對於戰略地位的確立非常依賴歷史檢驗。包括史上最大回撤,史上最大虧損,平均虧損等等。可以嗎?當然可以。但如果是在絕對安全的角度,最好打五折,然後配合贏輸縮。
在期貨交易中,由於趨勢的不確定性,實際上並沒有完美的倉位管理方法。也許妳是按照戰略歷史回測的立場來設計的,這根本不算什麽,還是有點低。但也有可能妳保守到只建倉壹半,這個策略還是會把妳清算掉。
趨勢的不確定性讓壹切成為可能。
壹套策略,就被清算了。有什麽問題嗎?那不壹定。有可能只是因為這段時間的行情屏蔽了殺神,佛屏蔽了殺佛。妳被清算的原因不是邏輯問題,而是資金管理的問題。
資金管理的方式是壹個很長的話題。如果妳負責壹套策略,最好有安全墊+保守倉位+輸贏。
所謂過度擬合,其實就是讓壹個期貨交易者過度自信。他認為他的策略好,他認為他的參數好,他認為他的位置好。
結果市場突然變了節奏,他驚呆了之後,走得異常順暢。說白了,這種事情不是100%能解決的。因為什麽?
因為趨勢不確定。妳做趨勢,妳不來趨勢。妳制造壹個沖擊,趨勢永不停息,妳制造壹天,無數雜亂…
那麽,我們如何做到最好呢?
做好資金管理規則。在賬戶沒有收益之前,盡量保守。如果保守還是虧損,那就繼續減倉。如果妳把倉位縮到只有壹手的時候還不能止損,那妳就只能停止開倉,或者只能平倉。
妳已經確定妳的交易邏輯沒問題,妳的資金管理已經到了極限,妳仍然無法停止虧損。所以只能說妳很幸運買了10的彩票,都是壹等獎...
市場讓我死,我不得不死。
最後總結壹下。過擬合沒有標準或好的方法。根本解決不了。
我建議,還是算了吧。妳要從自己執行的角度,從自己的喜好來設計交易系統。如果20對妳來說是個合理的參數。那麽21和18沒有區別,因為妳不知道未來。
如果妳害怕過度合身。那麽妳已經設計並完善了資金管理規則。資金管理規則完善,適合不適合都無所謂。
用同壹套數據,不管用什麽算法,結果都是壹樣的。旅程是相似的。
1:盡量減少參數的使用。
2.同壹個參數多品種多期檢驗。
3.測試時間應盡可能長。
4.制定壹個規則,比如目前有多少代表性的策略失敗了。
優化參數控制在4以內。
區分真實與虛擬,光明與黑暗。
妳可以測試更多不同的產品。比如妳的系統是為股指設計的,可以用來測試螺紋鋼,鋁,外匯。另外,時間周期足夠長。至少需要50筆交易。如果調整參數值,比如兩個參數,隨意更改。可以有正回報,這是壹個可靠的系統。
這個問題無解,通過多策略、多品種、多時期的組合來避免。沒有完美的策略,因為市場結構本身壹直在變化。
期貨交易中如何避免交易系統過度擬合?
主題的麻煩是可以理解的。題目是要學的理論太多,交易方法太多,交易系統還沒有建立,還在測試階段。李提出,第壹個主觀假設是交易系統的天敵,建立交易系統的目的是克服主觀意識。成熟的交易者根據交易系統發出的交易信號進行操作,無論對錯都根據系統信號執行;第二交易系統的設置原則簡單明了,易於操作,可重復;
妳可以測試更多不同的產品。比如妳的系統是為股指設計的,可以用來測試螺紋鋼,鋁,外匯。另外,時間周期足夠長。至少需要50筆交易。如果調整參數值,比如兩個參數,隨意更改。可以有正回報,這是壹個可靠的系統。
我的經驗是減少參數的數量。比如兩個參數的交易系統比10參數的交易系統更難過擬合。如果參數太多,會忍不住調整,直到最好的回測結果。如果妳過裝了,妳不知道。如果參數少壹些,可以得到壹個接近普適規律的結果。
其實做好期貨並沒有那麽難。找到有效的方法和工具可以幫助交易者。
在邏輯編程完成後,我們的策略總是需要確定量化的數據,通過對歷史數據的檢驗找到合適的數據範圍。
但往往很多量化人喜歡擬合最佳數據集,以達到高勝率、低回撤、高收益的目的。這叫做過度擬合。
眾所周知,所有的測試都是用歷史來驗證想法。該數據在歷史上表現良好,但在未來可能不適用。就好比,妳拿著北京地圖能在上海找到路嗎?
壹個好的策略在選擇數據的時候都有這樣的特點。
1.當數據在合理的範圍內變化時,結果不會有質的不同。也就是說,當數據集的值在壹個合理的範圍內變化時,結果仍然是盈利的,沒有太大的退路。如果壹個小小的改變會導致虧損,那麽這個策略就是不成功的。
2.不同的測試品種不應該產生相反的結果。
無論是股票、螺紋還是豆粕,不能通用的策略都不是成功的策略。
不要搞得那麽復雜,越簡單越有效。