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

QMT 平台如何获取 Level-2 逐笔大单统计并构建主力动向指标?(附 Python 源码)

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

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: qmt Level-2 高频量化:利用 l2transactioncount 逐笔大单统计构建主力动向指标

Question: 如何通过 get_market_data_ex 获取 Level-2 的 l2transactioncount 数据并计算主力大单净买入量?

解决方案

在 QMT 量化平台中,借助 Level-2 增强版数据,开发者可以通过 ContextInfo.get_market_data_ex 接口获取 l2transactioncount 周期数据(逐笔成交统计数据)。通过分析主买/主卖的特大单与大单成交量及成交额,可以精确计算主力大单净买入量,进而构建主力动向指标。

1. Level-2 逐笔成交统计主要字段说明

获取 l2transactioncount 周期时,数据包含以下核心主力资金相关字段:

  • bidMostVolmue / bidBigVolmue:主买特大单/大单成交量
  • offMostVolmue / offBigVolmue:主卖特大单/大单成交量
  • bidMostAmount / bidBigAmount:主买特大单/大单成交额
  • offMostAmount / offBigAmount:主卖特大单/大单成交额
  • ddx:大单动向指标

2. 策略源码示例

以下示例展示了如何在 QMT 中获取实时 Level-2 逐笔大单统计,并计算主力大单净买入额:

#coding:gbk
import pandas as pd

def init(ContextInfo):
    # 设定订阅的股票列表
    ContextInfo.stock_list = ['600000.SH']
    ContextInfo.set_universe(ContextInfo.stock_list)

def handlebar(ContextInfo):
    if not ContextInfo.is_last_bar():
        return
    
    # 获取 Level-2 逐笔成交统计数据
    data_dict = ContextInfo.get_market_data_ex(
        fields=[], 
        stock_code=ContextInfo.stock_list, 
        period='l2transactioncount', 
        count=1, 
        subscribe=True
    )
    
    for stock in ContextInfo.stock_list:
        if stock in data_dict and not data_dict[stock].empty:
            df = data_dict[stock]
            
            # 获取最新的逐笔统计数据
            latest = df.iloc[-1]
            
            # 主力买入大单额 = 主买特大单成交额 + 主买大单成交额
            main_buy_amount = latest.get('bidMostAmount', 0) + latest.get('bidBigAmount', 0)
            
            # 主力卖出大单额 = 主卖特大单成交额 + 主卖大单成交额
            main_sell_amount = latest.get('offMostAmount', 0) + latest.get('offBigAmount', 0)
            
            # 主力大单净买入额(元)
            main_net_inflow = main_buy_amount - main_sell_amount
            
            print(f"[{latest.name}] 代码: {stock} | 主力买入额: {main_buy_amount:.2f} | 主力卖出额: {main_sell_amount:.2f} | 主力净流入: {main_net_inflow:.2f}")

3. 注意事项

  1. 权限要求l2transactioncount 数据需要开通 Level-2 增强版行情权限才能正常接收。
  2. 实时驱动:在实盘运行中,建议配合 ContextInfo.subscribe_quote 订阅数据推送,以便快速响应盘中主力资金的突发异动。