[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%,输给了买进并持有。

下一篇文章会带入最佳化,看调整不同均线周期能不能让报酬率更好。

更正,这篇文章本来报酬率是负的,那是因为手续费设错,已经修正


<<:  GoDaddy 设定 DNS 转址到 IIS 上指定网站

>>:  Rails belong_to

系统开发生命周期(SDLC)- 设计隐私

欧洲GDPR设计,这就要求隐私被考虑纳入隐私贯穿整个设计过程。(维基百科)隐私影响分析甚至在开始阶段...

Day 2 测试的不同种类

该文章同步发布於:我的部落格 测试的种类 既然要介绍 RSpec,就不得不提到测试的种类,根据下图...

【Day 22】JavaScript 的 相等比较

JavaScript 提供三种不同的值比较运算操作: 严格相等 (或称 "三等於"...

连续 30 天 玩玩看 ProtoPie - Day 4

接下来要使用 ProtoPie Player 来进行分享。 如果 client 端手机或平板已经下载...

用React刻自己的投资Dashboard Day29 - 替股票加上名称

tags: 2021铁人赛 React 上一篇提到台股技术面的最新收盘资讯只有股票代号,似乎少了名称...