美股行情数据源怎么选?实测四家平台:别让错乱的“最新价”毁掉你的实时看板与 AI 查询

TickDB Research ·

为美股团队选数据源,最怕“演示能用,交付返工”。本文结合真实自动化实测与官方资料,聚焦实时看板、历史回测与 AI 查询三大场景。文章不仅拆解了盘前/盘后价格时点错乱、复权口径不一等五个选型陷阱,还直接提供了可运行的 Python 验证代码、多市场字段对比明细和复权因子计算公式。你将看到 TickDB 在同一响应中如何返回三个时点的价格,以及如何通过 MCP 原生协议让 AI 直接取回结构化行情。最后附上一份可复用的需求卡,帮你用真实样本避开隐性成本。

上个月,一个做美股看板的朋友找我复盘。他说产品上线后,用户投诉不断。我打开他的系统一看:页面上醒目地挂着苹果 AAPL 的价格,涨跌幅却是绿的。用户以为这是“当前盘前”的暴跌,实际上,系统取的是昨天的收盘价,只是时间戳没标清楚。

这就是选美股数据源时最致命的错觉。你问供应商“支不支持美股行情”,他们都说支持。但交付时:看板可能用昨收冒充了盘前,回测可能混用了不同口径的复权,AI 助手可能用训练数据里的旧价格敷衍用户。

问题不在“有没有数据”,而在于你拿到的到底是哪个对象、哪个时点、哪个口径。

最近,为了给内部工具选底座,我用代码把市面几家常用的入口(Yahoo/yfinance、TickDB、Alpha Vantage、Massive)真实跑了一遍。这不是同条件性能横评,而是一份关于“怎么排雷、怎么验收”的踩坑记录。

一分钟看懂:四个入口的适用边界

这张表的正确读法:不要只看谁的功能多,先看你的项目必须跨越哪条红线。如果只是个人日终研究,Yahoo 的免费足够;如果团队既要跨市场看盘,又希望 AI Agent 直接调取带时间戳的结构化数据,那么原生支持 MCP 和多市场统一字段的入口,才是你该重点考察的。

数据源覆盖市场实时性 (通道隔离)接入方式AI 友好度 (Agent调用)免费额度与限制主要门槛/风险
Yahoo / yfinance以美股为主,少量全球延时(通常15分钟+),无正式 WSPython 第三方库需自行写代码封装给大模型免费(开源库)非官方接口随时变动;仅限个人研究,商用风险高
TickDB美股、A股、港股、外汇等REST 按需快照 + WebSocket 推送REST API, WebSocket, MCP, Skill原生支持 (MCP 直连,带时间戳结构化数据)有免费版(免费版不支持K线区间查询及复权因子)需配置认证;免费版功能受限,进阶需付费
Alpha Vantage美股、外汇、加密免费为延时;实时需付费REST API, 提供官方 MCP支持 MCP,但需配置免费 25 次/天(极度受限)额度极小,高频或实时场景成本极高
Massive专注美股 (聚合K线、成交)分层提供:日终、延时、实时REST API, WebSocket需自行封装 API 供 AI 使用视具体产品层级而定主要覆盖美股,多市场统一较麻烦

证据说明:上述信息综合自各平台官方文档与公告(截至 2026 年 10 月)。TickDB 的实测数据来自我们团队 2026-10-22 的自动化核验报告,保留原始 JSON 存档。


坑一:同一个接口,可能返回三个“最新价”

在实时看板里,“最新价”是一个伪概念。如果你不指明是哪个时段的最新,你的看板一定会误导用户。

我们在 2026 年 10 月 22 日盘后,通过 TickDB 的 MCP 工具实际拉取了一次 AAPL 的快照。如果你在支持 MCP 的客户端里问 AI 要行情,它底层调用的工具参数非常简单:

{
  "name": "get_ticker",
  "arguments": {"symbols": "AAPL.US"}
}

你可以直接复制这段 Python 逻辑去检查你的数据源,看看它是否返回了多时段对象:

# 检查你的快照接口是否返回了多时段对象
data = response["data"][0]

print(f"主价格(常规): {data['last_price']}, 时间: {data['timestamp']}")
print(f"盘前对象: {data.get('pre_market_quote', {}).get('last_done')}, 时间: {data.get('pre_market_quote', {}).get('timestamp')}")
print(f"夜盘对象: {data.get('overnight_quote', {}).get('last_done')}, 时间: {data.get('overnight_quote', {}).get('timestamp')}")

