2020年5月5日 星期二

為什麼策略優化容易讓 SL/TP 往 MAE/MFE 分佈圖左上移動 [影片]



今天來談一個在策略優化過程中,可能會遇到的一種情況,這是我在 LINE 群組與朋友交流時討論到的一個主題。

當我們在優化交易策略的參數的時候,有些人會把 Stoploss 和 Takeprofit 放進去一起優化。

這不是不行,如果你已經有一套方法去同時優化模型參數、SL/TP 那很好,但是如果你優化完,你發現每次到樣本外常常都掛掉的話,我會猜測可能 錯誤以為 MDD 變小是模型優化的「因」。

通常來說,許多人會使用「粒度大」、「交易間」的評估指標,例如最大連續虧損(MDD)做為策略優化的參考 ,希望盡量找到一個 MDD 小的參數。

如果此時伴隨著 SL 和 TP 下去優化,有時候會得到 SL 開始變小TP 開始變大,然後 MDD 變小的情況,很多人認為,這樣的情況代表「」,因為每一筆交易的潛在虧損更小、潛在獲利更大,整體的 MDD 更小,感覺應該是更穩健。

在一些條件考量之下,這樣的想法是對的,但如果你如果經常使用這方式,還是無法在外樣本得到好的結果的話,你要謹慎考慮其實你落入一個優化的陷阱。

當你使用粒度大的評估指標,什麼是粒度大呢?也就是可能因為越少的交易,就使得這個評估指標急遽的變差的,我們就叫做粒度大的評估指標。

最大連續虧損就可能因為少數幾個交易連續大幅度的損失,就造成 MDD 非常高,所以 MDD 某種程度可以看成是粒度較大的評估指標;其次是夏普率,夏普率可能會因為少數一些交易帶來大幅度的報酬/虧損,使得淨值曲線的標準差急遽升高,這也是一個粒度大的評估指標。

這些粒度大的評估指標,因為容易受到少數的交易影響,所以你在優化過程中,很難在一開始就針對這些少數交易對陣下藥,所以如果你能讓 MDD 持續的下降,通常伴隨的是一種「全局」調整。

你認為可能因為些微修改模型參數,就能突然改善那些影響  MDD 的少數交易嗎?其實很難,大多數時候,你會發現都是因為 SL/TP 的調整,讓 MDD 變小、讓夏普遍高。

所以,這個錯誤的以 MDD 為因的情況,可能是以這樣的一種情況在優化:

調整模型參數、訊號濾網 → 降低SL/提高TP → MDD變小

所以你以為你在優化參數、調整濾網,讓 MDD 變小,但其實你是在讓模型參數能讓你更加的能降低 SL 提高 TP,這樣才能「對全部交易有直接影響」而間接降低 MDD,所以 MDD 變小只是一個結果。

這會有什麼問題呢?

當持續性的降低 SL 和提高 TP,你其實對於波動的忍耐度就更低,所以你如果參數還能賺錢,通常來說你只是在不斷地讓模型參數、訊號濾網維持一個程度的勝率,使得這個勝率下的 SL 能繼續縮小、TP 繼續提高。

通常維持勝率比較依賴進場的時機,當勝率無法維持,通常下一步就是調整出場時機,讓某一些少數交易能帶來大幅度的獲利,所以接下來會看見勝率衰減、平均報酬增加、平均虧損降低,然後繼續縮小 SL,提高 TP。

在這過程中,你的進場和出場已經被特別優化了,這時候你如果還是使用「交易間」的評估方式,你就根本看不到買賣訊號裡面到底有沒有配合波動進出。

到最後,就是過擬合。

很多人發現,在這樣的優化過程中只要稍微考慮一下加減碼,就會讓優化變得順利一點,為什麼?因為你等於把 SL/TP 過度優化的負擔分攤出去,然後你的加減碼某種程度其實反應的就是在不同市場波動水準下的調整,當然你在樣本外就會看到好像和樣本內有一咪咪相似的感覺。

但是這樣模型還是不能用,你還是會掛掉,如果可以用,你就會發現你要經常性的重新訓練和優化你的策略參數,然後還有一些人以為,這樣代表我在「適應」市場,其實他只是在脫褲子放屁的「適應波動」而已。

沒有留言:

張貼留言