用 Trading System Lab 自動生成的交易策略,怎麼保證它不是遺傳演算法過度優化的產物?
Trading System Lab是一個基於遺傳演算法自動生成交易策略的工具,其基本思想是將不同的入場、出場規則進行組合以生成新的交易策略,例如將MA向上突破作為入場規則並將Bollinger突破下軌作為出場規則。
這種演算法可以在極大地優化空間內搜索出多個局部最優點,即表現較好的若干策略,但也正是因為其搜索能力過強,很容易得出過度優化的結果。 那麼Trading System Lab是如何避免自己所生成的策略不是過度優化的產物的?
交易策略避免過度擬合,無外乎就這麼幾種做法:
1,樣本外檢驗,或者推進分析Walk Forward,或者其他變種2,給設置簡單的、參數少的策略以更高的優先順序如果用的是遺傳演算法,那麼又有這麼幾個做法避免陷入局部最優,也算作減少錯誤擬合的方法:
3,演化過程中引入多個隨機分支,綜合比較4,針對具體的交易環境,測試變異概率和雜交概率的合適取值5,改進遺傳演算法,綜合其他進化演算法。不過TSL的具體情況我不太了解,因此也只能隨便聊兩句。看題目的介紹,倒是和之前看過的一篇論文(JF還是JFE吧,2000年左右,懶得找了)很相似,論文使用遺傳規劃(注意,不是遺傳演算法)將均線結合為複雜的判斷系統,用來給出買賣點。
為了搞清楚一點,我粗略查閱了一下TSL的官網,發現了這麼一句:
Trading System Lab ... ... using a very advanced computer program known as a AIMGP (Automatic Induction of Machine Code with Genetic Programming)再結合其具體的說明進行推測,TSL用的也應該是遺傳規劃(GP),而不是遺傳演算法(GA)。遺傳演算法在於給出一個最優解,模型是固定的;而遺傳規劃是用簡單的片段來形成一個具體的最優模型。因此,遺傳演算法其實和過度擬合關係不大,模型複雜度超出數據內在特徵才是過度擬合的來源。而遺傳規劃就是一個實打實的過度擬合來源了,因為它構造了模型本身。
那麼回到問題上來,如果TSL用的確實是遺傳規劃,以我本人的經驗來看,即使使用了前兩種方法以及GP的一些演算法改進,過度擬合依然無法避免,而且可能非常嚴重。TSL基於Genetic Programming, Datamining bias不可必免, 找到的很可能是spurious relationship.這類號稱能無限量地生產穩健的量化交易策略的工具/網站不是正確的方向。
大炮打蚊子固然打得死,這對於大炮自己來說再正確不過了,而對於具備有選擇能力的人來講,未免荒唐了一些。對於軟體來講,自動生成策略固然不謬,但投資人選擇系統的能力才是關鍵。
接觸一些做量化的,大多數還是停留在系統的探索,甚至仍然執著於系統的優化,以為只要執行他們偉大的系統就萬事大吉了......
如果說能夠量化的東西是技術,那麼如何選擇系統、如何分配資產、如何發現新市場、如何面對大回撤、如何構築投資哲學......這些是藝術技術容易複製,但藝術難以複製,只能靠人的不斷思考+積累才能獲取突破這也是普通投資者和成功投資者的分水嶺~~當然這樣說恐怕對於您來講不算是可行性的建議,如果非要說出一二三的話,一個系統
1.不要看華麗的數字,首先要追究其獲利的邏輯,如果邏輯上都說不通,直接PASS2.再看數據,剔除最大盈利後怎麼樣?加上大滑點怎麼樣?漲跌停板不能交易剔除沒有?在其他品種,其他時段表現如何?.....總之要使勁的折騰
3.模擬盤跑,看看如何,不行直接PASS,通過了再實盤,實盤中仍然需要不斷監控不斷修改,不行直接PASS,有些系統不長期實盤是不能發現問題的,這頗像藥物臨床,比如四環素,臨床幾十年後才發現問題。當然上面仍然是技術上的建議,希望對您有幫助樣本內優化的再好,樣本外不行也是白搭,嚴格說就是一個過去預測未來的問題,構造的系統預測能力差,再優化,也是垃圾,具體參考:THE PROBABILITY OF BACKTESTOVERFITTING這篇論文
數據挖掘本身就是一種優化而已。不是說開發了一種新的策略。
大部分的數據挖掘在金融市場的交易應用存在過擬合現象。不過好像tsl的老總說他們的策略挖掘也有局部的避免過度擬合。
交易行為不是固定的,一部分是需要行為金融學取分析。主要還是你找到的東西能不能 用邏輯和因果關係解釋。
否則找到一堆統計上相關性強的,就容易過度擬合用tsl或者sq之類的平台開發出的策略大部分是存在過度擬合的(無論是對於邏輯模式還是因子參數而言),但並不意味著這樣做是無意義的。可以通過對樣本數據進行加躁或者蒙特卡洛檢驗等進行過否過度擬合的檢驗,從而判定模型是否具有實盤價值。
「中國版」Trading System Lab現身說法。 我們的處理方法是:在優化目標的設置中有一個「防止過擬合」的選項,可以選擇使用,不過重點還是要評估策略結果的回測期是否能延續訓練期的結果,如果結果偏差較大,可能存在過擬合現象。
可以來平台體驗:諸葛量化
推薦閱讀:
※機器學習、大數據、雲計算會端掉量化寬客的飯碗嗎?
※如何通俗易懂地向一個外行解釋 Quant 是怎麼幫助金融機構賺錢的?
※在外資投行的國內quant組工作是什麼體驗?
※什麼是Financial Econometrics 金融計量學?
※高頻交易實盤中,如何提高按對價(bid-ask)執行限價單(limit order)的成交率?