(1m/5m/15m + Python 代码)
**一句话回答:** 历史分钟线用 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](https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart)