前言

在量化交易体系中,K 线(Bar)数据是技术指标计算、量价策略搭建的核心底层数据。迅投 QMT 平台提供了从 tick 级到年级的全周期 Bar 行情数据,能够覆盖高频、中频、低频等不同交易频率的策略开发需求。本文将系统梳理 QMT 中 Bar 数据的定义、字段结构、周期合成规则与数据获取方式,帮助量化开发者快速掌握 QMT 行情数据的调用方法。


一、Bar 数据概述

我们常说的蜡烛图 K 线,在 QMT 中被定义为 Bar 数据。每一根 Bar 都对应一个时间周期内的行情快照,封装了该周期内的价格、成交量等核心交易信息,是量价交易、技术指标分析的数据基础。

QMT 支持的 Bar 数据周期覆盖全面,包含以下主流频率:

  • 高频:tick(3 秒级)
  • 分钟级:1 分钟、5 分钟、15 分钟、30 分钟、60 分钟
  • 长周期:日线、周线、月线、年线

二、标准 Bar 数据核心字段

单根标准 Bar 数据以 OHLCV 为核心字段,完整字段信息如下表:

字段名数据类型字段含义
timeint周期时间戳
openfloat周期开盘价
highfloat周期最高价
lowfloat周期最低价
closefloat周期收盘价
volumefloat周期成交量
amountfloat周期成交额
settlementPricefloat今结算价(股票品种无有效值)
openInterestfloat持仓量(股票品种对应证券状态)
preClosefloat前一周期收盘价

三、基础周期与合成周期规则

QMT 的 Bar 数据分为原生存储的基础周期和基于基础周期计算的合成周期,二者生成逻辑与使用方式存在明确差异。

3.1 基础周期

QMT 底层实际持久化存储的原生数据周期共 4 类,是所有行情数据的数据源:

  • tick
  • 1 分钟(1m)
  • 5 分钟(5m)
  • 日线(1d)

3.2 合成周期规则

其余周期均通过基础周期自动合成得到,合成规则如下:

  • 15m、30m、60 分钟线:由 5 分钟线合成
  • 周线 (1w)、月线 (1mon)、年线 (1y):由日线数据合成

3.3 使用注意事项

  1. 历史数据获取:调取合成周期的历史数据前,需要先下载对应的基础周期历史数据。例如获取 15 分钟历史数据,需提前下载 5 分钟历史数据。
  2. 实时数据订阅:实时行情可以直接订阅合成周期,无需手动进行合成计算。
  3. 数据复用规则:同时使用基础周期和其对应的合成周期时,仅需下载一次基础周期数据即可。例如同时使用 5m 和 15m 数据,只需下载 5m 数据,15m 数据会自动合成,无需重复下载。

四、不同周期数据详解与代码示例

QMT 通过download_history_data接口下载历史数据,通过get_market_data_ex接口获取行情数据,不同周期的字段丰富度和适用场景有差异。

4.1 Tick 级数据

Tick 是 QMT 中精度最高的行情数据,相比普通 K 线额外包含五档买卖盘口数据,主要用于高频策略、盘口策略开发。

Tick 数据完整字段表
字段名数据类型字段含义
timeint时间戳
stimestring时间戳字符串格式
lastPricefloat最新成交价
openfloat当日开盘价
highfloat当日最高价
lowfloat当日最低价
lastClosefloat前收盘价
amountfloat成交总额
volumeint成交总量(单位:手)
pvolumeint原始成交总量(未做股手转换,不推荐使用)
stockStatusint证券状态
openIntint股票场景为股票状态,期货等品种为持仓量
transactionNumfloat成交笔数(期货品种无,需单独计算)
lastSettlementPricefloat前结算价(股票品种无有效值)
settlementPricefloat今结算价(股票品种无有效值)
askPricelist[float]多档委卖价格
askVollist[int]多档委卖挂单量
bidPricelist[float]多档委买价格
bidVollist[int]多档委买挂单量
Tick 数据获取代码
# 下载指定标的、指定时间段的tick历史数据
download_history_data('159919.SZ', 'tick', '20240701', '20240701')

# 获取最新1条tick数据
data_tick = C.get_market_data_ex([], ['159919.SZ'], 'tick', count=1)
print("tick数据详情:\n", data_tick['159919.SZ'])

4.2 分钟线与日线数据

1 分钟、5 分钟、日线等标准 K 线周期为标准 OHLCV 结构,是技术类、量价类策略最常用的数据。

数据获取代码示例
# 下载历史数据
download_history_data('159919.SZ', '1m', '20240701', '20240701')
download_history_data('159919.SZ', '1d', '20240701', '20240701')

# 获取1分钟行情数据
data_1m = C.get_market_data_ex([], ['159919.SZ'], '1m', count=1)
print("1分钟数据:\n", data_1m['159919.SZ'])

# 获取日线行情数据
data_1d = C.get_market_data_ex([], ['159919.SZ'], '1d', count=1)
print("日线数据:\n", data_1d['159919.SZ'])

五、QMT 历史数据覆盖范围

迅投 QMT 的历史数据储备充足,能够满足绝大多数量化策略的回测需求:

  • tick 数据:覆盖 2018 年至今
  • 1 分钟、5 分钟、日线数据:全量历史数据

结语

Bar 数据是 QMT 量化开发的核心基石,理解其字段结构、周期合成逻辑与获取方式,是搭建稳定量化策略的前提。开发者可以根据自身策略的交易频率,选择对应周期的行情数据进行开发与回测。


风险提示:本文仅为量化工具功能介绍,不构成任何投资建议。市场有风险,投资需谨慎。

更多推荐