Tushare财经数据接口

优质基本面的股票池创建

上市公司的基本面数据是体现公司经营历史业绩的重要凭据,也是投资者判断公司未来发展前景的重要依据,金融分析人员和股票投资者需要通过分析公司基本面质量来评估公司股票的投资价值。从Tushare平台获取的上市公司基本面数据主要包括定期公布的公司经营业绩报告、盈利能力、营运能力、成长能力、偿债能力及现金流等数据,这些数据分别体现公司不同层面的经营状况。

我国股票市场(上海证券交易所和深圳证券交易所)已有近3600支正常交易的股票,普通投资者选择理想的投资标的时,不可能有足够时间和精力分析全部上市公司的基本面数据。因此,投资者有必要利用一些具有经验指导意义的关键指标对市场中的股票进行自动化筛选,即依靠计算机程序从全部上市公司股票中筛选出优质基本面的股票,从而显著提高投资者寻找优质公司股票的工作效率。例如,从公司的盈利能力、成长能力和现金流量等多个类别基本面数据中的部分指标项筛选出优质股票作为候选投资标的。

筛选优质股票的基本步骤为如下4步:

① 利用Tushare包内建的基本面数据接口函数获取全部股票的基本面数据。

② 根据经验确定反映基本面质量的关键指标项,从全部股票的基本面数据中提取关键指标项对应的数据序列。

③ 利用Pandas内建函数将多个基本面数据序列合并成一个DataFrame数据。

④ 根据关键指标项的重要程度确定数据序列的排序参数,对合并的数据进行排序。从排序结果中选择各项指标综合排序靠前的若干行,这些行对应的股票便是基本面质量相对较高的股票集合(即优质股票池)。

下表列出了获取公司盈利能力、成长能力和现金流基本面数据的接口函数及其返回参数的信息。

从上表中列出的函数的返回数据项目来看,接口函数返回的数据种类非常丰富,可用来体现公司投资价值的数据项有很多组合。例如,从上表所列三类数据的返回参数中选择净利率、净资产收益率、每股收益增长率、净利润增长率、每股收益增长率、经营现金净流量与净利润的比率及现金流量比率等7项作为关键评价指标,综合利用这7项指标的值反映公司的基本面质量。通常情况下,这些指标值越大,表示公司的基本面质量越高,公司股票的投资价值越大。如下程序演示了一种利用财务指标数据筛选优质公司股票的方法。

import tushare as ts
import pandas as pd
import datetime#获取最新的财务报表数据,我国A股上市公司的财务报告披露时间规定:4月30日前披露一季报,
#8月31日前披露半年报,10月30日前披露三季报,披露年报的时间是次年度的4月30日前。
this_year = datetime.datetime.today().year
this_month = datetime.datetime.today().month
if this_month >= 11:  # 今年的三季报已经发布fin_year = this_yearfin_sea = 3
elif this_month >= 5:  # 通常要在4月底才发布完上年度年报,当然也可选今年一季报fin_year = this_year-1fin_sea = 4
else:fin_year = this_year-1fin_sea = 3
print("%s年%s季度" %(fin_year,fin_sea))

printout: 2019年4季度

df1 = ts.get_profit_data(fin_year, fin_sea)
df2 = ts.get_growth_data(fin_year, fin_sea)
df3 = ts.get_cashflow_data(fin_year, fin_sea)

如果在运行程序前预先保存了相应的财务数据文件,那么可以直接从本地数据文件中读取财务数据,从而避免每次运行程序时都要连网下载相同数据的情形。

#code,代码;name,名称;net_profit_ratio,净利率(%);roe,净资产收益率(%);eps,每股收益;
#nprg,净利润增长率(%);nav,净资产增长率;
df_merge = pd.merge(df1[['code','name', 'net_profit_ratio', 'roe', 'eps']],df2[['code', 'nprg', 'nav']], on='code', how='left')
#左外连接,左表不加限制,保留左表的数据,匹配右表,右表没有匹配到的行中的列显示为NaN
#cf_nm,经营现金净流量与净利润的比率;cashflowratio,现金流量比率;
df_merge = pd.merge(df_merge, df3[['code', 'cf_nm', 'cashflowratio']],on='code', how='left').dropna() #删去去含有NaN的行
focus_df = df_merge.sort_values(['nprg', 'net_profit_ratio', 'cf_nm', 'nav','roe', 'eps', 'cashflowratio'], ascending=False)#nprg是第一关键字

关于对合并报表进行排序的关键列次序,有兴趣的读者可以多做一些次序调整,比较最终保留的数据表select_df中的股票集合及其排序情况,考察不同指标次序的排序操作结果有何不同,并找到对应的股票以了解股票价格近3年的价格变化情况。

focus_df['code']='\t'+ focus_df['code']#确保code以字符形式输入到csv文件,\t为制表符
if focus_df.iloc[:, 0].size > 100:select_df = focus_df[['code','name', 'nprg', 'net_profit_ratio', 'cf_nm', 'nav','roe', 'eps', 'cashflowratio']].head(100)
else:select_df = focus_df[['code', 'name', 'nprg', 'net_profit_ratio', 'cf_nm', 'nav','roe', 'eps', 'cashflowratio']]
select_df.to_csv('focus'+str(fin_year)+str(fin_sea)+'.csv',encoding='cp936',index=False)


