🚀 AI 一键生成 qmt 策略代码

QMT中xtdata没有get_svol方法?教你正确获取内外盘数据

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

问题描述

xtdata模块中有.get_svol()方法吗?

大佬:

xtdata 模块中有.get_svol()方法吗?错误提示是没有这个方法。

那么要在原生 python 中获取外盘(买盘)数据如何解决?

谢谢!!

解决方案

根据 QMT 官方 API 文档,获取内盘和外盘数据的方法是绑定在策略运行环境对象 ContextInfo 上的,而不是直接在 xtdata 模块中调用。这就是为什么您在原生 Python 中直接调用 xtdata.get_svol() 会提示没有该方法的原因。

在 QMT 平台的 Python 策略中,您应该使用以下两个方法来获取内外盘数据:

1. 获取内盘(卖盘)成交量

用法: ContextInfo.get_svol(stockcode)
释义: 根据代码获取对应股票的内盘成交量。

2. 获取外盘(买盘)成交量

用法: ContextInfo.get_bvol(stockcode)
释义: 根据代码获取对应股票的外盘成交量。

示例代码

您需要在 QMT 的策略编辑器中,通过 handlebar 函数的 ContextInfo 参数来调用它们:

#coding:gbk

def init(ContextInfo):
    # 初始化股票池,例如平安银行
    ContextInfo.set_universe(['000001.SZ'])

def handlebar(ContextInfo):
    # 获取当前主图股票代码
    stockcode = '000001.SZ'
    
    # 获取内盘成交量(卖盘)
    svol = ContextInfo.get_svol(stockcode)
    print(f"{stockcode} 的内盘成交量为: {svol}")
    
    # 获取外盘成交量(买盘)
    bvol = ContextInfo.get_bvol(stockcode)
    print(f"{stockcode} 的外盘成交量为: {bvol}")

补充说明

如果您必须在脱离 QMT 客户端的原生 Python 环境中获取买卖盘相关数据,可以通过获取最新的分笔数据(Tick)来间接分析买卖盘力量:
使用 ContextInfo.get_full_tick(stock_code) 可以获取包含 askVol(卖量五档)和 bidVol(买量五档)的字典数据,从而辅助判断买卖盘情况。