量化分析篇 如何用Python计算策略仓位

关注我的另一个号加星标(金Python与指标策略),不定期送书抽奖:

书接上回,我们上一章已经成功的拿到了策略的信号,并且对信号进行数据的处理,下面我们要计算仓位和资金曲线了,接下来的几章是量化的关键的关键,也是慢慢到了量化的精华的地方了,大家要仔细看。

下面非常详细的计算仓位的步骤:

上面我们已经生成了信号的数据表,我们看一下:

c5e6884e6e70f217dfdac5d72851a6fe.png

也就是1-10 当天收盘之后,我们的程序就发出了1 也就是 买入的信号,那么我们的仓位会在第二天满上,所以我们增加一个列叫pos列。

pos列正好跟signal列错位1行,我们用pandas非常容易搞定:

data['pos'] = data['Signal'].shift()

print(data[['股票名字','交易日期','收盘价','ma_fast','ma_slow','Signal','pos']])

45668e544f192a8a5b4a9ddfdebbaa19.png

同时我们发现pos的第一行是一个NaN值,非常不利后面的计算,我们也要处理一下,把NaN填充为0。

data['pos'].fillna(value=0, inplace=True)

看一下效果:

56b8ef795f79db17e428e4a7836b1cc7.png

2).找出开仓和平仓的交易日期

有了pos这一列之后,下面就好办很多,我们需要计算开仓和平仓的条件,找到开仓的条件

083ba2a2760f8dc0fdc015d998afc5a8.png

解释一下,其实就是0-1的情况,第一个条件是当天不为0(即为1),第二天条件是当天要和前一天持仓不一样,满足这两个条件就是我们开仓的日期,我们看一下效果:

ce56fa0a593af7e101948340b272a00e.png

同样我们对start_pos_time 进行前向填充

854f52daf28eacb6359e86f1a8631fc9.png

好,经过这几步,我成功的设置了开仓的时间,为我们下一步计算资金曲线做了准备。同理平仓的日期,我们也能很容易的找到

22596b169d418b21fd24caaf5eedc779.png

可以看到平仓的日期是2月22号,我们最后看一下前面的章节画的可视化图,就一目了然了。

b41884f19fff1e05ddeb7f2869bb2e8b.png

从图上可以看到,发出买入信号是在1月11号,卖出时2月22号,非常清晰!好,经过这几步,我成功的设置了开仓的时间,为我们下一篇计算资金曲线做了准备。

喜欢的可以关注我们,如果想了解更多我们量化小册的内容,欢迎订阅:原价199 早鸟价39(满100人涨10元)。订阅之后,48小时无理由退款,放心食用!

dfde010a1833f4a6a83bdabcaecb7a61.png

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值