聚宽中查询的ROE结果为什么和通达信的数据相差巨大呢?
聚宽中查询的ROE结果为什么和通达信的数据相差巨大呢?比如:
聚宽中:000585.XSHE ROE= 562.89
在通达信中查询:加权净资产收益率-53.94%,聚宽中是正的五百多,结果通达信中是负的,为什么相差这么远呢?
应该信哪个?
请教各位高手了,谢谢!
问题描述
解决方案
您好!聚宽(JoinQuant)与通达信在ROE(净资产收益率)等财务数据上出现巨大差异,通常是由计算周期(TTM与报告期)以及极端财务状况(如负净资产)的处理逻辑不同所导致的。具体原因如下:
1. 极端财务状况(负净资产)的数学异常
您提到的 000585.XSHE(东北电气)在某些财报周期内存在严重的财务亏损,导致其净利润为负且净资产也为负。
- 聚宽的计算逻辑:聚宽的基础财务指标通常采用标准的数学公式直接计算。当
净利润 < 0且净资产 < 0时,负负得正,数学上计算出的 ROE 就会变成一个巨大的正数(如 562.89%)。 - 通达信的计算逻辑:通达信的“加权净资产收益率”通常会根据证监会或会计准则的规定进行平滑和特殊处理。对于亏损且资不抵债的公司,通达信会修正这种“负负得正”的数学谬误,直接反映其真实的亏损状态(如 -53.94%)。
2. 统计周期不同(TTM vs 单季度/年报)
根据聚宽官方 API 文档的 FAQ 说明:
- 聚宽(JoinQuant):为了量化回测避免未来函数并平滑季节性波动,聚宽默认提供的财务指标(如
roe_ttm)通常是 TTM(Trailing Twelve Months,滚动过去12个月) 数据。即:权益回报率TTM = 净利润(TTM) / 期末股东权益。 - 通达信等行情软件:通常显示的是最新报告期(如一季报、中报、年报)的静态数据或年化数据,且您提到的是“加权净资产收益率”,其分母使用的是加权平均净资产,而非期末静态净资产。
3. 应该信哪个?如何在量化中处理?
两者在各自的公式定义下都是“正确”的,但通达信的数据在经济学意义上更真实,而聚宽的数据是未经人工干预的原始数学计算结果。
在量化交易编写策略时,建议采取以下应对措施:
- 数据清洗:在选股时,务必过滤掉净资产为负(资不抵债)或 ST/退市边缘的股票。例如,在
get_fundamentals查询时,增加balance.total_owner_equities > 0(股东权益大于0)的过滤条件。 - 结合多指标判断:不要单一依赖 ROE。如果一家公司 ROE 极高,但净利润(
net_profit)为负,这显然是异常数据,策略中应将其剔除。 - 使用聚宽的因子库:聚宽的
jqfactor因子库中对部分基础因子进行了去极值、标准化等处理,直接使用因子库数据(如roe_ttm因子)并在策略中配合winsorize(去极值)函数,可以有效避免此类极端异常值对策略的干扰。