先講一下接下來幾天的目標,目前在最佳化的時候會需要針對每一支不同的策略寫一次最佳化函數,這在未來使用上是比較不方便的。看一下之前寫的optimizeMA主要問題有兩塊,一個是綠框的部分,在製作訊號的時候函數名稱跟輸入每支策略都不一樣。另一個問題是紅框的部分,for loop的層數會隨著參數的數量做變動。
針對綠框的部分,如下圖所示,我已經把他改成把策略打包成class,並且參數換成dict的形式做處理,這樣子在產生訊號的階段一律都能用一行classXX.createsignal(kbars_daily,args)解決。至於紅框的部分目前還沒有解法,可能會需要自己發明一個輪子。
使用上如下圖所示,實際上要改的就只有參數的內容而已,函數呼叫上都是統一的用法。這樣最佳化那端在呼叫的時候就很方便。
這邊先把簡單的問題解決了。接下來就要面對困難的部分。