前言
上面文章,我们介绍了如何获取实时数据,这篇文章,我们继续往下探讨,介绍关于财务报表数据的获取。
财务报表数据
财务报表数据,也就是常说的基本面数据,是除了行情数据之外,辅助我们投资的重要数据。稳定,高效,高质量的获取财务数据,也是量化分析中很重要的一个环节。
接口汇总
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开通规则分享》