tushare复权数据使用
一直使用tushare数据,感谢米哥的提供,由于一些计算需要用复权数据,最近使用中发现了一些问题,说明如下。
1. tushare数据接口的问题
tushare日线数据有两个接口,一个是日线行情接口daily,一个是复权行情pro_bar。
# 日线行情接口daily
pro = ts.pro_api()
df = pro.daily(ts_code='000001.SZ')# 日线复权行情pro_bar
qfq_df = ts.pro_bar(ts_code='000001.SZ', adj='qfq')
关于接口,说明的很详细,基础积分每分钟内最多调取500次,每次5000条数据,相当于23年历史。现在问题来了,如果这个股票上市时间超过了23年,那么前复权数据是什么样子的呢?测试代码如下。
ts.set_token(TOKEN)pro = ts.pro_api()df_qfq = ts.pro_bar(ts_code='000001.SZ', start_date='19910403', end_date='19981030', adj='qfq') # 前复权接口df_daily_now = pro.daily(ts_code='000001.SZ', start_date='19910403', end_date='19981030') # 日线接口df_qfq_close_list = df_qfq['close'].values.tolist()df_daily_close_list = df_daily_now['close'].values.tolist()is_equal = df_qfq_close_list[:20] == df_daily_close_list[:20]print(is_equal)
以上代码可以看到,复权接口和日线接口返回的收盘价一样,那么问题来了,从1998年到现在这个时间段,其实已经复权N次了,那时候的前复权数据,应该比不复权的数据,价格低很多。
2.改进方法
因为有如上的问题,所以需要我对代码进行改进。可以通过复权因子接口adj_factor来获取复权值,然后自己计算前复权数据。前复权的算法也很简单:当日收盘价 * 当日复权因子 / 最新复权因子
'''获取000001.SZ的所有历史数据'''df_daily_now = pro.daily(ts_code='000001.SZ')end_date = df_daily_now.iloc[-1]['trade_date']df_daily_before = pro.daily(ts_code='000001.SZ', start_date='19910403', end_date=end_date) # 由于接口返回数据的限制,分两次获取股票的历史数据df_daily_before_remove_one = df_daily_before[1:]df_daily = pd.merge(df_daily_now, df_daily_before_remove_one, how='outer')df_adj = pro.adj_factor(ts_code='000001.SZ', trade_date='')[['trade_date', 'adj_factor']]df_daily_with_adj = pd.merge(df_daily, df_adj, on='trade_date')now_adj_factor = df_adj.iloc[0]['adj_factor'] # 最新复权因子df_daily_with_adj['close_qfq'] = df_daily_with_adj['close'] * df_daily_with_adj['adj_factor'] / now_adj_factor # 前复权 当日收盘价 × 当日复权因子 / 最新复权因子
上述代码close_qfq,就是对收盘价计算的前复权数据,通过这个方法,可以计算开盘价,最高价,最低价。
tushare复权数据使用相关推荐
- Python 量化金融必备库 Tushare 财经数据API(二):告诉你如何通过Python SDK 调取股票复权数据
历史复权数据,分为前复权和后复权数据. 使用Tushare获取股票上市以来所有历史数据,默认为前复权. 如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且 ...
- tushare股票数据接口
前言:简述tushare库的用法.tushare是一个免费提供各类数据的python库,详见:Tushare大数据社区 (waditu.com) 调用免费接口 免费接口即将停止更新,可使用下文中提到的 ...
- python利用tushare下载数据并计算当日收益率
python利用tushare下载数据并计算当日收益率 计算股票收益率的程序主要有以下几部分构成: 1.获取股票接口数据函数:pro_daily_stock() 2.计算收益率函数:cal_stock ...
- 【Tushare金融数据实战】北向资金因子计算—指数衰减法
[Tushare金融数据实战]北向资金因子计算-指数衰减法 Tushare ID : 459953 1.Tushare接口包简介 Tushare是一个免费,开源的python财经数据接口包.拥有丰富的 ...
- 如何使用DolphinDB处理Tushare金融数据
DolphinDB是新一代的时序数据库,不仅可以作为分布式数据仓库或者内存数据库来使用,而且自带丰富的计算工具,可以作为研究工具或研究平台来使用,非常适用于量化金融.物联网等领域的海量数据分析.量化金 ...
- 【Tushare 大数据社区——解救你的财经数据需求】
Tushare 大数据社区--解救你的财经数据需求 Tushare大数据社区--想要的我都有 for who? 有哪些内容? 数据质量怎么样? 上证50指数数据的对比实例 该如何获取呢? 写在最后 感 ...
- Tushare财经数据接口(五)案例——优质基本面的股票池创建
Tushare财经数据接口 优质基本面的股票池创建 上市公司的基本面数据是体现公司经营历史业绩的重要凭据,也是投资者判断公司未来发展前景的重要依据,金融分析人员和股票投资者需要通过分析公司基本面质量来 ...
- 用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)
在网上获取股票信息有非常多的方法,在此分享用几行Python代码就搞定想要的股票历史数据,一个是国外Yahoo的接口(缺点是比较慢),另一个是国内的tushare接口(速度快,但限制比较多):少废话先 ...
- Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差
Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差 我的Tushare ID:393587 引入模块 导出数据 数据处理 计算相关系数与协方差 引入模块 第一步, ...
- 怎么把 Tushare 股票数据下载到本地excel csv格式
怎么把 Tushare 股票数据下载到本地excel csv格式 #conding=utf-8 import tushare as ts import pandas as pd #这里填你自己的tus ...
最新文章
- 自定义数字格式字符串输出示例
- Android之Socket通信、List加载更多、Spinner下拉列表
- 脑机接口,风口还是入口?
- Java中Socket通信-客户端与服务端相互传输对象数据
- sqlserver安装检测不通过 (重新启动失败)
- 月入10万和月入5千的人关键区别是什么???
- XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
- java类的定义的实例_《Java基础知识》Java类的定义及其实例化
- python模块 - re模块使用示例
- 计算机教室戴尔电脑网络同传,如何进入和使用网络同传功能
- python做前端开发_Python开发【前端】:汇总
- python 删除文件夹中相似图片
- python计算均方误差_python 计算平均平方误差(MSE)的实例
- windows10获取超级管理员权限
- tensorflow conv2d()参数解析
- API获取订单接口文档使用说明
- Codeforces Global Round 21) C. Fishingprince Plays With Array
- Metasploit终端下的辅助扫描工具 (auxiliary模块讲解)
- 【Jquery】Pjax的了解与应用
- Makefile 与 GCC G++ 入门
热门文章
- Functional Programming in Java venkat(2) hello lambda expressions
- 2021 年人工智能全球最具影响力学者榜单 AI 2000 发布
- notion函数_最适合设计师的笔记软件 Notion
- er2100虚拟服务器,华三er2100n路由器恢复出厂设置
- ipone=遥控器?
- Python暴力破解受密码保护的zip/rar文件
- html5的video播放腾讯视频播放器,html 5中使用video元素制作一个影片播放器
- Linux安装无线网卡RTL8811CU
- Python堆糖网图片爬虫,多进程及多线程的使用例子
- pycharm 运行celery_调试celery遇到的坑