python量化投资代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...

动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思。

首先加载原始数据,我们用天的收盘价即可,按统一转为收益率。因为点位本身不重要,我们最后只关心变化率。

以沪深300数据为例,从2010-01-01到现在。

df['position'] = np.sign(df[code])

numpy.sign可以向量化的判断收益率为正或负。——其实收益率就是1天的动量。

下面我们做一个最简单的动量策略,就是昨天收益率(动量)为正当天持仓; 如果昨天为负,则当天空仓,一行代码就够了:

df['strategy'] = df['position'].shift(1) * df[code]

shift把position统一向上撤一行,否则就是未来函数。

这一句就把策略的收益直接算出来:

我们把策略收益画出来看下效果如何:

(df[[code, 'strategy']]+1).cumprod().plot(figsize=(10, 6))

cumsum()是连乘的意思,等于(1+rate).cumprod()。

这么一个最简单的策略,看出来,动量策略可能有正收益的。

稍微改造一下,N=13天的动量策略:

df = MongoDatafeed(start=datetime(2011, 1, 1)).get_dfs([code])df['equity'] = (1+df[code]).cumprod()N = 13df['equity_{}'.format(N)] = df['equity'].shift(N)df['momentum'] = df['equity']/df['equity_{}'.format(N)] - 1df['position'] = np.sign(df['momentum'])df['strategy'] = df['position'].shift(1) * df[code]

当13天动量为正时持仓,反之平仓。

创业板指数的13天动量策略

年化15%,比指数本身年化10%高出5个点

以此为基础,就看大家的想象力了。

(公众号: 七年实现财富自由(ailabx),用数字说基金,用基金做投资组合,践行财富自由之路)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值