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

miniQMT如何获取Level2逐笔数据与大单统计?(附API源码)

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

问题描述

minqmt是不是不能获取 到L2逐笔数据

好像没有方法能获取到吧,是不是只有投研有才

解决方案

miniQMT 是可以获取 Level-2 数据的,并非只有投研端才能获取。但是,获取 L2 数据有一个硬性前提:您的资金账号需要额外开通 Level-2 增强版权限

根据 QMT 官方 API 文档,平台提供了专门的接口来获取和订阅 Level-2 的行情快照和逐笔成交统计数据。如果您调用没有返回数据,通常是因为券商端没有为您开通 L2 权限。

获取 Level-2 数据的方法

在 QMT/miniQMT 中,主要通过以下两个函数来获取 L2 数据:

  1. ContextInfo.get_market_data_ex:用于主动拉取历史或最新的 L2 数据。
  2. ContextInfo.subscribe_quote:用于盘中实时订阅 L2 数据推送。

在调用时,需要将 period 参数设置为 L2 专属的周期标识:

  • 'l2quoteaux':Level2 行情快照指标
  • 'l2transactioncount':Level2 大单统计(逐笔成交统计)

示例代码:订阅 Level-2 逐笔大单统计

#coding:gbk

def init(ContextInfo):
    # 订阅平安银行的 Level2 大单统计数据
    # 注意:前提是账号已开通 Level-2 增强版权限
    ContextInfo.subscribe_quote('000001.SZ', period='l2transactioncount', dividend_type='none', callback=on_l2_quote)

def on_l2_quote(datas):
    # 回调函数,打印推送的 L2 数据
    print("收到 L2 数据推送:")
    print(datas)

def handlebar(ContextInfo):
    pass

示例代码:主动获取 Level-2 行情快照

#coding:gbk

def init(ContextInfo):
    pass

def handlebar(ContextInfo):
    if not ContextInfo.is_last_bar():
        return
    
    # 获取沪深300 ETF的 Level2 行情快照指标
    l2_data = ContextInfo.get_market_data_ex(
        fields=[], 
        stock_code=['510300.SH'], 
        period='l2quoteaux',
        start_time='', 
        end_time='', 
        count=1
    )
    print("L2 行情快照:", l2_data)

Level-2 数据包含哪些字段?

根据 QMT 附录文档,L2 数据包含非常丰富的逐笔和快照信息:

1. Level2 逐笔成交统计 (l2transactioncount) 包含:

  • bidNumber / offNumber:主买/主卖单总单数
  • bidMostVolmue / offMostVolmue:主买/主卖特大单成交量
  • ddx, ddy, ddz:大单动向、涨跌动因、大单差分
  • zjbyNetInflow:资金博弈净流入
  • 以及各类大、中、小单的成交量和成交额等。

2. Level2 行情快照指标 (l2quoteaux) 包含:

  • avgBidPrice / avgOffPrice:委买/委卖均价
  • totalBidQuantity / totalOffQuantity:委买/委卖总量
  • withdrawBidQuantity / withdrawOffQuantity:买入/卖出撤单总量
  • withdrawBidAmount / withdrawOffAmount:买入/卖出撤单总额

总结:miniQMT 完全支持 L2 数据的获取,您只需要联系您的开户券商,确认并开通“Level-2 增强版权限”即可使用上述代码获取逐笔及大单统计数据。