iT邦幫忙

2021 iThome 鐵人賽

DAY 4
1
永豐金融APIs

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

[Day4] 函數打包與買進持有報酬率試算

一開始先把前面的那些程式碼打包起來方便使用,首先先把前面的程式碼全部複製到一個新的python檔案裏面,到目前為止有用到的功能有
1.登入
2.抓取1分K
3.抽取1分K的收盤價
4.1分收盤價轉日收盤價
5.均線交叉訊號製作

登入

登入的部分會需要的有帳號密碼,還要告訴shioaji用模擬模式還是真倉模式,我這邊採取的作法是帳號密碼要用的時候自己手動輸入就好了,可以把帳密放在文字檔裡面要用直接貼上去就好,或者用一些密碼管理工具也可以,函數需要輸入的就只剩下模擬模式開關的那個
https://ithelp.ithome.com.tw/upload/images/20210904/20141238dfB3synpLq.png

抓取1分K

這邊會需要輸入股票ID,開始時間和結束時間,由於shioaji同時支援期貨和股票的報價,這邊函數名字特別寫"股票"K線
https://ithelp.ithome.com.tw/upload/images/20210904/20141238b3SmHQ9eqo.png

抽取1分K的收盤價

這邊輸入前面的1分K和欄位名稱,欄位名稱填'close'就會抽取收盤價的部分,未來也能用這個函數抽取開盤價或成交量之類的
https://ithelp.ithome.com.tw/upload/images/20210904/20141238HaJfCTJVhb.png

轉換成日收盤價

這邊就輸入1分收盤價還有一個引數告訴他要算開盤還收盤價,開盤收盤以外的東西要用到再加
https://ithelp.ithome.com.tw/upload/images/20210904/20141238w7HoODsjqN.png

均線交叉訊號製作

輸入日收盤價,還有長短均的週期輸出買賣訊號,其實可以加上一些判斷式來檢查有沒有無效值,但這邊用簡潔一點的寫法
https://ithelp.ithome.com.tw/upload/images/20210904/20141238YmVcBBpLrn.png

經過以上的打包之後,只要用以下少少幾行就可以做到前兩天的事情
https://ithelp.ithome.com.tw/upload/images/20210904/20141238pPGpXAaH4C.png
以下是執行結果
https://ithelp.ithome.com.tw/upload/images/20210904/20141238uKPBVhCDmX.png

如果是要計算資料裡面第A日到第B日的買進持有的報酬率用以下的period_profit函數就可以做到了,因為我這邊用的訊號都是收盤產生,隔天開盤作進出,所以這邊是用開盤價來算報酬率,如果操作上是收盤價進場的話可以用收盤價來計算損益。這個例子是計算開盤第1天買進到第11天開盤為止的報酬率。
https://ithelp.ithome.com.tw/upload/images/20210904/20141238zguei5Qj5Z.png

以下是執行結果,從2018/12/07到2018/12/20的報酬率是-0.0086。
https://ithelp.ithome.com.tw/upload/images/20210904/201412386IToxK0dE0.png

有了今天弄的這些基礎建設,明天就可以正式弄回測的部分了。


上一篇
[Day3] 使用ta-lib製作指標
下一篇
[Day5] 策略買賣訊號回測
系列文
從零開始使用python打造簡易投資工具43
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言