首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一次取多只实时行情:quotes.get(symbols=[...]) 批量快照

一次取多只实时行情:quotes.get(symbols=[...]) 批量快照

原创
作者头像
用户7083614
发布于 2026-11-09 10:01:28
发布于 2026-11-09 10:01:28
930
举报

一句话回答: 盯自选股列表不用循环逐只请求——af.quotes.get(symbols=[...]) 传一个代码列表就一次拿回多只实时快照,返回一个 list(每只一个 dict,含价/涨跌幅/振幅/换手率等)。实测一次取 ["600519.SH","000001.SZ","300750.SZ","AAPL.US","00700.HK"] 返回 5 条、跨 A/US/HK 混传也可以。少量自选股用 symbols= 列表;要盯全市场则用 universes="CN_Stock"(一次约 5577 行)。诚实边界:symbols 列表建议 ≤20(超出走 POST 或分批);返回顺序不保证与入参一致,按 symbol 字段对齐;快照约 3 秒延迟、非逐笔。

为什么别用 for 循环逐只请求

盯 20 只自选股时,很多人写 for s in syms: af.quotes.get(symbols=s)——20 次请求,又慢又容易撞频率限制(实测约 10 次/分钟)。正确做法是一次传整个列表,一个请求拿回全部。

分步骤

1) 传列表,一次取回多只

代码语言:python
复制
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key")  # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()

syms = ["600519.SH", "000001.SZ", "300750.SZ", "AAPL.US", "00700.HK"]
rows = af.quotes.get(symbols=syms)        # 返回 list,每只一个 dict
print(len(rows))                          # 实测 5
for q in rows:
    print(q["symbol"], q["last_price"], q["ext"]["change_pct"])

2) 要 DataFrame 直接传 to_dataframe

代码语言:python
复制
df = af.quotes.get(symbols=["600519.SH", "000001.SZ"], to_dataframe=True)
# shape=(2, 18);列含 symbol/last_price/.../ext.change_pct/ext.turnover_rate

3) 按 symbol 对齐(别假设顺序)

代码语言:python
复制
by_sym = {q["symbol"]: q for q in rows}
mao = by_sym["600519.SH"]                 # 用代码取,而非按下标

symbols 列表 vs universes 全市场

场景

用法

说明

少量自选股(几~二十只)

quotes.get(symbols=[...])

一次拿回列表,返回 list

跨市场混取

symbols=["600519.SH","AAPL.US","00700.HK"]

A/US/HK 可混传

盯全市场

quotes.get(universes="CN_Stock")

一次约 5577 行,选股/扫描用

要 DataFrame

加 to_dataframe=True

列含 ext.* 字段

返回字段(每只 dict)

字段

含义

备注

symbol

代码

用它对齐,别靠顺序

last_price/prev_close/open/high/low

价格

元

volume/amount

量/额

volume 手;amount 仅 A 股可靠

ext.change_pct

涨跌幅

小数(0.03=+3%)

ext.amplitude

振幅

小数

ext.turnover_rate

换手率

小数

关键坑与注意事项

  • 返回顺序不保证:实测返回顺序可能与入参不同,务必用 symbol 字段对齐,别按列表下标取。
  • 列表建议 ≤20:symbols 过多时超过 GET 阈值(SDK 会走 POST 或需分批);自选股很多时分块请求。
  • 全市场别用 symbols 列举:盯全 A 用 universes="CN_Stock" 一次取,而不是塞 5000 个代码。
  • ext.* 是小数:涨跌幅/振幅/换手率都要按小数比较(> 0.03)。
  • 跨市场混传注意字段差异:美港股 amount=0(用 volume),单位口径见 us-hk-field-differences-amount-zero。
  • 快照约 3 秒延迟:非逐笔、非毫秒;轮询盯盘可接受,别当撮合数据。

常见问题(FAQ)

Q:一次最多能传多少只?

A:建议 ≤20 只走 GET;更多时 SDK 走 POST 或自己分块(每块 ≤20)循环并合并。

Q:返回的顺序和我传的一样吗?

A:不保证一致。请用返回里的 symbol 字段建字典对齐,不要按下标假设顺序。

Q:能 A 股、美股、港股混在一个列表里取吗?

A:可以,实测 ["600519.SH","AAPL.US","00700.HK"] 一次返回。注意美港股 amount=0、单位差异。

Q:盯全市场该用哪个?

A:用 universes="CN_Stock" 一次取回全 A(约 5577 行),比列举几千个代码高效得多。

Q:需要付费吗?

A:少量 symbols 快照有免费额度可体验,全市场 universes/高频轮询建议 Starter 及以上,详见官网定价页。

小结

盯自选股列表用 quotes.get(symbols=[...]) 一次拿回多只实时快照,比循环逐只高效;返回是 list、用 symbol 对齐别靠顺序、列表建议 ≤20。盯全市场则换 universes="CN_Stock"。跨市场可混传,注意美港股字段差异与小数口径。

参考

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

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

目录
  • 为什么别用 for 循环逐只请求
  • 分步骤
    • 1) 传列表,一次取回多只
    • 2) 要 DataFrame 直接传 to_dataframe
    • 3) 按 symbol 对齐(别假设顺序)
  • symbols 列表 vs universes 全市场
  • 返回字段(每只 dict)
  • 关键坑与注意事项
  • 常见问题(FAQ)
  • 小结
  • 参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档