基本面数据获取

我是Mr.看海,由于我开发的看海量化交易系统是基于miniQMT的行情和交易接口,所以在此我将miniQMT的使用教程采用案例集的形式进行讲解,该手册会不断完善和丰富,为做miniQMT的开发的朋友提供便利。
需要注意的是,本手册仅作为官方手册的辅助教程,最权威的接口请以官方说明文档为准:
官方手册请点击这里


1.基本面数据获取的运行逻辑与演示案例

在XtQuant中,获取基本面数据主要涉及到三个核心函数:

  1. download_financial_data() – 下载单只股票的财务数据
  2. download_financial_data2() – 批量下载多只股票的财务数据
  3. get_financial_data() – 获取已下载的财务数据

与行情数据类似,基本面数据的获取也需要先下载数据到本地,然后才能查询。不同的是,基本面数据是按照报表期进行组织的,包含了资产负债表、利润表、现金流量表等多个报表。

1.1 基本的财务数据获取流程

下面通过一个简单的案例来演示这个过程:

from xtquant import xtdata

# 1.下载单只股票的财务数据
xtdata.download_financial_data(
    stock_list=["000001.SZ"],
    table_list=["Balance", "Income"]  # 下载资产负债表和利润表
)

# 2.查询财务数据
data = xtdata.get_financial_data(
    stock_list=["000001.SZ"],
    table_list=["Balance", "Income"],
    start_time="20230101",
    end_time="20240101",
    report_type="report_time"  # 按报告期查询
)

# 3.打印结果
print("平安银行财务数据:")
for stock_code in data:
    print(f"\n{stock_code}的财务数据:")
    for table_name in data[stock_code]:
        print(f"\n{table_name}表主要指标:")
        print(data[stock_code][table_name].head())

1.2 财务数据下载函数的对比

在数据下载阶段,我们可以使用download_financial_data()或download_financial_data2()函数。

主要区别:

  • download_financial_data: 适合单只或少量股票下载,同步执行
  • download_financial_data2: 支持批量下载,可监控下载进度,异步执行
from xtquant import xtdata

# 示例1: 使用download_financial_data下载单只股票
xtdata.download_financial_data(
    stock_list=["000001.SZ"],
    table_list=["Balance", "Income", "CashFlow"]  # 三大报表
)

# 示例2: 使用download_financial_data2批量下载
def on_progress(data):
    print(f"已完成:{data['finished']}/{data['total']} - {data['message']}")

xtdata.download_financial_data2(
    stock_list=["000001.SZ", "600000.SH"],
    table_list=["Balance", "Income", "CashFlow"],
    start_time="20230101",    # 可选:按披露日期筛选
    end_time="20240101",      # 可选:按披露日期筛选
    callback=on_progress      # 进度回调函数
)

1.3 财务数据查询的详细说明

get_financial_data()函数是获取财务数据的核心接口,它支持多种查询方式:

from xtquant import xtdata

# 示例1:按报告期查询
data1 = xtdata.get_financial_data(
    stock_list=["000001.SZ"],
    table_list=["Balance", "Income"],
    start_time="20230101",
    end_time="20240101",
    report_type="report_time"  # 按报告期查询
)

# 示例2:按披露日期查询
data2 = xtdata.get_financial_data(
    stock_list=["000001.SZ"],
    table_list=["Balance", "Income"],
    start_time="20230101", 
    end_time="20240101",
    report_type="announce_time"  # 按披露日期查询
)

1.4 支持的财务报表类型

XtQuant支持以下主要财务报表:

  1. Balance – 资产负债表
  2. Income – 利润表
  3. CashFlow – 现金流量表
  4. Capital – 股本表
  5. Holdernum – 股东数
  6. Top10holder – 十大股东
  7. Top10flowholder – 十大流通股东
  8. Pershareindex – 每股指标

每个报表都包含了大量的字段,具体字段说明可以参考附录中的财务数据字段列表。

2. 注意事项

  1. 使用前确保miniQMT已启动并正常运行
  2. 获取数据前需要先下载对应的财务数据
  3. 财务数据更新频率相对较低,建议按季度更新即可
  4. 下载数据时注意控制批量大小,建议单次不超过50只股票
  5. 查询时注意report_type参数的设置:
    report_time: 按报告期查询,适合分析某个时点的财务状况
    announce_time: 按披露日期查询,适合做历史回测

3. 附录:财务数据接口

3.1 获取财务数据

get_financial_data(stock_list, table_list=[], start_time='', end_time='', report_type='report_time')
  • 释义
    • 获取财务数据
  • 参数
    • stock_list – list 合约代码列表
    • table_list – list 财务数据表名称列表

    ‘Balance’ #资产负债表
    ‘Income’ #利润表
    ‘CashFlow’ #现金流量表
    ‘Capital’ #股本表
    ‘Holdernum’ #股东数
    ‘Top10holder’ #十大股东
    ‘Top10flowholder’ #十大流通股东
    ‘Pershareindex’ #每股指标

    • start_time – string 起始时间
    • end_time – string 结束时间
    • report_type – string 报表筛选方式

    ‘report_time’ #截止日期
    ‘announce_time’ #披露日期

  • 返回
    • dict 数据集 { stock1 : datas1, stock2 : data2, … }
    • stock1, stock2, … :合约代码
    • datas1, datas2, … :dict 数据集 { table1 : table_data1, table2 : table_data2, … }
    • table1, table2, … :财务数据表名
    • table_data1, table_data2, … :pd.DataFrame 数据集,数据字段详见附录 – 财务数据字段列表
  • 备注

3.2 下载财务数据

download_financial_data(stock_list, table_list=[])
  • 释义
    • 下载财务数据
  • 参数
    • stock_list – list 合约代码列表
    • table_list – list 财务数据表名列表
  • 返回
  • 备注
    • 同步执行,补充数据完成后返回
download_financial_data2(stock_list, table_list=[], start_time='', end_time='', callback=None)
  • 释义
    • 下载财务数据
  • 参数

    • stock_list – list 合约代码列表
    • table_list – list 财务数据表名列表
    • start_time – string 起始时间
    • end_time – string 结束时间

    • 以m_anntime披露日期字段,按[start_time, end_time]范围筛选

    • callback – func 回调函数

    • 参数为进度信息dict

      • total – 总下载个数
      • finished – 已完成个数
      • stockcode – 本地下载完成的合约代码
      • message – 本次信息
  • 返回
  • 备注
    • 同步执行,补充数据完成后返回

开通miniQMT

如果你还没有开通miniQMT,可以点击此处开通,低费率、低门槛,欢迎咨询。

开发日志

我正在紧锣密鼓地开发系统,完善功能,点击此处了解最新进展。

风险提示

投资有风险,开户需谨慎。本系统仅为投资者提供量化交易相关的数据处理与分析工具,不构成任何投资建议。 请您在审慎思考后作出选择。特别声明:本系统对您与券商之间的交易、合作不承担任何法律责任。 市场有风险,投资需谨慎。

© 2024 看海量化交易系统 版权所有

官网:www.khsci.com/khQuant