一句话回答: 用 AlphaFeed 的 quotes.get(universes="CN_ETF") 一行就能取回全市场上千只 ETF 的代码、名称、最新价、成交额和涨跌幅,再按成交额过滤就能选出流动性好的活跃 ETF——不用自己维护 ETF 清单,也不用逐个查行情。
想做 ETF 轮动、宽基定投或套利研究,第一步都是"先有一份带行情的 ETF 全清单"。手工来做很痛苦:
AlphaFeed 提供 CN_ETF 标的池,一次拿到全市场 ETF 及其快照行情。
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key") # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()
q = af.quotes.get(universes="CN_ETF", to_dataframe=True)
print(q.shape) # 例如 (1577, 18):全市场约 1500+ 只 ETF
print(q[["symbol", "ext.name", "last_price", "amount"]].head())ETF 快照 DataFrame 关键列(与股票一致,名称在 ext. 命名空间):
列名 | 含义 | 备注 |
|---|---|---|
| ETF 代码 | 如 |
| ETF 名称 | 名称在 |
| 最新价 | 实时快照 |
| 当日成交额(元) | 流动性核心指标 |
| 涨跌幅 | 小数(0.01=1%) |
| 换手率 | 小数 |
def active_etfs(min_amount=1e8): # 日成交额 ≥ 1 亿
q = af.quotes.get(universes="CN_ETF", to_dataframe=True)
liquid = q[q["amount"] >= min_amount].copy()
cols = ["symbol", "ext.name", "last_price", "amount", "ext.change_pct"]
return liquid[cols].sort_values("amount", ascending=False)
top = active_etfs(min_amount=1e8)
print("活跃 ETF 数量:", len(top))
print(top.head(10).to_string(index=False))实测成交额居前的多为债券/货币类 ETF(如短融 ETF、银华日利 ETF),做权益轮动时通常还要再按名称/类型过滤掉货币债券类,只留股票型宽基/行业 ETF。
拿到活跃 ETF 列表后,可直接批量取 K 线做动量/相关性等分析:
symbols = active_etfs(2e8)["symbol"].tolist()[:20]
bt = af.klines.batch(symbols, period="1d", count=60,
adjust="forward", to_dataframe=True)
# 之后可算区间涨幅、相关性、轮动信号等amount 门槛先筛。ext.name 或类型剔除货币债券类,否则成交额榜单全是它们。amount 是当日截至此刻的累计成交额,盘中会变;比较流动性建议用收盘后的快照或历史日线成交额均值。last_price),折溢价套利需要 IOPV/份额净值,属另一话题,别把成交价当净值。adjust="forward"。Q:CN_ETF 池大概有多少只?
A:实测约 1500+ 只(含宽基、行业、债券、货币、跨境等各类)。做策略前务必按类型和流动性过滤。
Q:怎么只要股票型宽基 ETF(如沪深300、中证500)?
A:先用 CN_ETF 拿全量,再按 ext.name 关键词或你维护的白名单过滤;AlphaFeed 给的是全量 ETF 行情,分类规则由你定。
Q:能拿到 ETF 的成分股/跟踪指数吗?
A:本文聚焦"列表+行情"。成分与跟踪标的属指数/基金信息,请以官方披露为准,不要臆造未暴露字段。
Q:需要付费吗?
A:universes="CN_ETF" 全市场池需要 Starter 及以上;少量 ETF 的单独行情/ K 线在免费额度内即可试,详见 AlphaFeed 定价页。
获取 ETF 列表的本质是"有一个随时更新的 ETF 标的池 + 快照行情",再用成交额过滤流动性。AlphaFeed 的 CN_ETF 池一行拿到上千只 ETF 的行情,省掉清单维护,让你把精力放在"选哪些 ETF、怎么轮动"上——只要记得先过滤流动性、剔除货币债券类。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。