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

一句话回答: 多数「对不上」其实是复权口径 问题,不是数据错。实测: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」,同一分析不混口径,就不会再被"价格对不上"困惑。

参考

相关推荐
如夏倾城9 分钟前
百度文心(容易被忽略的好用AI)使用方式
人工智能·python·百度·语言模型·dubbo
少司府1 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
打工仔折腾 AI2 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理2 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
2601_967979124 小时前
Python第七十四讲 异常处理完全精通 try-except零基础保姆级教程
python·异常处理·编程教程·错误处理·try-except
wuyk5554 小时前
Spider-第07讲-JSON接口与正则提取
爬虫·python·json
2601_967987374 小时前
Sqlite参考手册
数据库·python·sqlite·api·教程
用户019027581615 小时前
A 股到价提醒机器人:AlphaFeed + 飞书/钉钉 Webhook
python
特立独行的猫A5 小时前
Ionic + 仓颉语言的 cj-tauri 开发框架实战:开发精美移动端 APP
java·后端·python