Book Appointment Now

Multicharts 最佳化功能探討
在開發交易策略的過程,大多數的人都會用到”參數最佳化”。Multicharts有這個功能可以讓我們在很短時間內找到過去表現最好的參數組合。
例如: 想要使用二條均線交叉買進或賣出 到底要取哪二個數字比較好?
此時可以從訊號的地方打開最佳化 利用電腦跑出最佳解

Multicharts 的最佳化方法
- 暴力演算(Exhaustive): 又稱為窮舉法,將所有可能的數字組合套入策略找到最佳解。 好處是所有組合都會被計算並找出可以找到最佳的數字。
- 基因演算(Genetic Algorithms): 基因演算法最佳化只計算較精準的組合,使用暴力演算法的部分時間找尋近似最佳解。 這使得基因演算法最佳化足以分析上百個參數的策略。進一步基因演算法的設定可以增加這個功能的彈性。
- 移動窗格 (Walk Forward): 將分割資料數列成多個區段,每個區段再分為樣本內(IS, in-sample) 和樣本外(OOS, out-of-sample)二個部分,用樣本內的得到的最佳參數,再去跑樣本外資料的績效
在Multicharts 針對最佳化的定義有詳細說明 (連結)

在MC12版多了矩陣最佳化(Matrix Optimization),我還不太清楚這方面的用法,官網上好像也沒有太多說明

用暴力演算法來當作範例,下圖中 針對要回測的參數給予一定的範圍和遞增值,範圍越大或是遞增值越小 計算的次數就越多,相對運算就會花比較多的時間

針對回測報表跑出來的一堆數字,可以按照獲利能力排序 或是最小虧損、勝率 或是獲利因子……等排序

每個投資人的個性不同,追求最佳化的過程 要求的標準也都不同
除了數字的報表之外,也有一個3D圖,藉由圖表的呈現 大致上找出好的參數值座落在什麼位置(通常是XY軸二個不同參數去比對);分布區域越平滑,表示各種參數的表現比較平均)

最佳化的迷失:
當你使用過multicharts最佳化功能 一段時間,應該有聽過 overfitting這個名詞,意思就是過度最佳化。根據已經發生的事實去套用一些參數,電腦可以輕易跑出最好的表現,但是未來的真實績效可能會打折扣(因為你看不到考試的題目是什麼)
一般來說 回測的參數越多,或是回測的數值越細,就會越容易overfitting,最佳化測試評估有機會再另外篇幅討論。我通常會預留一些時段當作是樣本外(Out of Sample)測試,或是寫好的策略觀察一段時間
最佳化是二面刃 使用得當確實讓績效表現提升,但是過度使用就會造成 上線之後的落差很大,要謹慎使用的,不然容易走火入魔