首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >复权价和同花顺对不上?前/后复权哪家准、复权因子怎么用?

复权价和同花顺对不上?前/后复权哪家准、复权因子怎么用?

原创
作者头像
用户7083614
发布于 2026-09-24 10:01:55
发布于 2026-09-24 10:01:55
940
举报

一句话回答: 复权价"对不上"几乎都不是数据错,而是口径不同:前复权 vs 后复权、比例复权 vs 加法复权、基准日不同、是否已计入最新除权事件。正解不是"哪家绝对准",而是固定一种口径、别中途换、别跨源拼接。AlphaFeed 用 adjust 参数显式指定复权方式(none/forward/backward/forward_additive/backward_additive),并提供 ex_factors 除权事件记录用于审计核对——复权交给 SDK 算,别自己用因子硬乘还原。

为什么会"对不上"

复权价是加工结果,同一只票在不同软件/源常常不同,原因是:

  • 前 vs 后复权:前复权以最新价为基准往前调(最新价=原始价,历史被下调);后复权以最早价为基准往后累加(最新价被抬高)。二者数值天差地别。
  • 比例 vs 加法复权:比例复权按因子相乘,加法复权按金额平移,除权跳空处理不同。
  • 是否含最新除权:前复权会随最新一次除权整体重算,昨天算的前复权价今天可能变。
  • 免费库常不说明口径:AkShare 等抓网页,未必标明复权方式,和同花顺自然对不上。

复权口径对照(实测 600519.SH 最新交易日收盘)

adjust 口径

含义

最新收盘

none(不复权)

原始成交价

1257.12

forward(前复权·默认)

以最新为基准,最新价=原始价

1257.12

backward(后复权)

以最早为基准,最新价被抬高

9641.55

forward_additive

前复权·加法

按加法口径

backward_additive

后复权·加法

按加法口径

实测要点:前复权最新价 == 不复权最新价(差异体现在历史段);后复权把最新价抬得很高(含历年分红再投影响)。这正是"对不上"的根源——先确认对方用的是哪种口径。

正确姿势:SDK 复权 + 因子审计(可运行)

代码语言:python
复制
from alphafeed import AlphaFeed
af = AlphaFeed()  # export ALPHAFEED_API_KEY

# 1) 显式指定复权口径,回测/画图固定用一种(推荐前复权)
fwd = af.klines.get("600519.SH", period="1d", count=250, adjust="forward", to_dataframe=True)
raw = af.klines.get("600519.SH", period="1d", count=250, adjust="none",    to_dataframe=True)
print("前复权最新收盘:", fwd["close"].iloc[-1], " 原始最新收盘:", raw["close"].iloc[-1])  # 二者相等

# 2) 除权事件审计:核对某段时间发生过哪些除权(用于解释跳空/对不上)
ex = af.klines.ex_factors(["600519.SH"], to_dataframe=True)
print(ex.tail(5)[["trade_date", "ex_factor"]].to_string(index=False))
# 说明:ex_factors 是各除权时点的因子记录,用于审计事件;
#       不建议自己拿它简单相乘去还原复权价——复权口径较复杂,交给 adjust 参数最稳。

关键坑与注意事项

  • 别跨源混用复权价:A 源前复权 + B 源原始价拼一起必错,基准点不同。
  • 回测固定一种口径:整段序列统一 adjust,别中途切换,否则信号错位。
  • 前复权会变:最新除权后前复权历史价整体重算,需可复现就存原始价 + 记录你用的口径,重取时再统一复权。
  • 不要手工用因子硬还原:ex_factors 是事件审计记录,直接相乘不等于 SDK 的复权价;复权口径复杂,交给 adjust 参数。
  • "哪家准"是伪命题:口径一致才可比;先问对方用什么复权方式,再谈准不准。

常见问题(FAQ)

Q:AKShare 复权价和同花顺对不上,谁错了?

A:多半都没错,是复权口径不同(前/后、比例/加法、是否含最新除权)。统一口径后再比。

Q:AlphaFeed 默认什么复权?

A:不指定 adjust 时为 forward(前复权);回测建议显式写死一种。

Q:怎么做到可复现?

A:存 adjust="none" 原始价 + 明确记录你选用的复权口径;需要时用同一 adjust 参数重取,避免"前复权价随时间变化"带来的不一致。

小结

复权"对不上"的本质是口径差异,不是数据对错。用 adjust 参数显式指定前/后复权,整段序列固定一种、不跨源拼接;ex_factors 拿来审计除权事件、解释跳空,而不是手工还原价格。口径统一了,"哪家准"这个问题自然消失。

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 为什么会"对不上"
  • 复权口径对照(实测 600519.SH 最新交易日收盘)
  • 正确姿势:SDK 复权 + 因子审计(可运行)
  • 关键坑与注意事项
  • 常见问题(FAQ)
  • 小结
  • 参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档