【miniQMT实盘量化5】获取财务报表数据

前言

上面文章,我们介绍了如何获取实时数据,这篇文章,我们继续往下探讨,介绍关于财务报表数据的获取。

财务报表数据

财务报表数据,也就是常说的基本面数据,是除了行情数据之外,辅助我们投资的重要数据。稳定,高效,高质量的获取财务数据,也是量化分析中很重要的一个环节。

接口汇总

xtdata.download_financial_data()
xtdata.download_financial_data2()
xtdata.get_financial_data()

财务数据的接口比较简单,两个下载,一个获取。

download_financial_data

首先,是下载财务数据的接口,使用比较简单,这里新出现的参数就是table_list,下面根据例子详细解释。

from xtquant import xtdata

table_list = ['Balance','Income','CashFlow','Capital','Top10FlowHolder','Top10Holder','HolderNum','PershareIndex']

xtdata.download_financial_data(stock_list=['600519.SH'], table_list=table_list)

还是依次介绍一下参数:

  • stock_list:代码列表,是个数组,这里可以传多个
  • table_list:这是一个可选表类型的数组,我例子中列出的,基本上是全部的表类型。首先,'Balance','Income','CashFlow'就是财务三大报表,还有可能常用的是PershareIndex,这是每股指标的报表。所有的类型,在迅投官方文档的链接中,都可以找到,需要哪个就下载哪个。
  • start_time和end_time: 虽然官方文档上目前没写,但这个接口也是支持开始结束时间的,传入起止时间之后,就是下载报告期在这个时间段内的数据,介于财务数据频率很低,一年才四次,所以一次性下载也消耗不了什么时间,无特殊需要,这两个参数大多时间可以省略。

download_financial_data2

这个接口,与download_financial_data的差别,只是多了一个callback参数,其他并无区别

from xtquant import xtdata

table_list = ['Balance','Income','CashFlow','Capital','Top10FlowHolder','Top10Holder','HolderNum','PershareIndex']

def on_data(data):
    print(data)

xtdata.download_financial_data2(stock_list=['600519.SH', '000001.SZ'], table_list=table_list, callback=on_data)

可以看到,on_data会被多次调用,当下载量比较大的时候,可以用来计算下载进度。
在这里插入图片描述

get_financial_data

下载数据时候,就可以进行数据的获取,这个接口就是用来做数据获取的。

from xtquant import xtdata

table_list = ['Balance','Income','CashFlow','Capital','Top10FlowHolder','Top10Holder','HolderNum','PershareIndex']

xtdata.download_financial_data(stock_list=['600519.SH'], table_list=table_list)

res = xtdata.get_financial_data(stock_list=['600519.SH'], table_list=table_list)

res['600519.SH']['Balance']

在这里插入图片描述
该接口的参数,与下载接口也是基本一致,只是多了一个可选的report_type参数,它有两个取值,'report_time' #截止日期,'announce_time' #披露日期,默认是report_time,我们上例中没有传,但这个参数有时也会有用。我们可以选择根据那个日期进行数据过滤,比如,下例中,

财报日期 vs 披露日期

可以看到,我上图红框里的两列数据,一个是财报截止日期,它每年日期都是固定的,0331,0630,0930,1231,四个日期;另一个是实际披露日期,总所周知,财报的披露时间是有滞后的,尤其是年报,很有可能是第二年的四月份才发布。所以,了解一个财务数据的实际披露日期是挺重要的,比如你想用根据财务数据做一些策略,并进行回测,如果不知道财报实际披露日期,很可能会造成未来函数,导致结果失真。在使用QMT之前,财报的披露日期是比较难获取的。

但,我使用中也发现了一些问题,返回的财务数据存在重复,目前还在于联系迅投官方咨询解决。

总结

本篇介绍了如何获取财务基本面数据,很多时候,对财务数据的分析,似乎是一件很“有趣”的事,但也要提醒自己,不要陷入五彩斑斓的财务指标中迷失了目标,财务数据具有滞后性、低频性、上市公司倾向于对财务数据行进合法“美化”。所以,我认为,它并不能作为量化投资策略的直接或唯一依据。

虽然,刚才说了财务数据的很多缺点,但,这并不妨碍,它依旧是一种客观、严谨、具备逻辑性的数据资料。分析财务数据,也有助于我们了解市场,以便对真实的历史和当下,有一个更客观的了解。

miniQMT具体开通方法及要求,可以参看《QMT开通规则分享》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/183553.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

qgis添加xyz栅格瓦片

方式1:手动一个个添加 左侧浏览器-XYZ Tiles-右键-新建连接 例如添加高德瓦片地址 https://wprd01.is.autonavi.com/appmaptile?langzh_cn&size1&style7&x{x}&y{y}&z{z} 双击即可呈现 收集到的一些图源,仅供参考,其中一…

Java核心知识点整理大全11-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

线性代数的艺术

推荐一本日本网友Kenji Hiranabe写的《线性代数的艺术》。这本书是基于MIT大牛Gilbert Strang教授的《每个人的线性代数》制作的。 虽然《线性代数的艺术》这本书仅仅只有12页的内容,就把线性代数的重点全画完了,清晰明了。 《线性代数的艺术》PDF版本&…

