🚀 AI 一键生成 qmt 策略代码

QMT 的 get_instrumentdetail 接口是盘前更新吗?如何获取当日涨跌停价?

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

问题描述

get_instrument_detail是盘前更新吗?

请问这个接口的数据是当天开盘前更新吗?也就是能在盘前即能获取当日涨跌停价格?

解决方案

是的,可以在盘前获取到当日的涨跌停价格

在 QMT 平台中,对应的接口为 ContextInfo.get_instrumentdetail(stockcode)。该接口用于获取合约的详细静态信息。

1. 更新时间机制

QMT 的基础合约信息(包括昨收价、当日涨停价、当日跌停价等)通常在券商服务器完成日初清算和系统初始化后就会更新。这个时间点一般在交易日的早上 8:30 到 9:00 之间

因此,在 9:15 集合竞价开始之前,您完全可以通过该接口获取到当日准确的涨跌停价格,用于盘前的策略初始化或挂单逻辑。

2. 获取涨跌停价的字段

调用 ContextInfo.get_instrumentdetail(stockcode) 后,会返回一个字典,其中包含以下关键字段:

  • UpStopPrice:当日涨停价
  • DownStopPrice:当日跌停价
  • PreClose:前收盘价格(昨收)

3. 代码示例

您可以在策略中这样获取并使用盘前的涨跌停数据:

#coding:gbk

def init(ContextInfo):
    # 假设我们在盘前运行策略,获取平安银行的涨跌停价
    stock_code = '000001.SZ'
    
    # 获取合约详细信息
    detail_info = ContextInfo.get_instrumentdetail(stock_code)
    
    if detail_info:
        up_stop_price = detail_info.get('UpStopPrice', 0)
        down_stop_price = detail_info.get('DownStopPrice', 0)
        pre_close = detail_info.get('PreClose', 0)
        
        print(f"合约: {stock_code}")
        print(f"昨收价: {pre_close}")
        print(f"当日涨停价: {up_stop_price}")
        print(f"当日跌停价: {down_stop_price}")
    else:
        print(f"未能获取到 {stock_code} 的合约信息")

def handlebar(ContextInfo):
    pass

注意事项:

  • 确保您的 QMT 客户端在盘前已经正常登录并连接到行情服务器,以便同步最新的基础数据。
  • 如果是新上市的股票或恢复交易的股票,其涨跌停限制可能与普通股票不同,该接口返回的数据会由交易所规则和券商柜台数据同步决定。