我国A股上市公司的财务报告披露时间规定:4月30日前披露一季报,8月31日前披露半年报,10月30日前披露三季报,披露年报的时间是次年度的4月30日前。程序中利用datatime包的日期函数确定可获取的财报数据。
从股票市场的现实来看,选择具有优质基本面的上市公司股票的关键指标并没有统一的标准,一方面是因为不同的财务指标反映公司的侧重点时存在差别,另一方面是因为不同行业公司的财务数据指标在数值上的可比性尚无定论。本例仅提供一种利用Python程序提高优质公司股票筛选效率的方法,而不提供一种筛选优质股票的投资依据。

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

  1. Tushare财经数据接口(三)案例——股票基本面统计

    Tushare财经数据接口 股票基本面统计 使用get_stock_basics()函数一次性下载所有股票基本面数据.这对观察股票的整体市场情况很有帮助. import tushare as ts i ...

  2. python财经数据接口包_Tushare|免费开源财经数据接口包

    「Tushare」是云观测提供免费开源的python财经数据接口包,主要实现对股票等金融数据从数据采集.清洗加工到数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们在数据 ...

  3. 以下哪个不是python财经数据接口工具_这7种Python的全新玩法,大部分人都不知道!...

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面,主要内容如下: 创一个小群,供大家学习交流聊天 如果有对 ...

  4. Tushare开源数据接口的安装指南

    引言: Tushare是业界非常有名的开源数据接口,本文将简要介绍如何安装并使用之. 1.  官网主页 TuShare是一个免费.开源的python财经数据接口包; 摘自官网的信息. http://t ...

  5. 【Python金融量化 1- 100 】了解Python及常用财经数据接口包

    了解Python及常用财经数据接口包 背景介绍: Python是一种计算机程序设计语言,它诞生于20世纪90年代初,正在逐渐被广泛运用中. Python的创始人是Guido van Rossum.相传 ...

  6. python财经数据接口包_Tushare 财经数据接口包介绍(Python)

    最近在研究Python的量化交易实现,因为需要股票相关的金融数据,自己动手爬,实在太麻烦了. 于是在网上找找有没现成的数据接口,好做数据分析,发现了这个好东西,分享一下. Tushare 介绍: Tu ...

  7. 股票财经数据接口(一)

    最近股票大跌,打算做点数据分析.转个数据接口,等我完成数据分析有具体结论再写出来吧. 做了一点股票分析数据准备,做了个均线图: http://stock.chenpeng.info/randomone ...

  8. 【量化投资】02.数据接口初探——excel读取新浪股票api数据

    [目标] 使用vba程序获取新浪股票api的实时行情数据.K线,以及macd等技术指标数据. [新浪api介绍]  获取实时行情数据接口,http://hq.sinajs.cn/list=sz0022 ...

  9. Python 通过 Tushare Pro 获取财经数据接口

    一.首先注册用户,注册地址:Tushare数据与wind.东财等收费数据源相比,tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升 ...

最新文章

  1. object-c中归档的用法
  2. 【十二省联考2019】希望【点边容斥】【换根dp】【长链剖分】【线性数据结构】【回退数据结构】【离线逆元】
  3. Magento教程 1:免费购物车系统,轻松建立Magento第一步!
  4. JPA的双向一对一关联实现示例
  5. 随手记android面试题,synchorinzed的一个面试题
  6. 文件和参数一起上传_基于netty的文件上传下载组件
  7. Windows下sqlmap安装方法
  8. 全年数学建模相关比赛
  9. mysql virt虚拟内存_JVM占用VIRT虚拟内存高问题研究
  10. 【科研】沈向洋、华刚:读科研论文的三个层次、四个阶段与十个问题
  11. 对项目需求书撰写的一点理解
  12. 手把手教你写一个Matlab App(一)
  13. 可以称为是“钢铁侠” 原型
  14. 数据库连接失败: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
  15. 家乡,属于梦的记忆140
  16. 10亿数据中取最大的100个数据
  17. pycharm 专业版 Permanent activation
  18. [轻笔记]蛙跳积分法
  19. openflow协议之meter表简单实现
  20. CpG-B DNA:一种新型的免疫佐剂

热门文章

  1. “蔚来杯“2022牛客暑期多校训练营8
  2. 7-58 求10个点到原点的距离和 (15 分)
  3. SQ01报表添加事物码
  4. c语言1087答案,1087 有多少不同的值(C语言)
  5. 百度地图调用手机陀螺仪完成指向功能
  6. NIO的网络通信demo
  7. 微信小程序电商实战—环境搭建篇
  8. 孙陶然:公司要与员工分享
  9. 从零开始,Latex + Vscode的安装和使用
  10. 开局觉醒天道酬勤天赋(一)