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

qmt 智能算法进阶:设置 limitOverRate 控制大单成交量比

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

问题描述

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

Title: qmt 智能算法进阶:设置 `limitOverRate` 控制大单成交量比

Question: 在 qmt 中使用 smart_algo_passorder 下单时,如何限制委托的参与率和量比?

解决方案

qmt 智能算法进阶:设置 limitOverRate 控制大单成交量比

在执行大单交易或机构级调仓时,直接下单往往会对市场冲击过大导致不必要的滑点损失。QMT 平台提供了 smart_algo_passorder 智能算法交易函数,可以通过设置 limitOverRate 参数有效控制订单在市场中的成交量比例(量比/参与率)。


1. 核心接口说明:smart_algo_passorder

smart_algo_passorder 是 QMT 中用于执行智能算法(如 TWAP、VWAP、跟量 VP 等)的交易函数。

接口语法

smart_algo_passorder(opType, orderType, accountid, orderCode, prType, modelprice, volume, strategyName, quickTrade, userOrderId, smartAlgoType, limitOverRate, minAmountPerOrder, [targetPriceLevel], ContextInfo)

量比控制关键参数:limitOverRate

  • 含义:量比 / 市场参与率(限制算法委托成交量占市场总成交量的比例上限)。
  • 取值范围0 ~ 100 的整数,代表百分比 0% ~ 100%
  • 作用:例如设为 20,表示算法在拆单执行时,下单量不会超过市场同期总成交量的 20%,能有效降低大单对市场的冲击与影响。

2. 常用智能算法类型 (smartAlgoType)

  • TWAP:时间加权平均价格算法,按固定时间均匀拆单。
  • VWAP:成交量加权平均价格算法,依据预测的市场成交量分布比例拆单。
  • VP:跟量算法,严格按照实时市场成交量的设定比例(即 limitOverRate)跟随下单。
  • ICEBERG:冰山算法,隐藏真实大单,仅在盘口展示小额挂单。

3. 示例代码:使用 TWAP 算法并设置 20% 量比上限

以下示例展示了如何在 QMT 中针对股票 000001.SZ 发起一笔 50,000 股的买入任务,采用 TWAP 算法并将市场参与率/量比限制在 20% 以内:

#coding:gbk
import time

def init(ContextInfo):
    # 设定交易资金账号
    ContextInfo.set_account('600000105')

def handlebar(ContextInfo):
    # 仅在最后一根 Bar 上触发算法交易任务
    if not ContextInfo.is_last_bar():
        return
    
    account_id = '600000105'
    stock_code = '000001.SZ'
    
    # 参数定义
    opType = 23             # 23: 股票买入
    orderType = 1101        # 1101: 单股、单账号、普通、按股数下单
    prType = 5              # 5: 最新价
    price = -1              # 非指定价模式填 -1
    volume = 50000          # 买入总股数
    strategy_name = "TWAP_Algo"
    quickTrade = 1          # 1: 立即触发下单任务
    user_order_id = "remark_001"
    
    smartAlgoType = "TWAP"  # 使用 TWAP 算法
    limitOverRate = 20      # 设置量比上限为 20%
    minAmountPerOrder = 0   # 最小委托金额(0 表示不限制)
    
    # 调用智能算法下单函数
    smart_algo_passorder(
        opType, orderType, account_id, stock_code, 
        prType, price, volume, 
        strategy_name, quickTrade, user_order_id, 
        smartAlgoType, limitOverRate, minAmountPerOrder, 
        ContextInfo
    )
    print(f"已成功提交 {stock_code} 的 {smartAlgoType} 智能算法交易任务,量比限制:{limitOverRate}%")

4. 注意事项

  1. 适用场景limitOverRate 主要针对股票买卖及两融交易,网格算法等特定类型无需设置此项。
  2. 最小委托金额:可配合 minAmountPerOrder 参数使用,避免因量比控制导致拆单后的单笔委托金额过小而频繁废单。
  3. 算法时间区间控制:如需设置算法开始和截止时间,可在参数后追加 startTime(如 '09:30:00')与 endTime(如 '14:30:00')。