🚀 AI 一键生成 qmt 策略代码

QMT 平台 get_market_data_ex 接口如何获取周线(1w)数据?

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

问题描述

请问xtdata.get_market_data_ex 这个可以用 period = '1w' 获取周线数据吗?

请问 xtdata.get_market_data_ex 这个可以用 period = '1w' 获取周线数据吗?

解决方案

在 QMT 平台的官方 API 文档中,关于 ContextInfo.get_market_data_ex 接口的 period 参数,明确列出的可选范围包括:

  • 'tick':分笔数据
  • '1m''5m''15m' 等分钟周期
  • '1d':日线数据
  • 'l2quoteaux':Level2 行情快照指标
  • 'l2transactioncount':Level2 大单统计

虽然文档在 get_market_data_ex 的说明中没有显式列出 '1w',但在 QMT 的整个数据体系中(例如 get_history_dataget_market_dataget_local_data 接口),'1w' 均被明确定义为周线数据的标准参数

因此,您可以直接在 get_market_data_ex 中尝试传入 period='1w' 来获取周线数据。如果该接口在特定版本中未返回预期结果,建议使用明确支持 '1w'get_history_dataget_market_data 接口作为替代方案。

替代方案示例:使用 get_history_data 获取周线

如果您需要获取周线数据,可以使用 get_history_data,该接口明确支持 '1w' 参数:

def init(ContextInfo):
    # 设定股票池
    ContextInfo.set_universe(['000300.SH'])

def handlebar(ContextInfo):
    # 获取最近 5 周的收盘价数据
    # 参数:长度, 周期, 字段
    weekly_data = ContextInfo.get_history_data(5, '1w', 'close')
    
    for stock, prices in weekly_data.items():
        print(f"{stock} 最近5周收盘价: {prices}")

总结

您可以尝试在 get_market_data_ex 中使用 period='1w',如果遇到兼容性问题,请切换至 get_history_data(len, '1w', field)get_market_data 来稳定获取周线行情。