前面Day11和Day12的文章看到一些錯誤,已經修正了,之後這系列寫完再把完整一點的.py檔放到google drive或是github。
回到正題,今天用均線策略作範例處理最佳化的function,首先最佳化的部分做成一個strategy_optimize函數。前一篇文章參數裡面func的地方,後面會做一個bodyfor_optimize函數給他用,然後前一篇args的地方,除了做為參數傳入的kbars_daily之外,最佳化過程中產生的bestret之類的資料也一併放在這邊傳到recursive_loop函數裡面。
這邊是bodyfor_optimize函數,就是本來optimizeMA當中for loop最裡面的地方,這邊跟策略的相依性會比較大,所以先設計成每個class strategy_XX都要獨立寫一份,哪天有靈感再來簡化這一塊,不過應該多少會剩下一些需要case by case的東西。
最後是執行的部分。用新做出來的strategy_optimize來跑一次最佳化,然後搭配原來的optimizeMA做驗證,兩邊結果一樣今天時做的東西應該就可以用了。
以下是ret和ret2的內容,兩者一致,代表今天的內容應該沒問題。
接下來如果有靈感可能會再打磨一下bodyfor_optimize的部分,如果沒靈感的話會試試看拿1分k寫策略做期貨交易,畢竟期貨市場有日夜盤,1分K會比現貨還要連續,在這情況下用1分k寫策略比較有意義。