tushare之“前复权”

复权问题描述

通过上一篇文章《量化交易系统之python+mysql(二)》的内容,已经可以将需要的实时A股数据写入到mysql,与股票分析软件做对比,“开盘价”,“收盘价”等,却发现,有的数据相同,有的数据完全不一样,同样是通过tushare接口(daily)获取的,怎么会这种差异?

pro = ts.pro_api()

df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718')

然后通过比较发现,我习惯用的股票分析软件,设置了“复权”!复权以后,各种各种技术指标才便于分析。

 

为什么要设置复权?

复权的概念:

所谓复权就是对股价和成交量进行权息修复,按照股票的实际涨跌绘制股价走势图,并把成交量调整为相同的股本口径。股票除权、除息之后,股价随之产生了变化,但实际成本并没有变化。

前复权即就是保持现有价位不变,将以前的价格缩减,将除权前的K线向下平移,使图形吻合,保持股价走势的连续性。前复权即就是保持现有价位不变,将以前的价格缩减,将除权前的K线向下平移,使图形吻合,保持股价走势的连续性。

后复权就是在K线图上以除权前的价格为基准来测算除权后股票的市场成本价。就是把除权后的价格按以前的价格换算过来。简单的说,就是保持先前的价格不变,而将以后的价格增加。

(参考文献:前复权 后复权和不复权是什么意思)

 

复权问题的解决方案

所以,技术分析一般选择前复权

可以通过tushare的另外一个接口进行获取数据,tushare官方例子如下:

#取000001的前复权行情
df = ts.pro_bar(ts_code='000001.SZ', adj='qfq', start_date='20180101', end_date='20181011')

实际使用,不同版本调用可能存在一定差异,我使用的版本必须加入参数pro_api:

import tushare as ts


pro = ts.pro_api()

#qfq,前复权; hfq,后复权
#返回dataframe结构:ts_code/trade_date/open/high/low/close/pre_close/change/pct_chg/vol/amount
df = ts.pro_bar(ts_code=code, pro_api=pro, adj='qfq', start_date=startDay,end_date=endDay,retry_count=2)

tushare的源码中,给出的返回值注释是:

Return
    ----------
    DataFrame
    code:代码
    open:开盘close/high/low/vol成交量/amount成交额/maN均价/vr量比/tor换手率

而实际上,dataframe类型的返回值,并不是

open:开盘close/high/low/vol成交量/amount成交额/maN均价/vr量比/tor换手率

的组成结构,而是与daily接口一样:

#返回dataframe结构:ts_code/trade_date/open/high/low/close/pre_close/change/pct_chg/vol/amount

那么,dataframe类型的数据,如何转换成mysql可以存储的数据呢?欲知后事如何,请听下文《python dataframe类型转换后存入mysql》分解...

你可能感兴趣的:(python,量化交易系统,量化交易系统)