跳到正文
AllTick
接入教程Python 3.14 syntax review · requests example

历史 K 线请求怎么设计?周期与数量限制

讲解 K 线参数、外汇/贵金属按时间戳向前翻页的 Python 示例,以及股票不支持此游标和单次 500 根限制。

更新时间:
维护方:AllTick 官方技术团队
适用对象:需要历史 K 线做图表、指标或回测的开发者

核心结论 · 30秒开发速览

K 线请求由代码、周期、截止时间与数量决定。当前 /kline 规范只支持外汇、贵金属和加密资产按时间戳翻页,股票代码不支持该游标;本文用 EURUSD 演示去重翻页,股票历史范围需另按官方规范及套餐核对。

01

AllTick K 线参数

参数含义说明
code标的代码本文外汇分页示例为 EURUSD
kline_typeK 线周期分钟、小时、日、周、月等,取值见文档
kline_timestamp_end截止时间戳0 从最新开始;股票不支持时间戳游标
query_kline_num返回根数单次最多 500 根
adjust_type复权类型0 为不复权,其他取值见文档

02

单次请求与向前翻页

kline_fetch.pypython
import json, os, time, uuid
import requests
BASE_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 配额安排间隔。