接入教程Python 3.14 syntax review · requests example
历史 K 线请求怎么设计?周期与数量限制
讲解 K 线参数、外汇/贵金属按时间戳向前翻页的 Python 示例,以及股票不支持此游标和单次 500 根限制。
更新时间:
维护方:AllTick 官方技术团队
适用对象:需要历史 K 线做图表、指标或回测的开发者
核心结论 · 30秒开发速览
K 线请求由代码、周期、截止时间与数量决定。当前 /kline 规范只支持外汇、贵金属和加密资产按时间戳翻页,股票代码不支持该游标;本文用 EURUSD 演示去重翻页,股票历史范围需另按官方规范及套餐核对。
01
AllTick K 线参数
| 参数 | 含义 | 说明 |
|---|---|---|
code | 标的代码 | 本文外汇分页示例为 EURUSD |
kline_type | K 线周期 | 分钟、小时、日、周、月等,取值见文档 |
kline_timestamp_end | 截止时间戳 | 0 从最新开始;股票不支持时间戳游标 |
query_kline_num | 返回根数 | 单次最多 500 根 |
adjust_type | 复权类型 | 0 为不复权,其他取值见文档 |
02
单次请求与向前翻页
kline_fetch.pypython
import json, os, time, uuidimport requestsBASE_URL = "https://quote.alltick.co/quote-b-api"def fetch_kline(code: str, kline_type: int, end_ts: int = 0, num: int = 100) -> list[dict]: token = os.getenv("ALLTICK_API_TOKEN", "YOUR_API_TOKEN") query = { "trace": str(uuid.uuid4()), "data": { "code": code, "kline_type": kline_type, "kline_timestamp_end": end_ts, "query_kline_num": num, "adjust_type": 0, }, } resp = requests.get( f"{BASE_URL}/kline", params={"token": token, "query": json.dumps(query)}, timeout=10, ) body = resp.json() if resp.content else {} if body.get("ret") != 200: raise RuntimeError(f"ret={body.get('ret')} msg={body.get('msg')}") resp.raise_for_status() return body.get("data", {}).get("kline_list", [])def fetch_history(code: str, kline_type: int, pages: int = 3, num: int = 100) -> list[dict]: bars: dict[int, dict] = {} end_ts = 0 for _ in range(pages): batch = fetch_kline(code, kline_type, end_ts, num) if not batch: break for bar in batch: bars[int(bar["timestamp"])] = bar earliest = min(int(b["timestamp"]) for b in batch) if end_ts and earliest >= end_ts: break end_ts = earliest time.sleep(10) return [bars[k] for k in sorted(bars)]if __name__ == "__main__": klines = fetch_history("EURUSD", kline_type=8, pages=2, num=10) for bar in klines[-5:]: print(bar.get("timestamp"), bar.get("close_price"), bar.get("volume"))03
历史范围与套餐限制
单次 500 根上限不等于总历史范围。时间戳翻页能力按资产而异,当前股票不支持;回测前应核对具体资产、周期、套餐历史权限和 Token 配额。
- 翻页返回空列表或时间不再变化时,说明已到达可用范围的边界。
- 回测需要长历史时,先在套餐页确认范围,再决定周期与存储方案。
- 日 K 以上周期覆盖的时间跨度更长,适合长期回测。
规范来源与验证记录 · 2026-10-13
已根据下方一手资料核对相关端点、字段与交易所规则。
Python 示例已在 Python 3.14.0 上通过 ast.parse 语法解析;此检查不验证依赖安装、运行兼容性或网络响应。
本轮未使用真实 Token 执行 AllTick 请求,也未完成生产端到端测试。复现时请记录套餐、依赖版本、交易时段、ret/trace 与实际结果。
上线前建议复现
- 当前 /kline 时间游标支持外汇、贵金属、加密资产,不支持股票;EURUSD 示例使用 /quote-b-api,不能用此循环承诺更深股票历史。
- 单次最多 500 根,边界去重,空页或时间不前进即退出;区分单次根数和套餐历史深度,按 Token 配额安排间隔。