3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT 平台中调用 ContextInfo.get_financial_data 获取财务数据时返回全 NaN,通常是由查询时间范围与财报发布机制不匹配或参数设置不当引起的。即使已经下载了财务数据,也需要注意以下几个关键点:
report_type 参数与时间范围不匹配get_financial_data 函数有一个可选参数 report_type,它的默认值是 'announce_time'(按公告日取数)。
announce_time):只有在您设定的时间范围(20240801 到 20241120)内,该股票刚好发布了财报公告,才能取到数据。如果该股票在 8 月 1 日前发布了中报,且在 11 月 20 日后才发布三季报(或者三季报发布日刚好没被包含),那么在这个区间内就没有公告记录,从而返回全 NaN。report_time):按财报的截止日期取数(如一季报 0331,中报 0630,三季报 0930,年报 1231)。report_type 改为 'report_time' 并对齐财报日期如果您想获取特定季度的财务数据,建议按报告期查询,并将时间范围包含标准的财报截止日(例如 2024 年三季报截止日为 20240930)。
def handlebar(ContextInfo):
# 扩大时间范围,并指定 report_type='report_time'
data = ContextInfo.get_financial_data(
fieldList=['ASHAREBALANCESHEET.fix_assets'],
stockList=['300679.SZ'],
startDate='20240630', # 包含中报
endDate='20240930', # 包含三季报
report_type='report_time'
)
print(data)
如果您坚持使用默认的 'announce_time',请将时间范围扩大,确保涵盖了该股票发布财报的实际日期(例如扩大到过去一年)。
def handlebar(ContextInfo):
# 扩大时间范围以确保捕获到公告日
data = ContextInfo.get_financial_data(
fieldList=['ASHAREBALANCESHEET.fix_assets'],
stockList=['300679.SZ'],
startDate='20230101',
endDate='20241120'
)
print(data)
CAPITALSTRUCTURE.total_capital 总股本)来交叉验证是否是单字段缺失的问题。NaN 值。