這邊實做一個函數,讓他能夠一次對好幾隻策略做最佳化,輸入的strategylist就是把好幾個策略包在一個list裡面餵進來,把所有的策略最佳化之後回傳結果。
以下是main的內容,lambda:0這個指令可以創造一個空的物件,然後動態放一些資料進去,我從這邊看來的(https://stackoverflow.com/questions/1878710/struct-objects-in-python)。 裡面的name代表策略名稱,obj就是策略的class,range代表最佳化的範圍。如果要新增其他策略(像是MACD),只要用一樣的寫法新增資料再append就行了。
以下是最佳化的結果,可以看出來在同樣在這段時間布林通道的報酬比均線還要多,其他像買賣訊號和每日報酬率也是有的,就不再贅述。
最後再看看MDD,BBAND的MDD雖然高一點點,但報酬比均線多好幾倍,其實是值回票價的。
其實不寫那個function好像也可以,只要把所有的策略通通都丟到main裡面然後一支一支跑最佳化就好。