[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

有了今天弄的这些基础建设,明天就可以正式弄回测的部分了。


<<:  【Day 4】VSCode操作Github提取和推送

>>:  DAY2-JAVA的变数与资料型态

Gulp 与 Git DAY92

在我们的资料夹内 只会将 source资料夹加入版控 这里我们就来利用 git 来版控啦~~ 输入 ...

Day 03 安装python、需要的package以及VS Code等环境建置

环境建置 安装python 至python官网下载并开启python安装档 https://www....

Day 20 [Python ML、资料视觉化] 折线图

设定jupyter notebook import pandas as pd pd.plotting...

Day18 认识你的「到达网页」

「到达网页」是消费者按下广告後连到的网页,它的网址通常与广告的最终到达网址相同。 而很多因素都会影响...

[day23]加入购物车 & 库存检查

简单设计一个库存与订单设计,用白话一点来说就是推一台购物车,购物车上可以放上各种商品,推去结帐时这台...