3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在聚宽(JoinQuant)平台进行基本面量化选股和财报分析时,默认获取的往往是单季度财务数据。如果希望获取连续多年的**年度财务报表(年报)**数据,需要使用 get_history_fundamentals 函数,并正确配置 stat_by_year 参数。
要提取多年的年度数据而非单季度数据,关键参数配置如下:
stat_by_year=True:设置为 True,表示返回年度统计数据(如年报)。interval='1y':当 stat_by_year=True 时,interval 必须 设置为 '1y',表示按年间隔采样。stat_date:指定基准报告期年份,格式为 'YYYY'(如 '2022'),不能带季度标识(如不要写 '2022q4')。count:获取的历史年度报告期数量。例如 count=5 表示获取连续 5 年的年报。以下示例演示如何获取平安银行(000001.XSHE)和浦发银行(600000.XSHG)连续 4 年(2018-2021 年)的年度营业收入、净利润及资产负债数据:
from jqdata import *
# 1. 定义需要查询的股票池
securities = ['000001.XSHE', '600000.XSHG']
# 2. 定义需要查询的财务字段(支持 balance, income, cash_flow, indicator 等表)
fields = [
income.statDate,
income.total_operating_revenue, # 营业总收入
income.net_profit, # 净利润
balance.total_assets # 资产总计
]
# 3. 获取连续4年的年度财务数据
df_yearly = get_history_fundamentals(
security=securities,
fields=fields,
stat_date='2021', # 基准截止年份
count=4, # 获取连续4年(即 2018, 2019, 2020, 2021)
interval='1y', # 间隔为 1 年
stat_by_year=True # 开启按年度统计模式
)
print(df_yearly)
| 特性 | 年度数据 (stat_by_year=True) |
单季度数据 (stat_by_year=False) |
|---|---|---|
采样间隔 (interval) |
必须为 '1y' |
可选择 '1q' 或 '1y' |
统计时间格式 (stat_date) |
年份字符串,如 '2021' |
季度字符串,如 '2021q4' |
| 适用数据表 | balance, income, cash_flow, indicator, bank_indicator 等 |
balance, income, cash_flow, indicator |
| 数据属性 | 展现整年度累计或期末值(如全年总营收) | 仅展现对应单季度的数值 |
get_history_fundamentals 不支持 valuation 市值表的数据查询。如果需要获取历史市值或估值指标,请使用 get_valuation API。stat_date,可改用 watch_date 参数指定观察日期,系统会自动返回在 watch_date 之前已披露的历史最新财报数据,有效避免未来函数。