一句话回答: 多数「对不上」其实是复权口径问题,不是数据错。实测:quotes.get 的 last_price 与 klines.get(adjust="none"/"forward") 的最新 close 完全一致(600519.SH 都是 1453.0、000001.SZ 都是 11.81);但 adjust="backward"(后复权)的最新 close 会被放大(11143.86 / 1299.02)——因为后复权以最早价为基准向上缩放。所以:要和实时价对齐,用 none 或 forward;backward 只用于回测、不要拿它的价和实时价比。另一类差异是盘中:K 线当日最后一根还在形成,和每几秒刷新的实时快照自然有细微差。诚实边界:实时为约 3 秒快照;跨源价格对不上是另一回事(口径/延迟不同)。
quotes.get(...)[0]["last_price"]:实时快照的最新成交价(约 3 秒刷新),是原始价口径。klines.get(..., adjust=X) 的最新 close:最近一根 K 线的收盘价,数值取决于 adjust。它们对不对得上,关键看 adjust。
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key")
for s in ["600519.SH", "000001.SZ"]:
q = af.quotes.get(symbols=s)[0]["last_price"]
none = af.klines.get(s, period="1d", count=1, adjust="none", to_dataframe=True)["close"].iloc[-1]
fwd = af.klines.get(s, period="1d", count=1, adjust="forward", to_dataframe=True)["close"].iloc[-1]
bwd = af.klines.get(s, period="1d", count=1, adjust="backward", to_dataframe=True)["close"].iloc[-1]
print(s, q, none, fwd, round(float(bwd), 2))标的 | quotes | kline | kline | kline |
|---|---|---|---|---|
600519.SH | 1453.0 | 1453.0 | 1453.0 | 11143.86 |
000001.SZ | 11.81 | 11.81 | 11.81 | 1299.02 |
结论:
none/forward的最新价 = 实时价;backward被放大(以最早价为基准缩放历史→最新端放大),数值大是正常的,不是错。
现象 | 原因 | 怎么办 |
|---|---|---|
backward 收盘远大于实时价 | 后复权以最早价为基准放大 | 正常;回测用 backward,比价用 none/forward |
盘中实时价 ≠ 当日 K 线收盘 | 当日 K 线还在形成、实时约 3s 刷新 | 盘中用 quotes 看最新,收盘后再看日线 close |
和同花顺/其他源对不上 | 跨源复权因子/延迟不同 | 以单源自洽为准,别逐厘对齐 |
quotes 的 last_price。klines 用 none 或 forward。klines 用 backward(但别拿它的绝对价和实时比)。Q:为什么后复权收盘价上万,和现价差这么多?
A:后复权以最早价为基准、把后续价格按累计复权因子放大,所以最新端数值很大。正常现象,用于回测;比价请用 none/forward。
Q:实时价和日线收盘到底该信哪个?
A:盘中看「此刻成交价」用 quotes;收盘后的「当日收盘」看日线 close(none/forward 与收盘实时价一致)。
Q:forward 既然等于实时价,回测为什么不用它?
A:forward 最新价对齐现价,但它的历史会随新除权被重写(未来函数风险),不可复现;回测用 backward。
Q:需要付费吗?
A:实时与历史均有免费额度可体验,详见官网定价页。
quotes 的 last_price 和 klines 的最新 close 对不上,99% 是复权口径:none/forward 与实时价一致,backward 被放大(回测用)。记住「比价用 none/forward、回测用 backward、盘中用 quotes」,同一分析不混口径,就不会再被"价格对不上"困惑。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。