🚀 AI 一键生成 qmt 策略代码

QMT/iQuant 平台使用 ContextInfo.get_full_tick 获取 Tick 成交量详解

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

问题描述

【done】iquant里面用ContextInfo.get_full_tick怎么获取到TICK的成交量

/

解决方案

在 QMT(iQuant)量化平台中,你可以使用 ContextInfo.get_full_tick() 函数来获取最新的分笔(Tick)数据。该函数会返回一个嵌套字典,其中包含了与成交量相关的字段。

1. 获取成交量的关键字段

根据 QMT API 文档,get_full_tick 返回的字典中,包含以下两个表示成交量的字段:

  • volume:成交总量(单位:手)
  • pvolume:成交总量(单位:股)

注意:这里获取到的是当日截止到当前 Tick 的累计成交总量。如果你需要计算单笔 Tick 的真实成交量,需要在策略中记录上一个 Tick 的 volume,然后用当前 volume 减去上一个 volume

2. Python 代码示例

以下是一个在 handlebar 中获取特定股票 Tick 成交量的完整示例:

#coding:gbk

def init(ContextInfo):
    # 初始化时可以设置需要订阅的股票池
    ContextInfo.set_universe(['000001.SZ', '600000.SH'])

def handlebar(ContextInfo):
    # 确保在最新的实时行情下运行
    if not ContextInfo.is_last_bar():
        return
    
    # 获取指定股票列表的最新 Tick 数据
    # 如果不传参数,默认获取当前主图合约的 Tick 数据
    tick_data = ContextInfo.get_full_tick(['000001.SZ', '600000.SH'])
    
    # 遍历获取到的 Tick 数据
    for stock_code, data in tick_data.items():
        # 获取成交总量(手)
        volume_shou = data.get('volume', 0)
        # 获取成交总量(股)
        volume_gu = data.get('pvolume', 0)
        # 获取最新价
        last_price = data.get('lastPrice', 0)
        
        print(f"代码: {stock_code}, 最新价: {last_price}, 累计成交量(手): {volume_shou}, 累计成交量(股): {volume_gu}")

3. 返回字典的完整结构参考

为了方便你获取其他 Tick 数据,get_full_tick 返回的内部字典(data)包含以下常用键值:

  • lastPrice: 最新价
  • amount: 成交额
  • volume: 成交总量(手)
  • pvolume: 成交总量(股)
  • openInt: 持仓量
  • stockStatus: 股票状态
  • lastSettlementPrice: 最新结算价
  • open: 开盘价
  • high: 最高价
  • low: 最低价
  • settlementPrice: 结算价
  • lastClose: 收盘价
  • askPrice: 列表, 卖价五档
  • bidPrice: 列表, 买价五档
  • askVol: 列表, 卖量五档
  • bidVol: 列表, 买量五档