🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant 聚宽平台1分钟K线时间戳与数据对齐规则解析

joinquant | 发布时间: 2026/5/29
以下内容由 EasyQuant 生成。

问题描述

我没怎么懂,如果换到1分钟行情的K线上看,2022-06-10 11:15:00的价格我是看14分K线的收盘价还是,看15分的开盘价?从实际成交价格,我看用的是15分钟的收盘价。这样不就和15:00差了接近一分钟,我的理解是,系统的最小粒度目前是1分钟,所以只能这样处理。不知道对否?

解决方案

你的理解基本是正确的!在 JoinQuant(聚宽)平台上,K线数据采用的是后对齐的规则。为了让你更清晰地理解,我们可以从以下几个方面来解析:

1. K线的“后对齐”规则

根据 JoinQuant API 文档的说明:“我们提供的所有行情K线数据为后对齐,标识K线的时间为数据的结束时间。”

这意味着,标识时间为 11:15:00 的这根1分钟K线,它所包含的实际交易数据时间段是 11:14:00 ~ 11:14:59

  • 开盘价 (Open):是 11:14:0011:14:59 这1分钟内的第一笔成交价。
  • 收盘价 (Close):是 11:14:0011:14:59 这1分钟内的最后一笔成交价。

2. 策略在 11:15:00 运行时拿到的数据

在分钟级回测或模拟中,策略(如 handle_data 函数)会在每分钟的第一秒运行。当系统时间走到 11:15:00 时,引擎会触发你的策略。

为了绝对避免未来函数,系统在 11:15:00 这一刻,只能给你提供 11:15:00 之前已经完全确定的数据。因此,此时传入的 data 对象,正是标识为 11:15:00 的这根K线(即 11:14:00 ~ 11:14:59 的数据)。

如果你在 11:15:00 触发的逻辑中读取了 data[security].close,你实际拿到的是 11:14:59 这一刻的最新成交价。这也就是你观察到的“用的是15分钟的收盘价”。

3. 关于 09:31 的特殊说明

为了加深理解,可以参考文档中关于开盘第一分钟的说明:
在一分钟K线上,没有 09:30 的K线,第一根K线是从 09:31 开始的。标识为 09:31 的一分钟K线,其数据时间为 09:25:00 ~ 09:30:59,这根K线的开盘价就是 09:25 集合竞价产生的价格。

总结

你的理解是对的。因为系统的基础K线粒度是1分钟,且为了防止未来数据泄露,在 11:15:00 这个时间点,系统只能提供刚刚走完的那1分钟(即结束于11:15:00的K线)的统计数据。你看到的“15分钟的收盘价”,实际上代表的是 11:14:59 那个瞬间的市场切片价格。