带你详细了解miniQMT的xtdata模块 (第三篇)xtdata财务数据下载

QUANT 2025-12-16 22:30:33 10 举报

书接上回~与历史行情类似,财务数据下载也可以分为简单下载和批量下载两个方式


1. download_financial_data:简单财务数据下载
适用于下载少量股票的指定财务报表

函数原型

download_financial_data(stock_list, table_list=[])


实战演练:下载“贵州茅台”和“宁德时代”的利润表和资产负债表

from xtquant import xtdata

client = xtdata.get_client()

stock_list = ["600519.SH", "300750.SZ"]
table_list = ["Income", "Balance"]

print(f"开始下载 {stock_list} 的 {table_list} 数据...")
xtdata.download_financial_data(stock_list, table_list)
print("财务数据下载完成!")

# 下载完成后可以获取财务数据
financial_data = xtdata.get_financial_data(stock_list, table_list)
print("获取到的财务数据:")
for stock in stock_list:
    print(f"\\n{stock} 的财务数据:")
    for table in table_list:
        print(f"{table} 表:")
        print(financial_data[stock][table].head())


2. download_financial_data2:高级财务数据下载
这个版本功能更强,允许根据财报披露日期进行筛选,并同样支持进度回调

函数原型

download_financial_data2(stock_list, table_list=[], start_time, end_time, callback=None)


实战演练:下载2023年发布过财报的所有A股公司的三张报表

from xtquant import xtdata

# 下载000001.SZ 2023年的三张财务报表
stock_list = ["000001.SZ"]
table_list = ["Income", "Balance", "CashFlow"]  # 利润表、资产负债表、现金流量表

print(f"开始下载 {stock_list} 的财务报表数据...")
xtdata.download_financial_data(stock_list, table_list)
print("财务数据下载完成!")

# 获取财务数据
financial_data = xtdata.get_financial_data(stock_list, table_list, "20230101", "20231231")
print("获取到的财务数据:")

for stock in stock_list:
    print(f"\n{stock} 2023年财务报表:")
    for table in table_list:
        print(f"\n{table} 表:")
        print(financial_data[stock][table])


总结与最佳实践

1.优先使用批量版本:对于任何超过10只股票的下载任务,推荐优先使用 download_history_data2 和 download_financial_data2,并通过 callback 监控
2.理解同步与回调:xtdata的下载指令是阻塞式的,但 callback 能让你在等待过程中获得反馈。这对于长时间运行的下载任务至关重要
3. 数据存储位置:所有下载的数据默认存储在MiniQMT客户端的 userdata_mini/datadir 目录下。我们可以通过 get_local_data 来读取


QMT/miniQMT免费申请

QMT免费领取学习案例

QMT落地辅助策略代写服务

需要的朋友欢迎联系  ~~~


尊重知识,尊重市场 1

著作权归文章作者所有。

最新回复 ( 0 )
发新帖
0
DEPRECATED: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated (/data/user/htdocs/xiunophp/xiunophp.min.php:48)