🚀 AI 一键生成 qmt 策略代码
立即体验

QMT 平台如何使用 get_trading_dates 获取不同周期的 K 线交易日列表?

qmt | 发布时间: 2026/7/28
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: QMT API 教程:get_trading_dates 获取不同周期的 K 线交易日列表

Question: 如何在 QMT 中获取特定股票在指定时间段内的分钟级和日线级交易日列表?

解决方案

QMT API 教程:使用 get_trading_dates 获取不同周期的 K 线交易日列表

在编写量化交易策略时,经常需要获取指定标的(股票、期货、指数等)在历史区间内的交易日或时间戳列表,用以进行数据对齐、定时调仓或事件驱动运算。QMT 平台提供了 ContextInfo.get_trading_dates() 接口,能够灵活地返回多种周期下的 K 线时间序列。


1. get_trading_dates 接口语法与参数详解

接口用法

ContextInfo.get_trading_dates(stockcode, start_date, end_date, count, period)

参数说明

参数名 类型 是否必填 缺省值 说明
stockcode string '' (当前图代码) 标的代码,格式如 '600000.SH'
start_date string '' 开始时间,格式为 'YYYYMMDD''YYYYMMDDhhmmss',为空时不限制开始时间
end_date string 当前 bar 时间 结束时间,格式同上
count int 0 期望获取的 K 线个数(必须大于 0)。取包含 end_date 往前的 count 个 K 线;start_date 不为空,则优先使用时间区间,count 参数失效
period string - K 线周期类型:'1d'(日线)、'1m'(1分钟)、'5m'(5分钟)、'15m'(15分钟)、'30m'(30分钟)、'1h'(小时)、'1w'(周线)、'1mon'(月线) 等

返回值

  • 返回一个 list 列表。
  • period='1d' 时,返回元素格式为字符串 'YYYYMMDD'
  • period 为分钟或小时周期时,返回元素格式为字符串 'YYYYMMDDhhmmss'

2. 经典使用场景与示例代码

示例:获取浦发银行(600000.SH)日线及 5 分钟级别的交易时间列表

#encoding:gbk

def init(ContextInfo):
    # 设置调用的标的代码
    ContextInfo.stock = '600000.SH'

def handlebar(ContextInfo):
    # 只在最后一根Bar执行一次,避免重复打印
    if not ContextInfo.is_last_bar():
        return

    # 1. 获取指定时间段内的日线交易日列表
    daily_dates = ContextInfo.get_trading_dates(
        stockcode=ContextInfo.stock,
        start_date='20230101',
        end_date='20230110',
        count=1,
        period='1d'
    )
    print("2023-01-01 至 2023-01-10 日线交易日列表:", daily_dates)

    # 2. 获取截止当前Bar最新的往前10个5分钟K线时间戳
    m5_dates = ContextInfo.get_trading_dates(
        stockcode=ContextInfo.stock,
        start_date='',
        end_date='',
        count=10,
        period='5m'
    )
    print("最新10个5分钟K线时间列表:", m5_dates)

3. 注意事项与技巧

  1. 数据补充:调用该接口前,请确保已在 QMT 客户端通过【数据管理】补充了对应标的和周期的历史行情数据,否则可能返回空列表。
  2. 时间格式匹配:在传入 start_dateend_date 时,建议精确到年月日(如 '20230101'),如果需要获取分钟线,也可指定为 '20230101093000'
  3. 历史跨度计算:当配合交易策略回测时,利用 count 参数可快速获得基准调仓日,避免手动计算休市日及节假日。