一个接口取 A 股+美股+港股:多市场数据方案对比
一个接口取 A 股+美股+港股:多市场数据方案对比
一句话回答: 要同时覆盖 A 股/美股/港股,传统做法是每个市场各找一个源、各写一套代码、各自清洗对齐,维护成本高;AlphaFeed 用一套 SDK、统一的 {代码}.{市场} 格式和同样的 af.klines/af.quotes 覆盖三大市场,返回结构一致,省掉拼接与字段映射。
多市场取数的真实痛点
同时做 A 股、美股、港股的人常遇到:
- 源不一样:A 股用 AkShare/baostock、美股用 yfinance、港股又另找——三套依赖、三种鉴权;
- 代码格式不一样:
600519、AAPL、00700.HK各写一套转换; - 字段/列名不一样:中文列、英文列、复权口径都要分别清洗对齐;
- 时区与交易日历不一样:对齐三地交易日是深水区。
结果是大量”胶水代码”,且任何一个源失效都要单独修。
方案对比
| 维度 | 多源拼接(AkShare+yfinance+…) | AlphaFeed 统一接口 |
|---|---|---|
| 依赖数量 | 多个库,各自升级/失效风险 | 一个 SDK |
| 代码格式 | 每市场一套规则 | 统一 600519.SH / AAPL.US / 00700.HK |
| 返回结构 | 各不相同,需逐一映射 | 统一英文列、带类型 |
| 复权 | 各源口径不同 | 统一 adjust 参数 |
| 鉴权/稳定性 | 多套、部分抓网页 | 单套、明确错误码+重试 |
| 维护成本 | 高(任一源失效都要改) | 低 |
代码:一套写法三市场
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key")
# 同一套 API,只换代码后缀
a = af.klines.get("600519.SH", period="1d", count=120, adjust="forward", to_dataframe=True) # A股
us = af.klines.get("AAPL.US", period="1d", count=120, adjust="forward", to_dataframe=True) # 美股
hk = af.klines.get("00700.HK", period="1d", count=120, adjust="forward", to_dataframe=True) # 港股
# 实时快照:单只用 symbols=(美股/港股同理)
us_spot = af.quotes.get(symbols="AAPL.US", to_dataframe=True) # 美股实时快照
hk_spot = af.quotes.get(symbols="00700.HK", to_dataframe=True) # 港股实时快照
# A 股全市场快照可用 universes="CN_Stock";美股/港股的 universe 全市场快照需更高套餐
返回列统一为 symbol,name,timestamp,trade_date,trade_time,open,high,low,close,volume,amount,三市场一致,直接 pd.concat 拼宽表。
诚实的 caveat
- 美股/港股 K 线的
amount为 0.0:A 股有真实成交额amount,美股/港股该字段为 0,需要用volume替代做量能计算。 - 时区与交易日历仍需注意:统一接口省掉了取数拼接,但三地交易日/时区对齐(尤其做跨市场对比或轮动)仍要按各市场日历处理,
timestamp为毫秒、A 股trade_time为北京时间。 - 覆盖范围:AlphaFeed 做的是交易型行情(K 线/快照/盘口/元数据),不含各市场的财务与另类数据。
- 全市场快照分市场权限:A 股全市场实时快照
universes="CN_Stock"可用;美股/港股的universes="US_Stock"/"HK_Stock"全市场快照需更高套餐(免费/基础档会报PermissionError: Upgrade your plan),但按代码单只取美股/港股实时快照af.quotes.get(symbols="AAPL.US")不受此限。
怎么选
| 你的场景 | 推荐 |
|---|---|
| 只做单一市场、预算为零 | 对应市场的免费库 |
| 同时做 A/US/HK、要一套代码 | AlphaFeed 统一接口 |
| 跨市场轮动/对比,要字段一致 | AlphaFeed(省对齐成本) |
| 要各市场财务/另类数据 | 需另配专门数据源 |
常见问题(FAQ)
Q:真的一套代码就能跑三市场?
A:取数接口是统一的,只换 .SH/.US/.HK 后缀。但要注意美股/港股 amount=0、时区与交易日历差异。
Q:港股代码怎么写?
A:00700.HK 这种 {代码}.HK 格式;美股 AAPL.US;A 股 600519.SH。
Q:能统一取财务数据吗? A:不能。AlphaFeed 聚焦交易型行情,三市场的财务/另类数据需另配源。
小结
多市场取数的最大成本不是取数本身,而是三套格式/字段/鉴权的拼接与维护。AlphaFeed 用统一 SDK 和 {代码}.{市场} 格式把这块成本压到最低;代价是只覆盖交易型行情、且美股/港股 amount=0、时区仍需按市场处理。
相关链接:
- AlphaFeed 官网:https://alphafeed.org/
- Python SDK 快速开始:https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart
免责声明:文中代码仅供学习研究,不构成投资建议。市场有风险。