加值服務 | 相關文章

【教學】認識 MultiCharts 參數優化

2020/05/12 - MultiCharts,參數最佳化,Exhaustive(暴力法 ),Genetic(基因算法),Walk Forward,移動窗格


MultiCharts 提供了參數優化的功能,優化可以幫助策略開發者選取在特定歷史數據中達到最佳策略績效的參數。你可以透過不同的方式定義什麼是好的策略績效。

策略是由實做交易觀念、想法,和觀察市場歷史行為所形成的交易系統,透過參數優化,可以幫助使用者更了解策略特性以及藉由歷史來證明自己的想法是否符合預期。

MultiCharts 提供了參數優化的功能,優化可以幫助策略開發者選取在特定歷史數據中達到最佳策略績效的參數。你可以透過不同的方式定義什麼是好的策略績效。系統預設會使用最高凈獲利,你可以依自己的喜好定義自己的優化目標,MultiCharts 可以讓你定義自己的條件。

注意:
過度的優化可能會有致命性的影響。這情形叫做過度優化或曲線擬合。實際交易的績效不見得會與優化的參數相同,因為未來與歷史走勢不太可能完全相同。

MultiCharts 提供了兩種優化的方式,Exhaustive(暴力法)基因算法(Genetic)。您可以通過在圖表點擊右鍵,選擇 Format Signal 後點擊 Optimize… 開啟功能視窗。

 

Exhaustive(暴力法)

暴力算法,又稱為窮舉法,依序將所有可能的組合代入策略找尋最佳解。這個方式的好處是 所有組合都會被計算並找出【絕對最佳解】。

暴力算法優化需要的時間和可能解的數量成正比。這個方式的缺點是,除非使用較少的參數, 否則找出最佳解所需的時間可能會是無法接受的漫長。因此,暴力算法優化可能只有在有限可能性的情況下才適合。

 

Genetic(基因算法)

一般來說,基因算法主要由兩個抽象概念運作:個體(基因組)和算法(即基因算法本身),只計算較精準的組合,使用暴力算法的部分時間找尋近似最佳解。

基因算法由隨機組合開始快速的縮小可能勝出的解,搜尋並選擇最有潛力的組合,進一步組合和變化專注在最有利和穩定的區域,直到最達到最佳的參數組合避免了在低獲利可能性區域的多余計算,這使得基因算法優化足以分析上百個參數的策略。

基因算法在很多需要做優化領域中廣為人知和採用,缺點是求出來的解會是【近似最佳解】,不見得會是最佳解。然而,這項缺點,在大量參數組合狀況下所節省的計算時間相比,微不足道

 

Walk Forward (移動取樣)

Walk Forward (移動取樣)的目的,通常是為了解決【過度優化】的問題,可以搭配 Exhaustive (暴力法)或 Genetic(基因算法)使用。

其中 IS 表示 In the sample(歷史數據),OOS 表示 Out of sample(模擬歷史以外的數據),算法是用 IS 範圍內的數據優化出最好的一組參數,然後套用到 OOS 的數據範圍內。

優化時,如果有勾選 Anchroed(定錨)則,每次優化都會把 OOS 重新加入到 IS 當中進行優化,再進入下一輪的 OOS 計算。

突然發現做出【綠光毛毛蟲】好像不是什麼難事!在經過了各種回測最佳化之後,我們終於弄出了一條像樣的螢光毛毛蟲,你心裡一定會想「X!我果然是個天才啊」(誤。。。。語亭老師傳送門