量化投资 — 简单动量策略(Momentum Strategy)

动量策略 - Momentum Strategy

0. 引库
import numpy as np
import pandas as pd
import tushare as ts
import matplotlib.pyplot as plt
import seaborn
plt.style.use('seaborn')      
import matplotlib as mpl
%matplotlib inline
mpl.rcParams['font.family'] = 'serif'
import warnings; warnings.simplefilter('ignore')     # 忽略警告信息
1. 数据准备 & 回测准备
# tushare 获取沪深300股票数据
data = ts.get_k_data('hs300', start = '2010-01-01', end='2017-06-30')[['date','close']]
data.rename(columns={
   'close': 'price'}, inplace=True)
data.set_index('date', inplace = True)
data.head()
price
date
2010-01-04 3535.229
2010-01-05 3564.038
2010-01-06 3541.727
2010-01-07 3471.456
2010-01-08 3480.130
2. 策略开发思路
# 计算连续收益率
data['returns'] = np.log(data['price'] / data['price'].shift(1))
data.head()
price returns
date
2010-01-04 3535.229 NaN
2010-01-05 3564.038 0.008116
2010-01-06 3541.727 -0.006280
2010-01-07 3471.456 -0.020040
2010-01-08 3480.130 0.002496
# np.sign()符号函数支持向量化
data['position'] = np.sign(data['returns'])     
data.head()
price returns position
date
2010-01-04 3535.229 NaN NaN
2010-01-05 3564.038 0.008116 1.0
2010-01-06 3541.727 -0.006280 -1.0
2010-01-07</
  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值