700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 自学量化投资之旅-计算股票的复权价

自学量化投资之旅-计算股票的复权价

时间:2019-10-07 14:25:36

相关推荐

自学量化投资之旅-计算股票的复权价

在学习策略的开发之前,有一个必须要做的事,那就是对股票价格进行复权。tushare有提供复权数据的,不过鉴于很多软件对于复权处理都存在一些问题,(不知道tushare是否和其他的软件不一样,欢迎指正),这里决定按照股票的自己对股票的复权价进行处理。

首先看下下载的股票数据。

pct_chg:真实涨跌幅(复权后的涨跌幅)

首先利用真是涨跌幅计算除复权因子,复权因子可以理解1乘于累计涨跌幅。其次应该知道 某日后复权收盘价/首日收盘价= 后复权因子/首日复权因子= 固定值,所以某日后复权收盘价 = (后复权因子/首日复权因子)*首日收盘价。

前复权的计算公式则为:前复权首日收盘价 = (首日复权因子/某日前复权因子)*某日前复权收盘价。

注意:pct_chg没有带%,计算时需要乘于0.01

def cal_recover_price(data, recover_type='后复权'):'''计算股票的复权数据:param data: 股票数据:param market_code: 市场标识+股票代码:param type: ‘前复权’ or ‘后复权’:return: df添加['复权价', '复权open', '复权high', '复权low']'''# 计算复权因子recovertype = {'前复权':-1, '后复权':0}price1 = data['close'].iloc[recovertype[recover_type]]data['复权因子'] = (data['pct_chg']*0.01+1).cumprod()data.fillna(1, inplace=True)price2 = data['复权因子'].iloc[recovertype[recover_type]]data['复权close'] = data['close']*(price1/price2)# 计算复权open、high、lowcal_price = ['open', 'high', 'low']for p in cal_price:data['复权'+p] = data['复权close']/(data['close']/data[p])return data.drop(labels='复权因子', axis=1)

这里我拿sh000001的数据运行看一下效果。

完美!那么数据的问题算是基本解决了,接下来就讲正式开始研究基于日线的数据。

本篇代码参考自:/xingbuxing_py/article/details/109615874?spm=1001..3001.5501

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。