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

QMT 智能算法交易:DMA 快捷拆单模式参数配置与实战指南

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

问题描述

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

Title: QMT 智能算法交易:DMA 快捷拆单模式参数配置与实战

Question: qmt 如何使用 smart_algo_passorder 实现 DMA 算法快速下单?

解决方案

QMT 智能算法交易:DMA 快捷拆单模式参数配置与实战

在 QMT(迅投量化/国信 QMT)平台中,smart_algo_passorder 函数提供了智能算法交易支持,能够实现如 DMA(Direct Market Access 快捷拆单)、VWAP、TWAP、冰山(ICEBERG)等多种智能算法下单,有效降低大单对市场的冲击成本并提升执行效率。


1. DMA 算法(快捷拆单)接口说明

smart_algo_passorder 的基本调用格式如下:

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

参数解析:

  • opType:操作类型。例如 23 代表股票买入,24 代表股票卖出,27 融资买入,28 融券卖出等。
  • orderType:下单方式。例如 1101 代表单股、单账号、普通、股/手方式下单。
  • accountid:资金账号。
  • orderCode:标的代码(如 '000001.SZ')。
  • prType:报价选价类型。5 为最新价,11 为指定价格(模型价),14 为对手价等。
  • modelprice:下单价格(当 prType11 时生效,其他填 -1 或价格)。
  • volume:下单数量(股/手/金额/比例)。
  • strategyName:自定义策略名称(不同于 passorder,此处不可缺省)。
  • quickTrade:快速交易触发标记。0 否,1 是(在最新 Bar/Tick 触发下单)。
  • userOrderId:投资备注 / 自定义委托 ID。
  • smartAlgoType:智能算法类型字符串。DMA 算法传入 'DMA'
  • limitOverRate:量比限制(0 - 100),控制委托占用市场成交量的最大比例。
  • minAmountPerOrder:单笔最小委托金额(0 - 100000),默认为 0。

2. DMA 快捷拆单模式代码示例

以下示例展示了如何在盘中触发时,利用 smart_algo_passorder 开启 DMA 快捷拆单买入股票:

#encoding:gbk

def init(ContextInfo):
    # 设置资金账号
    ContextInfo.accID = '6000000105'
    ContextInfo.set_account(ContextInfo.accID)
    ContextInfo.set_universe(['000001.SZ'])

def handlebar(ContextInfo):
    # 仅在最后一根 Bar(实时最新行情)上判定并执行算法下单
    if not ContextInfo.is_last_bar():
        return
    
    stock_code = '000001.SZ'
    
    # 使用 DMA 快捷拆单算法买入 50,000 股
    # 参数说明:
    # opType=23 (股票买入), orderType=1101 (单股股数模式)
    # prType=5 (最新价), modelprice=-1, volume=50000
    # strategyName='DMA_Strategy', quickTrade=1 (立即下单), userOrderId='dma_001'
    # smartAlgoType='DMA', limitOverRate=20 (量比20%), minAmountPerOrder=0
    smart_algo_passorder(
        23, 
        1101, 
        ContextInfo.accID, 
        stock_code, 
        5, 
        -1, 
        50000, 
        "DMA_Strategy", 
        1, 
        "dma_001", 
        "DMA", 
        20, 
        0, 
        ContextInfo
    )
    
    print(f"[DMA下单] 成功对 {stock_code} 发起 DMA 快捷拆单买入任务!")

3. 使用 DMA 算法的注意事项

  1. 实盘模式限制:智能算法交易(包括 DMA、VWAP 等)仅在实盘运行模式下生效,回测和模拟运行模式下无效。
  2. 必填参数:与普通 passorder 不同,smart_algo_passorder 中的 strategyNameuserOrderId 不能缺省。
  3. 账号绑定:策略启动时须在 init 函数中使用 ContextInfo.set_account() 绑定交易账号,以确保订单任务正常推送与执行。