一直使用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复权数据使用相关推荐

  1. Python 量化金融必备库 Tushare 财经数据API(二):告诉你如何通过Python SDK 调取股票复权数据

    历史复权数据,分为前复权和后复权数据. 使用Tushare获取股票上市以来所有历史数据,默认为前复权. 如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且 ...

  2. tushare股票数据接口

    前言:简述tushare库的用法.tushare是一个免费提供各类数据的python库,详见:Tushare大数据社区 (waditu.com) 调用免费接口 免费接口即将停止更新,可使用下文中提到的 ...

  3. python利用tushare下载数据并计算当日收益率

    python利用tushare下载数据并计算当日收益率 计算股票收益率的程序主要有以下几部分构成: 1.获取股票接口数据函数:pro_daily_stock() 2.计算收益率函数:cal_stock ...

  4. 【Tushare金融数据实战】北向资金因子计算—指数衰减法

    [Tushare金融数据实战]北向资金因子计算-指数衰减法 Tushare ID : 459953 1.Tushare接口包简介 Tushare是一个免费,开源的python财经数据接口包.拥有丰富的 ...

  5. 如何使用DolphinDB处理Tushare金融数据

    DolphinDB是新一代的时序数据库,不仅可以作为分布式数据仓库或者内存数据库来使用,而且自带丰富的计算工具,可以作为研究工具或研究平台来使用,非常适用于量化金融.物联网等领域的海量数据分析.量化金 ...

  6. 【Tushare 大数据社区——解救你的财经数据需求】

    Tushare 大数据社区--解救你的财经数据需求 Tushare大数据社区--想要的我都有 for who? 有哪些内容? 数据质量怎么样? 上证50指数数据的对比实例 该如何获取呢? 写在最后 感 ...

  7. Tushare财经数据接口(五)案例——优质基本面的股票池创建

    Tushare财经数据接口 优质基本面的股票池创建 上市公司的基本面数据是体现公司经营历史业绩的重要凭据,也是投资者判断公司未来发展前景的重要依据,金融分析人员和股票投资者需要通过分析公司基本面质量来 ...

  8. 用几行python代码获取Yahoo,tushare股票数据,超级爽!!(比爬网好太多)

    在网上获取股票信息有非常多的方法,在此分享用几行Python代码就搞定想要的股票历史数据,一个是国外Yahoo的接口(缺点是比较慢),另一个是国内的tushare接口(速度快,但限制比较多):少废话先 ...

  9. Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差

    Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差 我的Tushare ID:393587 引入模块 导出数据 数据处理 计算相关系数与协方差 引入模块 第一步, ...

  10. 怎么把 Tushare 股票数据下载到本地excel csv格式

    怎么把 Tushare 股票数据下载到本地excel csv格式 #conding=utf-8 import tushare as ts import pandas as pd #这里填你自己的tus ...

最新文章

  1. 自定义数字格式字符串输出示例
  2. Android之Socket通信、List加载更多、Spinner下拉列表
  3. 脑机接口,风口还是入口?
  4. Java中Socket通信-客户端与服务端相互传输对象数据
  5. sqlserver安装检测不通过 (重新启动失败)
  6. 月入10万和月入5千的人关键区别是什么???
  7. XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
  8. java类的定义的实例_《Java基础知识》Java类的定义及其实例化
  9. python模块 - re模块使用示例
  10. 计算机教室戴尔电脑网络同传,如何进入和使用网络同传功能
  11. python做前端开发_Python开发【前端】:汇总
  12. python 删除文件夹中相似图片
  13. python计算均方误差_python 计算平均平方误差(MSE)的实例
  14. windows10获取超级管理员权限
  15. tensorflow conv2d()参数解析
  16. API获取订单接口文档使用说明
  17. Codeforces Global Round 21) C. Fishingprince Plays With Array
  18. Metasploit终端下的辅助扫描工具 (auxiliary模块讲解)
  19. 【Jquery】Pjax的了解与应用
  20. Makefile 与 GCC G++ 入门

热门文章

  1. Functional Programming in Java venkat(2) hello lambda expressions
  2. 2021 年人工智能全球最具影响力学者榜单 AI 2000 发布
  3. notion函数_最适合设计师的笔记软件 Notion
  4. er2100虚拟服务器,华三er2100n路由器恢复出厂设置
  5. ipone=遥控器?
  6. Python暴力破解受密码保护的zip/rar文件
  7. html5的video播放腾讯视频播放器,html 5中使用video元素制作一个影片播放器
  8. Linux安装无线网卡RTL8811CU
  9. Python堆糖网图片爬虫,多进程及多线程的使用例子
  10. pycharm 运行celery_调试celery遇到的坑