在 TickDB 返回的同一份结构化 JSON 里,我们看到了三个完全不同的价格:

  • 主价格对象:last_price = 343.99,时间戳对应美东 10 月 21 日 16:00:01(常规收盘)。
  • 盘前对象:last_done = 339.3,时间戳对应美东 10 月 21 日 09:30:00(盘前)。
  • 夜盘对象:last_done = 343.94,时间戳对应美东 10 月 21 日 22:29:28(夜盘)。

注意,扩展对象的价格字段实际叫 last_done,没有嵌套的 last_price。三个价格都在同一个响应里,如果产品需求只是简单的一句“显示最新价”,研发大概率直接取了第一个 last_price。

我后来给自己定了个规矩:产品需求里的“最新”,必须落实为“哪个对象的最新数据”。如果做盘前看板,就明确取 pre_market_quote;如果夜盘缺数据,界面必须明确显示“暂无”,而不是默认回退到昨收。


坑二:多市场统一,不只是对几个字段名

很多团队一开始只做美股,选了只支持美股的接口。半年后要加港股,发现字段结构完全变了,时间戳的时区也没对齐,写好的数据处理层得推翻重来。

我们尝试用同一个 TickDB API Key,在一次请求里同时拉取了苹果、腾讯和贵州茅台:

GET /v1/market/ticker?symbols=AAPL.US,700.HK,600519.SH

实测验证结果:

  1. 核心层级完全一致:三个标的的主价格都叫 last_price,时间戳都是 timestamp(整型毫秒)。
  2. 时区转换:我们按 UTC 解释毫秒值,分别转换成纽约(America/New_York)、香港(Asia/Hong_Kong)和上海(Asia/Shanghai)时间。实测时间戳转换完全吻合。
  3. 诚实边界:这次实测并不代表所有字段都完全相同。AAPL 响应里有盘前/盘后/夜盘对象,600519.SH 返回了 category 字段,而 700.HK 此次没有这些扩展字段。

支撑多市场基础行情展示的核心字段是高度统一的。自建去对齐多市场时区、字段映射和扩展规则的成本,通常比买一套统一接口要贵得多。


坑三:AI 查行情,没工具就只能靠猜

大模型最擅长“流畅地胡说八道”。如果没有数据工具,你问它“苹果现在多少钱”,它只能靠训练数据里的历史价格猜。

TickDB 在 AI 原生接入上的优势是直接提供了 MCP(Model Context Protocol)服务。我们在配置好 MCP 后发起了真实调用。以下是 AI 拿到工具结果后给出的真实回答:

“AAPL.US主价格为343.99,其美东时点为2026-10-21T16:00:01-04:00;盘前对象价格为339.3……三个价格对象有各自的时间戳,请保留对象名称和时间一起使用。”

AI 没有凭记忆,它拿回了带时间戳的事实。相比之下,如果你用 Yahoo 或 Massive,你需要自己写封装层、定义 Prompt、确保大模型调用你封装好的函数。TickDB 原生把这一步省了。


坑四:复权不清不楚,回测结果只能作废

如果你要跑回测,先得看清楚账号的权限。TickDB 的免费版文档里写得很明白:不支持通过 start_time、end_time 指定区间,且不开放复权因子接口。

在专业版下,它的透明复权机制值得直接抄作业。很多数据源只给你一个 adjust=forward 参数,底层怎么算的不告诉你。而 TickDB 支持你自己拉取因子列表 /market/kline/ex-factors。

你可以用这段代码验证复权计算:

# 1. 获取 AAPL 的日线数据(不复权),得到 2026-08-07 原始收盘价 313.33
raw_price = 313.33

# 2. 获取前复权因子 (factor_a = 0.99913, factor_b = 0)
factor_a = 0.99913
factor_b = 0.0

# 3. 按文档公式手动计算
adjusted_price = raw_price * factor_a + factor_b

print(f"手动计算的前复权价: {adjusted_price:.7f}") 
# 输出: 313.0574029

我们通过公式算出的 313.0574029,与接口直接返回的 adjust=forward 对应收盘价完全一致。把复权规则交给你自己控制,在要求严谨的回测系统里,这种透明机制能帮你省去很多“曲线为什么对不上”的口水战。


坑五:REST 是快照,WebSocket 才是流

上面的验证用的都是按需快照(REST/MCP)。快照能回答“此刻是什么状态”,不能证明“持续推送是否稳定”。

TickDB 的 WebSocket 端点是 wss://api.tickdb.ai/v1/realtime,订阅 ticker 频道可以接收实时更新。但在本次测试时,因为处于美股非交易时段,我们未能拉取到 5 条连续的 AAPL 推送。历史留存数据表明连接和订阅均能成功,但“连续推送”必须在常规交易时段及 US 交易日单独运行检查。

