一句话回答: AlphaFeed 的 klines.get 用 period 参数控制 K 线周期,原生支持 8 种取值:1m、5m、15m、30m、60m(分钟线)与 1d(日线)、1w(周线)、1M(月线)。周线、月线由服务端直接返回,不用你自己把日线合成;传错取值会立即报 BadRequestError 并列出合法值。
不同数据源的周期写法五花八门:1min、day、week、D、W……记混一个就报错取不到数。而且很多人不知道周线/月线能直接取,于是费劲用日线自己 resample,既容易错(对齐、最后一根未收完)又多写代码。搞清楚 period 的合法取值与含义,取任意周期都只是改一个字符串。
from alphafeed import AlphaFeed
af = AlphaFeed() # 读取 ALPHAFEED_API_KEY
day = af.klines.get("600519.SH", period="1d", count=5, adjust="forward", to_dataframe=True)
week = af.klines.get("600519.SH", period="1w", count=5, adjust="forward", to_dataframe=True)
month = af.klines.get("600519.SH", period="1M", count=5, adjust="forward", to_dataframe=True)
print(day[["trade_date", "close"]].tail(2).to_string(index=False))
print(week[["trade_date", "close"]].tail(2).to_string(index=False))周线/月线由服务端聚合返回,无需自己 resample;如需从日线自定义合成多周期,另见「日线合成周线做多周期共振」一文。
m5 = af.klines.get("600519.SH", period="5m", count=48, to_dataframe=True)
m60 = af.klines.get("600519.SH", period="60m", count=8, to_dataframe=True)
print("5 分钟线根数:", len(m5))period | 含义 | 典型用途 |
|---|---|---|
| 1 分钟 | 日内高频、分时细节 |
| 5 分钟 | 日内择时、盘中信号 |
| 15 分钟 | 日内/短线 |
| 30 分钟 | 短线波段 |
| 60 分钟(小时线) | 波段、多周期共振 |
| 日线 | 最常用,选股/回测主力周期 |
| 周线 | 中线趋势、周线金叉 |
| 月线 | 长线趋势、大级别择时 |
注意大小写:分钟/日/周是小写
m/d/w,月线是大写1M(小写m表示分钟)。
try:
af.klines.get("600519.SH", period="1min", count=3, to_dataframe=True)
except Exception as e:
print(type(e).__name__, str(e)[:80])
# BadRequestError: Failed to deserialize query string: unknown variant `1min`, expected one of ...报错会直接列出期望的合法取值,按提示改成 1m/1d 等即可。常见错误:1min(应为 1m)、day(应为 1d)、week(应为 1w)、1m 想表示月线(月线应为 1M)。
1M、分钟小写 1m:这是最容易踩的坑,写反了拿到的是完全不同周期。adjust 参数用于日/周/月线还原除权;分钟线一般看当日相对走势。count 过大可能拿不满,按需取用。BadRequestError 里列出的 variants 是权威清单。Q:怎么取小时线?
A:用 period="60m"(60 分钟即小时线)。
Q:能直接取周线、月线吗?还是要自己合成?
A:能直接取,period="1w" / period="1M",服务端已聚合返回,无需自己 resample。
Q:1m 是分钟还是月?
A:1m 是 1 分钟;月线是大写 1M。小写 m=minute,大写 M=month。
Q:为什么我传 period="D" 报错?
A:合法取值是 1d 不是 D。报错信息里会列出全部期望值,按提示改即可。
Q:需要付费吗?
A:单标的各周期 K 线有免费额度;批量与全市场取数需 Starter 及以上。详见定价页。
AlphaFeed 的 K 线周期就一个 period 参数,合法取值 8 种:1m/5m/15m/30m/60m/1d/1w/1M。记住「分钟小写 m、月线大写 M」,周线月线直接取无需手动合成,传错会报错并列出合法值。取任意周期,只需改一个字符串。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。