🚀 AI 一键生成 qmt 策略代码
立即体验

QMT平台如何获取内外盘成交量?利用get_svol与get_bvol计算主动买卖比(附Python源码)

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

问题描述

qmt 量价指标:利用 get_svol 与 get_bvol 计算内外盘主动买卖比例
请问在 qmt 中怎么获取股票的内盘成交量和外盘成交量?

解决方案

QMT平台如何获取内外盘成交量?利用get_svol与get_bvol计算主动买卖比

在股票交易中,内盘(主动卖盘)和外盘(主动买盘)是衡量多空双方力量对比的重要量价指标。在国信证券QMT量化交易平台中,我们可以通过内置的 ContextInfo.get_svol()ContextInfo.get_bvol() 接口,非常方便地获取个股的内盘和外盘成交量,进而计算出主动买卖比例,辅助我们的量化交易决策。


1. QMT 内外盘获取接口介绍

QMT 提供了两个专门用于获取内外盘数据的 API 函数:

(1)获取内盘成交量:ContextInfo.get_svol()

  • 用法ContextInfo.get_svol(stockcode)
  • 释义:根据代码获取对应股票的内盘成交量(主动卖单成交量)。
  • 参数stockcode(股票代码,如 '000001.SZ',缺省时默认为当前主图代码)。
  • 返回string 类型的数值。

(2)获取外盘成交量:ContextInfo.get_bvol()

  • 用法ContextInfo.get_bvol(stockcode)
  • 释义:根据代码获取对应股票的外盘成交量(主动买单成交量)。
  • 参数stockcode(股票代码,如 '000001.SZ',缺省时默认为当前主图代码)。
  • 返回string 类型的数值。

注意:由于接口返回的是 string 类型,在进行数学计算(如加减乘除)前,需要先将其转换为数值类型(如 floatint)。


2. 策略示例:计算主动买盘比例

下面是一个完整的 QMT Python 策略示例。该策略在 handlebar 驱动中实时获取当前主图股票的内外盘数据,并计算出主动买盘占比(外盘 / 总成交量),当主动买盘占比超过 60% 时,在控制台打印提示。

#coding:gbk

def init(ContextInfo):
    # 初始化策略,设置基准和股票池
    pass

def handlebar(ContextInfo):
    # 获取当前主图股票代码
    stock_code = ContextInfo.stockcode
    
    # 获取内盘成交量(主动卖盘)和外盘成交量(主动买盘)
    svol_str = ContextInfo.get_svol(stock_code)
    bvol_str = ContextInfo.get_bvol(stock_code)
    
    # 转换数据类型
    try:
        svol = float(svol_str) if svol_str else 0.0
        bvol = float(bvol_str) if bvol_str else 0.0
    except ValueError:
        # 避免转换异常
        return
    
    total_vol = svol + bvol
    
    if total_vol > 0:
        # 计算主动买盘(外盘)占比
        active_buy_ratio = bvol / total_vol
        
        # 打印当前内外盘及比例
        print(f"股票: {stock_code} | 内盘(SVOL): {svol} | 外盘(BVOL): {bvol} | 主动买盘占比: {active_buy_ratio:.2%}")
        
        # 简单信号判定:如果主动买盘占比大于 60%,视为多头强势
        if active_buy_ratio > 0.6:
            print(f">>> 信号提示:{stock_code} 主动买盘强劲,占比达 {active_buy_ratio:.2%}")
    else:
        print(f"{stock_code} 当前无成交量数据")

3. 常见问题与注意事项

  1. 数据返回为空或为0:在非交易时间或个股停牌期间,get_svolget_bvol 可能会返回空字符串 '''0'。在策略中进行类型转换时,务必做好异常处理(如 try...except),防止策略因数据缺失而中断。
  2. 数据单位:内外盘成交量通常与行情软件展示的股数或手数量级一致,计算比例时由于分子分母单位相同,直接相除即可得到准确的比例关系。
  3. 实盘与回测:内外盘数据属于 Tick 级盘口统计指标,在实盘/模拟盘实时行情中驱动最为精准。回测模式下,其表现取决于历史 Tick 数据的完整度,建议在补充完历史 Tick 数据后再进行高频或量价回测。