Skip to content

Fuyao的复权数据不正确,或者Fuyao有自己的复权公式? #76

Description

@pcman-zhang

复权数据对账调查报告:Fuyao vs Tushare(600519.SH)

日期:2026-09-13 | 结论:Fuyao 预计算复权序列(forward/backward)不符合标准复权语义,不可作为复权对账基准。

1. 标的

  • 600519.SH(贵州茅台),单标的验证
  • 期间含 5 次现金分红,无送股/配股(per_share_bonus=0)
  • 对照源:
    • Tushare:daily(原始价)+ adj_factor(复权因子)
    • Fuyao:/api/a-share/prices/historical(adjust=none|forward|backward)+ /api/a-share/corporate-actions/adjustment-factors(公司行为事件)

2. 数据范围

  • 区间:2024-01-01 ~ 2026-09-11
  • 交易日:654 天(两源行数一致)
  • 除权除息日:2024-06-19、2024-12-20、2025-06-26、2025-12-19、2026-06-26
  • 时区 Asia/Shanghai;复权锚点:前复权锚定最新交易日(2026-09-11)

3. 计算公式与结果

3.1 计算公式

  • Tushare 后复权:hfq_t = close_t × adj_factor_t
  • Fuyao 隐含因子:f_fy_t = bwd_t / raw_t
  • 归一化因子:f_norm_t = f_t / f_last
  • 两源一致性检验:ratio_t = f_fy_norm_t / f_ts_norm_t(标准语义下应为常数)
  • 事件理论乘数:m = P_prev × (1 + B) / (P_prev − D)(D=每股分红,B=每股送股比例,P_prev=除权前收盘)
  • 事件实测乘数:m = (X_after / X_before) / (raw_after / raw_before)

3.2 结果

A. 原始价一致性:Tushare 与 Fuyao adjust=none 收盘价 最大差 = 0.0(654 天完全一致)。

B. 事件乘数对照(5 次分红):

除权日 D(每股分红) B P_prev 理论 m Tushare m Fuyao 隐含 m Fuyao 偏差
2024-06-19 30.876 0 1521.50 1.020713 1.020616 1.019817 -0.09%
2024-12-20 23.882 0 1551.01 1.015639 1.015636 1.016105 +0.05%
2025-06-26 27.673 0 1435.86 1.019652 1.019594 1.018293 -0.13%
2025-12-19 23.957 0 1431.00 1.017026 1.017026 1.016659 -0.04%
2026-06-26 28.024 0 1212.10 1.023668 1.023667 1.026550 +0.28%
  • Tushare 与理论一致(仅 4 位小数舍入差);Fuyao 事件乘数偏差 -0.13% ~ +0.28%。

C. 整体因子对账:

检验 结果
bwd / (raw × adj_factor) mean=0.803595,std=0.00715,min=0.788816,max=0.829398,最大相对偏差 26.77%
归一化因子比 f_fy_norm / f_ts_norm mean=0.986630,std=0.00877,min=0.968485,max=1.018310(非常数)

D. 日收益回归(标准复权仅在除权日出现跳跃,斜率应 ≈ 1.0):

序列 回归式 相关系数
Fuyao backward bwd_ret = 0.8439 × raw_ret + 0.000103 R²=0.986
Fuyao forward fwd_ret = 1.0399 × raw_ret corr=0.993

→ backward 日收益被系统性衰减至 84.4%;forward 被放大约 4%。

E. 隐含因子异常波动(非除权日不应变化):

  • backward:159 天 |Δf| > 0.2%(其中仅 5 天为除权日)
  • forward:31 天 |Δf| > 0.2%(其中 26 天为非除权日)
  • corr(Δf_fy, raw_ret) = -0.9801(隐含因子随当日涨跌反向变动)

典型非事件日样本:

日期 raw raw 日涨跌 Δf_fy
2026-01-29 1437.72 +8.61% -1.44%
2024-09-24 1372.60 +8.80% -1.19%
2026-07-20 1327.50 +5.95% -1.14%
2024-09-26 1529.00 +9.29% -1.14%
2024-10-09 1595.15 -7.42% +0.90%

F. 同日 OHLC 的 bwd/raw 比值(标准语义下同一日各字段应相同):

日期 open high low close raw close/open bwd close/open
2024-09-24 6.577933 6.517096 6.592954 6.517355 1.068096 1.058260
2026-06-26 7.132126 7.132126 7.171921 7.171221 0.974671 0.980013
2026-09-11 7.031281 7.030190 7.055884 7.042277 0.992227 0.993778

→ 复权后序列的 OHLC 内部比例被改变(如 close/open 从 1.068096 变为 1.058260)。

G. 均价(VWAP)假设检验:corr(residual, Tushare vwap/close) = 0.0554 → 以 Tushare VWAP 解释不成立(不排除 Fuyao 使用其自有均价口径)。

4. 可能的问题

  1. 复权序列非「原始价 × 统一因子」:同日 OHLC 比值不一致、内部比例被改变 → 复权价来自不同价格基准或不同计算路径(最可能的根因)。
  2. 收益率系统性畸变:backward 日收益衰减至 0.844×、forward 放大至 1.04× → 用于回测/统计会产生严重偏差。
  3. 非除权日因子波动:backward 159 天、forward 31 天 → 排除单纯舍入误差。
  4. 数据源/快照不一致:复权序列与原始序列可能来自不同上游数据。
  5. 厂商语义待确认:需 Fuyao 明确 forward/backward 的定义(价格基准、公式、锚点、是否基于均价)。
  6. 已排除:原始价两源完全一致;事件分红数值合理;Tushare adj_factor 与理论乘数一致(对照基准可信)。

5. 影响与建议

  • 平台复权口径:原始价 + 因子(Tushare 已验证);Fuyao 预计算复权价禁止用于对账/入库,仅可单源展示并加显著标注。
  • Fuyao 事件流:可作为因子推导输入,但必须逐事件与 Tushare 对账后使用。
  • 厂商反馈:建议向 Fuyao 提交本报告证据(同日 OHLC 比值不一致、日收益斜率 0.844/1.04),要求说明复权口径并修复。
  • Hub 适配器:Fuyao adjust=qfq/hfq 输出加文档告警(或后续禁用),默认推荐 adjust=None。
  • 复现方式:按本报告 §2/§3 使用 Tushare daily+adj_factor 与 Fuyao REST(historical + corporate-actions)即可复现,不含任何凭证。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions