3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
get_trading_dates 获取不同周期的 K 线交易日列表在编写量化交易策略时,经常需要获取指定标的(股票、期货、指数等)在历史区间内的交易日或时间戳列表,用以进行数据对齐、定时调仓或事件驱动运算。QMT 平台提供了 ContextInfo.get_trading_dates() 接口,能够灵活地返回多种周期下的 K 线时间序列。
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'。#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)
start_date 与 end_date 时,建议精确到年月日(如 '20230101'),如果需要获取分钟线,也可指定为 '20230101093000'。count 参数可快速获得基准调仓日,避免手动计算休市日及节假日。