延續前一天的程式碼,首先先把圖片裡的程式碼搬到箭頭的地方,固定前面放函數後面放程式,這樣看起來比較清楚
然後period_profit函數的後面插入以下的程式碼,這個函數可以輸入買賣訊號和每日開盤價回傳報酬率。它的運作方式如下:
1.計算每一天手上的部位,把收盤的買賣訊號往後移一天就是了,然後第一天會空出來變Nan所以需要填個值進去
2.對每一天loop計算報酬
2.1.如果手上有部位當日報酬就等於下一天的開盤/今天開盤,沒部位的話報酬就是1.0
2.2.在訊號買->賣或者賣->買的時候計算交易成本,裡面有買賣價差(這邊是看零股價差,整張應該更小),交易稅,手續費。買賣價差不同商品不一樣,0050的價差滿小的,像006204價差就大得多,設定的時候要注意一下。交易稅是只有賣出才收所以我這邊除以二,買賣價差則是本來就要除以二才比較合理。
2.3.把報酬率放進series裡面
3.把每天的報酬率相乘
把報酬率印出來
報酬率有40%,不過同時期2019-01-01到2021-09-02這段期間0050的報酬率是100%,輸給了買進並持有。
下一篇文章會帶入最佳化,看調整不同均線週期能不能讓報酬率更好。