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

聚宽(JoinQuant)财务数据与第三方平台不一致的原因解析

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

问题描述

用财务指标筛选出来的股票和别处不一样

在一创聚宽回测时,用营业收入增长率、净利润增长率等指标筛选出来几只股票,我到东方财富和通达信里查询了一下,发现营业利润增长率、净利润增长率跟他们的数据明显不一样,根本不在我设定的选股条件内。
然后我又到一创果仁和东方财富用同样的筛选条件,选出来的股票竟然不一样。
聚宽的财务数据为什么跟别处不一样?我应该相信哪个数据?

解决方案

您好!在量化回测中发现聚宽(JoinQuant)的财务数据与东方财富、通达信等传统炒股软件不一致,是一个非常常见且正常的现象。这并不是因为某个平台的数据“错误”,而是由于**数据统计口径、计算方式以及量化回测的特殊要求(如避免未来函数)**导致的。

根据聚宽官方文档的说明,主要有以下几个核心原因,您可以逐一核对:

1. 单季度数据 vs 报告期(累计)数据(最常见原因)

  • 传统软件(如东方财富、通达信):默认展示的通常是报告期(累计)数据。例如,三季报的营业收入是指“1月到9月的累计营业收入”。
  • 聚宽(JoinQuant):考虑到量化分析的需要,聚宽默认提供的财务指标(如 operating_revenue_growth_rate 营业收入增长率、net_profit_growth_rate 净利润增长率)通常是单季度数据。例如,三季报的单季度数据仅指“7月到9月这三个月的营业收入”。
  • 核对方法:如果您在同花顺或东方财富中核对,请尝试将它们的财务数据视图切换为**“按单季度统计”**,通常就能对上聚宽的数据了。

2. 避免“未来函数”的严格限制

  • 传统软件:您现在去东方财富选股,使用的是当前最新的静态数据。
  • 聚宽回测:在回测时,聚宽严格遵守时间轴。例如,您回测的时间点是 2023年3月15日,虽然现在我们知道某公司2022年的年报数据,但在当时,该公司可能要到 2023年4月才发布年报。因此,聚宽在 3月15日 只能取到该公司 2022年三季报的数据。这种时间错位会导致您在回测中选出的股票,与您现在用最新数据选出的股票完全不同。

3. TTM(滚动十二个月)数据的差异

很多财务指标在量化中会使用 TTM(Trailing Twelve Months)来平滑季节性波动。例如 operating_revenue_ttm。不同平台在计算 TTM 时,对于缺失值、调整项的处理可能存在微小差异。

4. 算法与数据源的微小差异

对于一些衍生指标(如市盈率 PE、市净率 PB、市销率 PS 等),不同平台的计算公式可能不同:

  • 比如 PE,是用总市值除以归母净利润,还是扣非净利润?
  • 总股本是取当天的实际股本,还是财报发布日的股本?
    这些算法差异会导致最终的指标数值有所不同。

我应该相信哪个数据?

两者都是正确的,只是应用场景不同。

  1. 如果您在做量化回测必须相信并使用聚宽的数据。因为聚宽的数据结构(单季度切片、严格的发布日期时间戳)是专门为量化回测设计的,能够真实还原历史某一时刻您能看到的真实数据,从而避免“未来函数”导致回测结果虚高。
  2. 如果您在做手工主观选股:可以使用东方财富或通达信的报告期数据,因为主观交易通常更看重累计的绝对业绩。

建议的排查步骤:
如果您想在聚宽中获取与东方财富一致的“报告期”数据,可以在调用 get_fundamentals 时,使用 statDate 参数(例如 statDate='2022q3')来明确指定获取某一季度的累计财报数据,而不是使用 date 参数获取单季度切片数据。但请注意,使用 statDate 时要自行控制好财报发布时间,以免引入未来函数。