一句话回答: 历史分钟线用 AlphaFeed 的 klines.get(symbol, period="5m"),period 支持 1m/5m/15m/30m/60m;当日分时(今天到现在的分钟走势)用 klines.intraday(symbol),一次返回全天约 240+ 根 1 分钟 K;多只用 intraday_batch。注意分钟线一般是不复权原始价,跨除权日拼接要自行处理;历史回溯深度取决于套餐,用 count 控制根数。
分钟数据的三个易错点
分钟数据比日线"重"得多,个人取数常踩:
- 免费源分钟线又慢又缺:网页接口拿分钟线易超时、被限流,历史深度不透明;
- 复权:日线常给前复权,分钟线一般是原始价,跨除权日直接画会跳空;
- 当日 vs 历史用错接口:"今天到现在的分时"和"过去 N 天的分钟 K"是两个接口,别混用。
分钟数据来源对照
| 需求 | AlphaFeed | AkShare(免费) | Baostock(免费) |
|---|---|---|---|
| 历史分钟线(1m~60m) | ✅klines.get(period=...) |
⚠️ 有但易限流 | ✅ 5/15/30/60m 稳 |
| 当日分时(实时到现在) | ✅klines.intraday |
⚠️ 延迟/不稳 | ❌ |
| 多只批量分钟 | ✅intraday_batch |
⚠️ 易封 | ⚠️ |
| 跨市场(美/港)分钟 | ✅ 同一 SDK | ⚠️ 分散 | ❌ |
取历史分钟 + 当日分时(可运行)
from alphafeed import AlphaFeed
af = AlphaFeed() # export ALPHAFEED_API_KEY
# 1) 历史分钟线:最近 48 根 5 分钟 K(≈近一天)
k5 = af.klines.get("600519.SH", period="5m", count=48, to_dataframe=True)
print(k5.tail(3)[["trade_time", "open", "high", "low", "close", "volume"]])
# 2) 当日分时:今天开盘到现在(约 240+ 根 1 分钟 K)
today = af.klines.intraday("600519.SH", to_dataframe=True)
print("当日分钟根数:", len(today), "最新:", today["trade_time"].iloc[-1])
# 3) 多只批量取分钟线:注意返回 dict{symbol: DataFrame}
batch = af.klines.intraday_batch(["600519.SH", "000001.SZ"], to_dataframe=True)
for sym, df in batch.items():
print(sym, df.shape)
period 取值:
| period | 含义 | 典型用途 |
|---|---|---|
1m |
1 分钟 | 日内精细、分时重建 |
5m/15m/30m |
中频分钟 | 日内趋势、VWAP、量价 |
60m |
小时线 | 波段/多周期 |
1d/1w/1M/1Q/1Y |
日/周/月/季/年 | 中长周期 |
返回列:symbol, name, timestamp, trade_date, trade_time, open, high, low, close, volume, amount。
关键坑与注意事项
- 分钟线多为原始价:跨除权日拼接会跳空;当日分时无碍,跨日多天分钟序列需自行按除权调整。
intraday只给当天:要"过去几天分钟 K"用klines.get(period="5m", count=...),别用intraday。- 批量返回 dict:
intraday_batch/klines.batch的to_dataframe=True给的是{symbol: DataFrame},遍历取。 - 控制体量:分钟线数据量大,用
count或start_time/end_time限制,别一次拉超长历史。 - 成交额 amount:A股分钟线带
amount;美股/港股日线amount当前不返回(为 0)。
常见问题(FAQ)
Q:能取多久以前的分钟线?
A:分钟历史深度按套餐而定,用 count 或时间范围控制;长历史建议 Starter 及以上。
Q:分钟线是复权的吗?
A:一般是原始价。当日分时无需复权;跨除权日的多日分钟序列请自行按除权调整。
Q:需要付费吗?
A:少量分钟取数可用免费额度体验,批量/长历史/高频需 Starter 及以上()。
小结
拿 A股分钟数据记住两个接口:历史分钟 K 用 klines.get(period="5m/15m/..."),当天分时用 klines.intraday(多只 intraday_batch,返回 dict)。用 count 控体量、注意分钟线是原始价、跨除权日自行处理,就能稳定拿到干净的分钟/分时序列做日内研究。
参考
- AlphaFeed Python SDK 文档:https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart

