在設計主觀交易系統時,如何防止過度擬合?
做量化和程序化測試的可以使用一些數學工具來對於擬合程度來進行測量,但是主觀交易的話,我一直不明白該怎麼處理這個問題,唯一找到的方法就是多測幾年數據和減少使用的指標,其他的就不知道了,想請各位多多指教。
減少參數,讓你的系統盡量簡單。這樣就算你想擬合,也沒得擬合。
以前看過一個答案,通過回測、統計來設計交易系統,是典型的自下而上設計交易系統。這種系統設計出來在某一段時間效果會很好,但適應性很差,換一個品種、過一段時間,很可能就失效了。
還有從通過理解市場、交易哲學來設計的交易系統。是自上而下設計的系統。這種系統可能某一段時間的收益曲線不會很好,但是勝在普適性、適用於多市場、長時間。
各有優劣吧。謝邀。
我自己的經驗,一方面盡量把主觀的部分變成可量化的。比如放量上漲,可以定義成漲幅百分之五以上,在50日均線上,成交量大於50平均成交量。這樣你就標準明確了。
再就是用不同時間段內的數據測,比如你總共有10年的數據,除了用這10年的數據總體測,還可以用其中任意一年,兩年,三年的數據測。我們會發現,長期賺錢的方法,在某段時間可能回撤很厲害。
謝夏亞算計我邀。
技術指標大體分兩類,一類是以價格為準,一類以成交量為準。兩類各取一個指標就行了。比如MACD和KDJ,其實都是一回事,只是默認截取時長一長一短,任意時刻觀察,可能會出現相互打架的情況,只是反映不同周期在同一時點上的能量的不同進程而已,兩者並不矛盾。
量價時空,時空沒有特別明確的技術指標(實際上有),但可以在圖上畫出來。量、價、時是三個維度,構成XYZ軸。三個維度構成了空間(這個空間不只是圖中看到的巨大的漲跌幅度),我之前回答中經常提到的能量,就充斥在這個空間內。能量在永續地進行積累與釋放,技術指標從各個維度去體現能量變化的過程。不要優化,是什麼樣就是什麼樣,要體現最真實的能量轉化過程,就像看素顏美女一樣,P圖就失真了。
策略制定的依據並不是任何指標,指標強弱並不是多空的依據,而是通過其反映的能量轉換的過程已經進行到哪一步了來決策。比如很早前提到均線類指標的金/死叉問題,金叉不是都要買入,死叉也不是都要賣出。金死叉本身並沒有唱多唱空的含義,看的是這個狀態在當前行情中代表的情況,也就是能量轉換的進程。
測試的時間長短其實並不太重要。當然是越長越好,但一定要了解策略在不同行情中的適應性。所謂適應性,就是策略對不同階段(趨勢、震蕩行情)的能量轉換進程的描繪是否清晰。原則上,好的策略在任何階段,在任何周期內都要將行情描繪的清晰透徹,依據是行情波動有自相似性。做到這點,那麼周期將不是問題,震蕩、趨勢也將不會是問題。
個人觀點:
過度擬合的目的是什麼?當然就是為了心理上尋求測試策略獲利的認同。為了讓它獲利才去擬合。從合理乃至自然客觀規律的角度,不要求勝,不要求自我優化,而是放大交易品種客觀存在的優勢。正常情況下,潛在的年回撤和年收益是不會相差太大的,風險收益成正比(時間越長越能體現出來),所以一般都要求測試時間長一些,樣本大一些,而且重心應該放在倉位控制來放大優勢本身(贏的倉位大於輸的倉位),而不是放在優化參數或交易進出規則上。
若按我個人測試策略的方式:我會去刻意壓低利潤,市場反而會給你降低風險,吐出更多利潤。(也就是避開擬合的心理)第一,指標最好用常規的而不是去修改參數一個個嘗試,看什麼效果最好,否則就容易過度擬合。 第二,設計時候條件盡量少,太繁雜也容易過度擬合,當然這條是和樣本個數有關。 第三,主觀系統也很容易因為心態變化出現過度擬合,所以盡量設計系統的時候要客觀化,量化。
方法越簡單越好,參數越少越好,數據越多越好,交易次數越多越好(手續費和衝擊成本能接受的前提下)。
推薦閱讀: