iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
永豐金融APIs

從零開始使用python打造簡易投資工具系列 第 5

[Day5] 策略買賣訊號回測

延續前一天的程式碼,首先先把圖片裡的程式碼搬到箭頭的地方,固定前面放函數後面放程式,這樣看起來比較清楚
https://ithelp.ithome.com.tw/upload/images/20210905/20141238kfeXkmzCgb.png

然後period_profit函數的後面插入以下的程式碼,這個函數可以輸入買賣訊號和每日開盤價回傳報酬率。它的運作方式如下:
1.計算每一天手上的部位,把收盤的買賣訊號往後移一天就是了,然後第一天會空出來變Nan所以需要填個值進去
2.對每一天loop計算報酬
2.1.如果手上有部位當日報酬就等於下一天的開盤/今天開盤,沒部位的話報酬就是1.0
2.2.在訊號買->賣或者賣->買的時候計算交易成本,裡面有買賣價差(這邊是看零股價差,整張應該更小),交易稅,手續費。買賣價差不同商品不一樣,0050的價差滿小的,像006204價差就大得多,設定的時候要注意一下。交易稅是只有賣出才收所以我這邊除以二,買賣價差則是本來就要除以二才比較合理。
2.3.把報酬率放進series裡面
3.把每天的報酬率相乘
https://ithelp.ithome.com.tw/upload/images/20210906/20141238dWIupsQ4qY.png

把報酬率印出來
https://ithelp.ithome.com.tw/upload/images/20210906/20141238H802LVeddl.png
報酬率有40%,不過同時期2019-01-01到2021-09-02這段期間0050的報酬率是100%,輸給了買進並持有。

下一篇文章會帶入最佳化,看調整不同均線週期能不能讓報酬率更好。

更正,這篇文章本來報酬率是負的,那是因為手續費設錯,已經修正


上一篇
[Day4] 函數打包與買進持有報酬率試算
下一篇
[Day6] 最佳化均線交叉訊號
系列文
從零開始使用python打造簡易投資工具35

尚未有邦友留言

立即登入留言