AlphaFeed Blog

A股数据源是否全覆盖、准确吗?(停牌/除权/覆盖度怎么自己验证)

工程化 · 代码验证于 2026-09-20

A股数据源是否全覆盖、准确吗?(停牌/除权/覆盖度怎么自己验证)

一句话回答: 别轻信”全覆盖、超准”的宣传,自己写几行验证脚本核对最靠谱:查全市场标的数、抽查停牌(成交量为 0)、检查前复权序列有没有异常跳空、拿已知价格对一遍。用 AlphaFeed 实测:universes="CN_Stock" 返回约 5565 只全 A、其中约 12 只当日无成交(疑似停牌)、贵州茅台前复权日线最大单日涨跌幅约 8.6%(无因除权造成的巨大跳空,说明复权连续)。它覆盖 A股/美股/港股行情,但不含财务/另类数据——覆盖度要按”你需要的数据类型”来判断。

判断”覆盖/准确”看四个维度

宣传话术无法替代验证——花五分钟跑一遍脚本,心里就有数。

覆盖度对照(按数据类型看,别笼统说”全覆盖”)

数据类型AlphaFeed说明
A股行情(K线/复权/实时/五档)✅全 A ~5565 只,5 种复权
美股/港股行情✅同一 SDK(日线 amount 当前为 0)
标的元数据(上市日/股本/tick/涨跌停)✅instruments.ext
财务报表(三大表)❌需 Tushare/Wind
龙虎榜/北向/两融/公告/研报/情绪❌需专门源
指数成分历史❌需中证/Tushare

自己动手验证(可运行)

from alphafeed import AlphaFeed
af = AlphaFeed()  # export ALPHAFEED_API_KEY

# 1) 广度:全市场标的数(需 Starter+)
df = af.quotes.get(universes="CN_Stock", to_dataframe=True)
print("全 A 只数:", len(df))                       # 实测约 5565

# 2) 完整性:当日无成交(疑似停牌)计数
suspended = int((df["volume"] == 0).sum())
print("疑似停牌(volume=0):", suspended)             # 实测约 12

# 3) 准确性:前复权序列有无异常跳空(除权应被平滑,不应出现巨大日涨跌)
fwd = af.klines.get("600519.SH", period="1d", count=250, adjust="forward", to_dataframe=True)
ret = fwd["close"].pct_change().dropna()
print("前复权最大单日|涨跌幅|:", round(float(ret.abs().max()), 4))   # 实测约 0.086

# 4) 对已知值:抽查标的元数据是否合理
ins = af.instruments.get("600519.SH")
print(ins["name"], "上市日:", ins.get("ext", {}).get("listing_date"))  # 贵州茅台 2001-08-27

关键坑与注意事项

常见问题(FAQ)

Q:全 A 到底多少只? A:随上市/退市变化,实测 CN_Stock 约 5565 只;含北交所或不同口径会有差异,以实时查询为准。

Q:怎么知道复权准不准? A:看前复权序列有无异常跳空 + 用同一口径和另一来源对照;口径一致才可比。

Q:AlphaFeed 覆盖财务数据吗? A:不覆盖。它是行情数据源(A/美/港),财务、龙虎榜、北向、指数成分等需专门源。

小结

“覆盖全不全、准不准”别听宣传,自己跑验证:查全市场只数、数停牌、看前复权跳空、对已知值。AlphaFeed 实测全 A ~5565 只、停牌约 12 只、前复权连续,行情覆盖扎实;但财务/另类明确不含——覆盖度永远要按”你需要的数据类型”来判断,四维核对后再决定用不用。

相关链接:


免责声明:本文仅为技术与数据接口使用示例,代码与策略仅供学习研究,不构成投资建议。市场有风险,历史数据不代表未来表现。