logo |

資訊

    首頁   >     行業    >     正文

    深度 | 如何避免程式化交易中的過度擬合

    摘要:過度擬合其實是機器學習領域和統計學領域的一個概念。一般被用作表示一個模型在測試時表現的非常好,但是在實踐過程中成績卻不如預期。

      在建立量化交易模型的過程中,很多人都會經歷過度擬合的情況。過度擬合其實是機器學習領域和統計學領域的一個概念。一般被用作表示一個模型在測試時表現的非常好,但是在實踐過程中成績卻不如預期。

      對於傳統的機器學習來說,過度擬合的影響不是很明顯,但金融數據時間序列特徵和數據的高噪音特性則決定了過度擬合會帶來的巨大影響。所以,我們在進行建模時一定要嚴謹避免過度擬合情況的發生。

      01 過度擬合產生的原因

      程式化交易系統的設計過程包括兩個部分,這兩個部分都有可能造成過度擬合。

      交易系統設計的第一部分是形成一個完整的交易規則體系。形成交易規則一般有自上而下和自下而上兩種方法:自上而下的方法是基於對市場行情的長期觀察總結出來規律,再在規律的基礎之上形成數量化的交易策略,這一過程需要長時間交易經驗的積累;

      自下而上的方法是從市場數據出發,進行統計分析得出市場特徵而形成的交易策略。

      交易者在將交易系統用歷史數據進行回測時,往往會根據測試結果對交易規則進行重新訓練形成新的交易規則,或者對這些規則進行組合,這樣產生的交易系統很容易是對市場數據的擬合。

      同時在數量化實現交易系統的過程中,一般會採用參數來描述系統。設計者會通過增加參數個數和優化這些參數,尋找出最佳的交易系統。

      如果參數個數較多或過度優化參數,往往就會產生對歷史行情的完美過度擬合,而未來的績效卻大打折扣。

      02 如何避免過度擬合

      設計交易系統的目標是在未來實盤的行情中可以產生利潤,而不是為了追求一條漂亮的歷史測試曲線,過度擬合的交易系統是一個“美麗的陷阱”。如何逃離這個陷阱呢?我們認為可以從交易規則的形成和交易系統開發兩大方面著手。

      現代數學對金融市場的數據分析表明,時間價格序列包括兩個部分:

      第一部分是確定項,可以從中找出一定的規律;

      第二部分是隨機項,沒有確定性的規律可言,出現某一現象只是概率性的。

      當我們從市場歷史行情中提取交易規則時,需要分析規則的邏輯性和規律性,交易規則需要能夠反映市場的規律性,具有一定的合理性。

    image.png

      當交易者通過各種途徑形成交易規則後,在具體的交易系統設計過程中,需要注意如下問題:

      第一,增加歷史測試數據樣本容量,避免交易次數過少。

      做交易的朋友都知道,如果通過分類品種的方式進行回測的話,不活躍的品種可能一年之內都沒有多少次交易,即便是幾年的時間下來也交易不到100次。這樣少的交易量所作出的結果是沒有意義的並且非常容易造成過度擬合。特別是套利類策略持倉的策略就會更加的長,一年也就幾次的交易量,這樣就更不可靠了。

      所以我們在進行策略的回測時就要增加交易策略的次數,一般來說300次以上的交易次數才能證明策略是有效的。

      第二,在測試時,將測試的數據樣本分為樣本內和樣本外。

      設計系統的時候採用樣本內數據,然後用樣本外數據測試得出的系統,如果效果大大降低,那麼這種系統極有可能是擬合的。

      第三,核心參數不宜過多。

      參數過多的系統是一個多自 由度系統,在優化多個參數之後總會得出一個漂亮的系統,但這種系統的可靠性是令人懷疑的。

      第四,在對交易系統的參數進行優化時,我們需要對最優參數附近的參數進行考察。

      如果附近參數系統的性能遠差於最優參數的性能,那這個最優參數有可能是一個過度擬和的結果,數學上稱為奇點解,是不穩定的。如果市場的特徵稍微發生變化,最優參數可能會成為最差參數。

      第五,保證一定的平均利潤。

      有些策略我們在驗證之後會發現交易的次數比較多,業績表現也不錯,但是平均利潤過低。有些朋友可能會覺得,平均利潤低有什麼關係呢,只要盈利就可以了。但是除了要注意盈利外還要有滑點的意識,如果平均盈利過低,那麼就非常有可能受到滑點的影響。穩定盈利的量化交易策略最終也會變成穩定虧損的策略。

    Hong Kong Dollar

    • United Arab Emirates Dirham
    • Australia Dollar
    • Canadian Dollar
    • Swiss Franc
    • Chinese Yuan
    • Danish Krone
    • Euro
    • British Pound
    • Hong Kong Dollar
    • Hungarian Forint
    • Japanese Yen
    • South Korean Won
    • Mexican Peso
    • Malaysian Ringgit
    • Norwegian Krone
    • New Zealand Dollar
    • Polish Zloty
    • Russian Ruble
    • Saudi Arabian Riyal
    • Swedish Krona
    • Singapore Dollar
    • Thai Baht
    • Turkish Lira
    • United States Dollar
    • South African Rand

    United States Dollar

    • United Arab Emirates Dirham
    • Australia Dollar
    • Canadian Dollar
    • Swiss Franc
    • Chinese Yuan
    • Danish Krone
    • Euro
    • British Pound
    • Hong Kong Dollar
    • Hungarian Forint
    • Japanese Yen
    • South Korean Won
    • Mexican Peso
    • Malaysian Ringgit
    • Norwegian Krone
    • New Zealand Dollar
    • Polish Zloty
    • Russian Ruble
    • Saudi Arabian Riyal
    • Swedish Krona
    • Singapore Dollar
    • Thai Baht
    • Turkish Lira
    • United States Dollar
    • South African Rand
    當前匯率  :
    --
    請輸入金額
    Hong Kong Dollar
    可兌換金額
    -- United States Dollar
    風險提示

    外匯天眼資料均來自各國外匯監管機構的官方資料,如英國FCA、澳大利亞ASIC等,所公佈的內容亦均以公正、客觀和實事求是為宗旨,不向外匯交易平臺收取公關費、廣告費、排名費、資料清洗費等灰色費用。外匯天眼會盡最大努力保持我方資料與各監管機構等權威資料方資料的一致及同步性,但不承諾與其即時保持一致和同步。

    鑑於外匯行業的錯綜複雜,不排除有個別外匯交易商通過欺騙手段獲得監管機構的合法註冊。如WikiFX所公佈數據與實際情況有不符之處,請通過WikiFX“投訴”和“糾錯”功能,向我們提出,我們將及時進行核實查證,並公佈相關結果。

    外匯、貴金屬和差價合約(OTC場外交易)是槓桿產品,存在較高的風險,可能會導致虧損您的投資本金,請理性投資。

    特別提示,外匯天眼所列資訊僅供參考,不構成投資建議。外匯平臺由客戶自行選擇,平臺操作帶來的風險,與外匯天眼無關,客戶需自行承擔相關後果和責任。