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

JoinQuant 财务数据 API 对比:get_fundamentals_continuously 与 get_history_fundamentals 有什么区别?

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

问题描述

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

Title: joinquant 财务数据 API 对比:get_fundamentals_continuously 与 get_history_fundamentals 的区别

Question: joinquant 中 get_fundamentals_continuously 和 get_history_fundamentals 有什么区别?

解决方案

JoinQuant 财务数据 API 对比:get_fundamentals_continuously 与 get_history_fundamentals 的区别

在 JoinQuant(聚宽)量化交易平台中,获取财务数据是多因子选股和基本面分析的核心步骤。聚宽提供了多个财务查询函数,其中 get_fundamentals_continuouslyget_history_fundamentals 都用于获取多期/多日历史财务数据,但两者的设计定位、维度切入点以及参数特性存在显著区别。


1. 核心区别对比概览

特性 / API get_fundamentals_continuously get_history_fundamentals
核心定位 交易日维度连续获取最新可看财务数据与估值表数据 按**财报报告期(季度/年度)**维度获取三大财务报表历史数据
估值表 (valuation) 支持(包含市盈率、市值、换手率等每日更新数据) 不支持
时间维度 交易日维度(按日向前推 count 个交易日) 报告期维度(按 1q 季度或 1y 年度推算)
基准设置 依赖 end_date 交易日 可通过观察日 watch_date 或统计截止期 stat_date 灵活控制
数据限制 标的数量 × count ≤ 5000 条 单次查询最多返回 5000 条数据
典型适用场景 计算连续交易日的每日市值、PE动态变化及截面因子 计算多季度财报同比/环比增长率(如 TTM 数据、连续4季营收)

2. 详细特性解析

(1) get_fundamentals_continuously

  • 维度:以交易日为核心。例如设置 count=5,返回的是从指定日期倒推 5 个交易日中,每天收盘后能看到的最新财务/估值快照。
  • 优势:包含 valuation(市值表)数据,非常适合需要每日更新市值、PE、PB 以及结合截面数据的策略。
  • 数据格式:返回 pandas.Panel(建议设置 panel=False 获取 DataFrame)。

(2) get_history_fundamentals

  • 维度:以财报报告期(如 2021q1, 2021q2, 2020 年报等)为核心。
  • 优势:支持指定报告期间隔 interval(如 '1q''1y'),能直接按季度/年度拉取连续多个财报期的数据,完美无未来函数地计算 TTM 或同比环比指标。
  • 限制:明确不支持 valuation(市值表)。

3. Python 代码示例

示例 1:使用 get_fundamentals_continuously 查询连续 5 个交易日的市值与换手率

from jqdata import *

# 查询连续 5 个交易日的估值数据
q = query(
    valuation.code,
    valuation.market_cap,
    valuation.pe_ratio
).filter(
    valuation.code.in_(['000001.XSHE', '600000.XSHG'])
)

# 获取截至 2023-01-01 前 5 个交易日的数据
df = get_fundamentals_continuously(q, end_date='2023-01-01', count=5, panel=False)
print(df.head())

示例 2:使用 get_history_fundamentals 查询连续 4 个季度的营业收入与净利润

from jqdata import *

securities = ['000001.XSHE', '600000.XSHG']
# 查询指定财报报告期的连续 4 个单季度数据
df_history = get_history_fundamentals(
    security=securities,
    fields=[income.total_operating_revenue, income.net_profit],
    stat_date='2022q4',
    count=4,
    interval='1q',
    stat_by_year=False
)

print(df_history.head())

4. 总结与选型建议

  • 如果你需要获取每日更新的指标(如市值、PE、PB、换手率),或者想看每日截面上的财务数据变化,请选择 get_fundamentals_continuously
  • 如果你需要计算财报维度的指标(如连续 4 季度的利润求和算 TTM、财报同比增长率),请选择 get_history_fundamentals