🚀 AI 一键生成 joinquant 策略代码
立即体验

聚宽 JoinQuant 财务数据教程:如何高效获取连续多个季度的三大报表数据?

joinquant | 发布时间: 2026/7/21
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: joinquant 财务数据教程:如何获取连续多个季度的三大报表数据?

Question: 我想获取某只股票过去 5 个季度的营业收入和净利润,用哪个聚宽接口最方便?

解决方案

在聚宽(JoinQuant)平台中,要获取单只或多只股票连续多个季度的财务数据(如营业收入、净利润等三大报表科目),最方便、最推荐的接口是 get_history_fundamentals

相比于传统的 get_fundamentals(通常需要手动循环或传入不同 statDate),get_history_fundamentals 专为查询历史多个报告期的数据而设计,能够一次性返回结构化的时间序列数据,极大地提高了数据获取效率并避免了未来函数。


一、 核心接口介绍:get_history_fundamentals

1. 接口定义

get_history_fundamentals(security, fields, watch_date=None, stat_date=None, count=1, interval='1q', stat_by_year=False)

2. 关键参数解析(针对您的需求)

  • security: 股票代码或列表,例如 '000001.XSHE'
  • fields: 财务数据科目的列表。营业收入属于利润表(income.total_operating_revenueincome.operating_revenue),净利润属于利润表(income.net_profit)。
  • stat_date: 统计截止日期,例如 '2023q4'。与 watch_date 二选一。
  • count: 查询历史报告期的数量。获取过去 5 个季度,则设置 count=5
  • interval: 报告期间隔,'1q' 表示按季度间隔。
  • stat_by_year: 是否返回年度数据。获取季度数据应设为 False

二、 完整 Python 代码示例

以下代码展示了如何在 JoinQuant 策略或研究环境中,获取平安银行(000001.XSHE)过去 5 个季度的营业收入和净利润:

# 导入聚宽函数库
from jqdata import *

def get_quarterly_financials():
    # 1. 定义要查询的股票
    security = '000001.XSHE'
    
    # 2. 定义要查询的财务字段(营业收入和净利润)
    # income.operating_revenue: 营业收入
    # income.net_profit: 净利润
    fields = [
        income.statDate, # 报表统计季度
        income.operating_revenue, 
        income.net_profit
    ]
    
    # 3. 调用 get_history_fundamentals 接口
    # 获取截止到 2023q4 往前连续 5 个季度的数据
    df = get_history_fundamentals(
        security=security,
        fields=fields,
        stat_date='2023q4',
        count=5,
        interval='1q',
        stat_by_year=False
    )
    
    # 4. 打印输出结果
    print("平安银行过去 5 季度财务数据:")
    print(df)

# 运行函数
get_quarterly_financials()

三、 返回数据格式示例

执行上述代码后,您将获得一个 pandas.DataFrame,每一行代表该股票的一个报告期,数据结构清晰,非常便于后续的量化分析与计算:

code statDate operating_revenue net_profit
000001.XSHE 2022q4 41,400,000,000 10,500,000,000
000001.XSHE 2023q1 45,098,000,000 14,602,000,000
000001.XSHE 2023q2 43,510,000,000 10,785,000,000
000001.XSHE 2023q3 42,020,000,000 14,248,000,000
000001.XSHE 2023q4 39,850,000,000 10,450,000,000

(注:表中数值仅为格式演示,实际数值以聚宽数据库返回为准)


四、 避坑指南与注意事项

  1. 避免未来函数:在回测或模拟交易中,建议使用 watch_date 参数(传入 context.current_dtcontext.previous_date),而不是 stat_date。因为 watch_date 会严格根据历史实际发布日期过滤数据,确保回测时不会拿到尚未公布的未来财报。
  2. 单次返回限制get_history_fundamentals 每次调用最多返回 5000 条 数据。如果需要获取大量股票的多季度数据,建议分批次(按股票池分批或按时间分批)获取。
  3. 不支持市值表:该接口不支持 valuation(市值表)的查询。如需获取市值、PE、PB 等每日更新的数据,请使用 get_valuation 接口。