关注我的另一个号加星标(掘金Python与指标策略),不定期送书抽奖:
书接上回,我们上一章已经成功的拿到了策略的信号,并且对信号进行数据的处理,下面我们要计算仓位和资金曲线了,接下来的几章是量化的关键的关键,也是慢慢到了量化的精华的地方了,大家要仔细看。
下面非常详细的计算仓位的步骤:
上面我们已经生成了信号的数据表,我们看一下:
也就是1-10 当天收盘之后,我们的程序就发出了1 也就是 买入的信号,那么我们的仓位会在第二天满上,所以我们增加一个列叫pos列。
pos列正好跟signal列错位1行,我们用pandas非常容易搞定:
data['pos'] = data['Signal'].shift()
print(data[['股票名字','交易日期','收盘价','ma_fast','ma_slow','Signal','pos']])
同时我们发现pos的第一行是一个NaN值,非常不利后面的计算,我们也要处理一下,把NaN填充为0。
data['pos'].fillna(value=0, inplace=True)
看一下效果:
2).找出开仓和平仓的交易日期
有了pos这一列之后,下面就好办很多,我们需要计算开仓和平仓的条件,找到开仓的条件
解释一下,其实就是0-1的情况,第一个条件是当天不为0(即为1),第二天条件是当天要和前一天持仓不一样,满足这两个条件就是我们开仓的日期,我们看一下效果:
同样我们对start_pos_time 进行前向填充
好,经过这几步,我成功的设置了开仓的时间,为我们下一步计算资金曲线做了准备。同理平仓的日期,我们也能很容易的找到
可以看到平仓的日期是2月22号,我们最后看一下前面的章节画的可视化图,就一目了然了。
从图上可以看到,发出买入信号是在1月11号,卖出时2月22号,非常清晰!好,经过这几步,我成功的设置了开仓的时间,为我们下一篇计算资金曲线做了准备。
喜欢的可以关注我们,如果想了解更多我们量化小册的内容,欢迎订阅:原价199 早鸟价39(满100人涨10元)。订阅之后,48小时无理由退款,放心食用!
推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!