linux高级篇基础理论六(firewalld,防火墙类型,,区域,服务端口,富语言)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

010 OpenCV中的4种平滑滤波

目录 一、环境 二、平滑滤波 2.1、均值滤波 2.2、高斯滤波 2.3、中值滤波 2.4、双边滤波 三、完整代码 一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、平滑滤波 2.1、均值滤波 在OpenCV库中,blur函数是一种简…

【精选】框架初探篇之——MyBatis入门必知【面试常问】

什么是MyBatis? MyBatis是一个半自动的ORM框架,其本质是对JDBC的封装。使用MyBatis不需要写JDBC代码,但需要程序员编写SQL语句。之前是apache的一个开源项目iBatis,2010年改名为MyBatis。 补充: Hibernate也是一款持久层ORM框架&…

文章解读与仿真程序复现思路——电工技术学报EI\CSCD\北大核心《面向差异化电源成本结构的容量市场机制设计》

这个文章标题涉及到容量市场机制设计,着重考虑了电源成本结构的差异性。下面对标题中的关键词进行解读: 面向(Facing): 表示该容量市场机制设计是以某种方向、取向或目标为基础的。在这里,可能指的是设计是…

第五天 用Python批量处理Excel文件,实现自动化办公

用Python批量处理Excel文件,实现自动化办公 一、具体需求 有以下N个表,每个表的结构一样,如下: 需要把所有表数据汇总,把每个人的得分、积分分别加起来,然后按总积分排名,总积分一致时&#xff…

Flutter学习(四)如何取消listview的越界效果

背景 在flutter的开发过程中,ListView是很常见的一个组件,但是,由于ListView的某些自带的体验,导致不太好的用户体验。例如ListView中,滑动到顶部或者底部的时候,再次滑动,会有越界的效果&…

Keil工程打开发现目标芯片无法选择解决方案

买了一个开发板,配套有一些底层驱动的例程,打开后发现目标芯片无法选择,对应的下载Flash FLM文件也无法选择。从提示框中可以知道所提供的例程是Keil4的例程,我电脑上安装的Keil版本是Keil版本,估计是这个原因导致工程…

机器人制作开源方案 | 智能图书搬运机器人

作者:张宸豪 戚益凡 陈世达 高梓钦 谭清 单位:华北科技学院 指导老师:罗建国 韩红利 阅读对于学生的重要性毋庸置疑,因此图书馆是一个校园非常重要的组成部分,图书馆的书籍借阅,能为学生提供非常大的…

人工智能对网络安全的影响越来越大

如果问当前IT行业最热门的话题是什么,很少有人会回答除了人工智能(AI)之外的任何话题。 在不到 12 个月的时间里,人工智能已经从一项只有 IT 专业人员才能理解的技术发展成为从小学生到作家、程序员和艺术家的每个人都使用的工具…

基于单片机设计的大气气压检测装置(STC89C52+BMP180实现)

一、前言 本项目设计一个大气气压检测装置,该装置以单片机为基础,采用STC89C52作为核心控制芯片,结合BMP180模块作为气压传感器。大气气压,也就是由气体重力在大气层中产生的压力,其变化与天气预报、气象观测以及高度…

Python Pyvis库详解:创建交互式网络图

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python Pyvis库详解:创建交互式网络图,文章4000字,阅读大约15分钟,大家enjoy~~ Pyvis是一个基于JavaScript库NetworkX的Pytho…

【matlab程序】南海土台风画法

【matlab程序】南海土台风画法 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画布和坐标轴 【Python海洋专题四】之水深地图图像修饰 【Python海洋专…

U-boot(四):start_armboot

本文主要探讨210的uboot启动的第二阶段,主要函数为start_armboot。 uboot 一阶段初始化SoC内部部件(看门狗、时钟等),初始化DDR,重定位 二阶段初始化其余硬件(iNand、网卡芯片)以及命令、环境变量等 启动打印硬件信息,进入bootdelay,读秒完后执行bootc…

二十一、文档操作

目录 一、添加文档 1、编写代码 2、运行并查看 二、查询文档 1、编写代码 2、运行并查看 三、删除文档 1、编写代码 2、运行并查看 四、修改文档 方式一:全量修改,会删除旧文档,添加新文档 方式二:局部修改。增量修改&…

nodejs 如何将 Buffer 数据转为 String

问题说明 使用webSocket的时候出现了一个问题,前端小程序和nodejs后端建立websocket连接后,使用send方法发送到后端为buffer格式,以下为我前后端代码 1、前端小程序代码 //创建webSocket连接 const socket uni.connectSocket({url: wss…

工作中死循环害死人

背景:研发的一段代码,循环一直没有跳出,导致其他依赖逻辑有问题,生产事故导致9万左右数据不正常。 这里while(true)真的不要轻易用 ,后来研发改动限制mysql的id切分步长,控制不会有数…

FreeRTOS源码阅读笔记4--semphr.h

信号量是特殊的队列--无法存储消息的队列,相关的接口函数声明在semphr.h中,通过宏定义替换队列函数实现。 4.1创建二值信号量xSemaphoreCreateBinary() 4.1.1函数原型 queueQUEUE_TYPE_BINARY_SEMAPHORE:一个宏,表示创建队列的…