首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >quotes 实时价和 klines 最新收盘价为什么对不上?

quotes 实时价和 klines 最新收盘价为什么对不上?

原创
作者头像
用户7083614
发布于 2026-11-14 15:00:46
发布于 2026-11-14 15:00:46
100
举报

一句话回答: 多数「对不上」其实是复权口径问题,不是数据错。实测: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。

实测对照(关键)

代码语言:python
复制
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 last_price

kline none

kline forward

kline backward

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(但别拿它的绝对价和实时比)。

关键坑与注意事项

  • 别拿 backward 的价和实时价比:口径不同,差几倍是设计使然,不是 bug。
  • 同一分析固定一种 adjust:比价/展示用 none/forward,回测用 backward,不要混。
  • 盘中以 quotes 为准:当日 K 线未收盘,close 会随盘变化;实时最新价看 quotes。
  • forward 的历史会随新除权变动:虽然 forward 最新价=实时价,但它的历史段不可复现(复权未来函数),回测仍用 backward。
  • 跨源对不上另当别论:那是不同数据源的口径/延迟差异,不在本文(单源内一致性才是本文重点)。

常见问题(FAQ)

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 删除。

目录
  • 两个"最新价"分别是什么
  • 实测对照(关键)
  • 为什么会「对不上」——三种情形
  • 该用哪个"最新价"
  • 关键坑与注意事项
  • 常见问题(FAQ)
  • 小结
  • 参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档