断线重连后,第一件事不是把断线前后的价格连起来算,而是重新取一次当前快照做校准,再回补 K 线。单次 MCP 查询成功,和看板连续跑一周不出错,验收方法是两套。


一张需求卡,把“最新”拆成可验收的条件

如果你正准备把需求发给候选平台,我建议直接用这张表对齐。不要让对方用“支持”两个字糊弄过去。

需求项示例填写
用途与使用者团队内部 AAPL 盘前观察看板;暂不包含客户展示
标的与对象AAPL.US;盘前用 pre_market_quote,夜盘用 overnight_quote,常规用 last_price
时间与更新显示纽约数据时间;明确是 REST 轮询还是 WebSocket 推送
缺失处理盘前对象缺失时明确提示,不允许拿昨收顶替
AI 需求是否希望用 MCP 直接让 AI 客户端调用结构化行情?
历史需求日期区间、粒度、复权方式;免费版区间限制需提前确认
权益与维护确认账号权限;指定断线恢复、补取和留存负责人

把需求发给候选平台,按“已满足、待确认、不满足”打分。不要因为一次快照成功,就判定“持续推送没问题”;也不要因为 TickDB 免费版不支持指定区间,就否定它 MCP 原生接入和多市场统一的优势。验收要分项。

最后,下次和技术同事讨论时,可以从一句具体的话开始:“我们先验收 AAPL 的盘前对象,再看看 WebSocket 断线后的恢复逻辑。”

如果你现在手头正好有 API Key,不用写完整代码。用它查一次苹果,看看返回里有没有一个和 last_price 时间不同的盘前字段。如果连这个都没有,你的盘前看板可能已经用昨天的收盘价在误导用户了。

相关文章

A股回测用前复权还是后复权:同一只股票,两条收益曲线差 34 个百分点

同一个接口、同一只A股、同一段 250 个交易日, adjust 传 none 累计收益是 −29.92%,传 forward 是 +4.50%。差 34.42 个百分点。三条序列都没算错,它们回答的是三个不同的问题。更要紧的是:不传这个参数时默认给的是不复权,而前复权序列每次除权都会整条重算。这篇讲清五种复权取值的差别、哪一条可复现,最后给一段能自检序列类型的代码。 我在 10 月 19…

TickDB Research ·

A股实时数据API:请求成功,不等于名单里每只票都有数据

摘要 :本文写给负责自选股看板的产品经理,以及参与投研数据源选型的负责人。接入A股实时数据API之后,怎么确认名单里每只股票这一轮都拿到了数据?怎么避免把没返回的行、或者旧价格,当成正常更新?文章用TickDB批量行情快照的真实结果,加上国内外机构资料和反例,把名单核对、数据时间和交易窗口拆开讲,并提供页面检查清单、Python脚本和五项边界自测材料,可以直接转给技术同事验证。 本文回答三个…

TickDB Research ·

股票盘口数据:1档、5档、10档、1000档,档数越多盘口越深吗?

同一个盘口接口,苹果返回1档,寒武纪5档,腾讯10档,比特币1000档。直觉会说比特币最深、苹果最浅。可把挂单换成钱一算,比特币1000档挂的钱,还不到腾讯10档的三分之一。这篇讲清档数到底由什么决定、盘口深度该怎么比,最后给行情App三条显示规矩和一段跨市场盘口代码。 10月16日晚上11点33分,美股正在交易,港股和A股已经收盘。我用同一个盘口接口,查了四个标的:苹果、寒武纪、腾讯、比特…

TickDB Research ·

美股盘前盘后行情接入:财报季跳空时,行情App涨跌幅按谁算

美股财报季已经开始。不少公司在盘后发财报,行情在盘后、夜盘和盘前就走完了,K线第二天只留下一个缺口。同一时刻,苹果的涨跌幅可以有三个答案。这篇用真实数据拆开行情App在财报季最容易出错的6个地方,最后给一张设计清单和一段选价代码。 10月15日是台积电的财报日。当天美股开盘价415.10美元,比前一天收盘的430美元低了3.5%。 但这3.5%不是开盘那一刻跌出来的。从前一晚盘后到当天盘前,…

TickDB Research ·

港股拟延长交易:TradingView做跨市场行情App,K线为何差一天

用 TradingView 开源的 Lightweight Charts 画腾讯10月14日的日K,图上显示的是10月13日。图表库没错,数据也没错,错在喂数据的那一步。我用真实行情把同一组数据喂了两遍,挑出跨市场K线最容易画错的10个地方,文末附一段能直接复制的喂数代码。 10月9日,香港证监会透露,香港正在研究延长证券交易时段,港交所第四季度会就现货市场延时发讨论文件。再过两周多,11月…

TickDB Research ·