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

QMT 平台 smart_algo_passorder 函数如何设置 TWAP 算法执行时间区间?

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

问题描述

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

Title: QMT 智能算法:如何在 smart_algo_passorder 中设置 TWAP 时间区间?

Question: QMT 的 smart_algo_passorder 函数如何指定算法开始和截止执行的时间?

解决方案

QMT 智能算法:如何在 smart_algo_passorder 中设置 TWAP 时间区间?

在 QMT(迅投量化交易系统)中,smart_algo_passorder 提供了强大的智能算法交易能力(如 TWAP、VWAP、冰山算法等)。为了避免大单对市场的冲击,投资者常常需要限制算法交易的执行时间段。


一、时间参数说明

smart_algo_passorder 函数中,控制智能算法执行时间区间的参数为可选参数 startTimeendTime

  • startTime:智能算法开始时间,格式为 "HH:MM:SS"(如 "09:30:00")。若缺省,默认为 "09:30:00"
  • endTime:智能算法截止时间,格式为 "HH:MM:SS"(如 "14:30:00")。若缺省,默认为 "15:30:00"

二、smart_algo_passorder 参数列表

smart_algo_passorder 的完整参数签名如下:

smart_algo_passorder(opType, orderType, accountid, orderCode, prType, modelprice, volume, strategyName, quickTrade, userOrderId, smartAlgoType, limitOverRate, minAmountPerOrder, [targetPriceLevel], [startTime], [endTime], ContextInfo)
  • opType: 操作类型(如 23 表示股票买入,24 表示股票卖出)。
  • orderType: 下单方式(如 1101 表示单股/单账号/股手方式)。
  • accountid: 资金账号。
  • orderCode: 股票代码(如 '000001.SZ')。
  • prType: 选价类型(如 5 最新价,11 指定价)。
  • modelprice: 模型价格(配合 prType=11 使用,否则填 -1)。
  • volume: 下单数量(股/元/%)。
  • strategyName: 策略名称。
  • quickTrade: 触发模式(0 正常模式,1 快速交易)。
  • userOrderId: 投资备注。
  • smartAlgoType: 智能算法类型,TWAP 填 'TWAP'
  • limitOverRate: 参与量比(0-100,如 20 代表 20%)。
  • minAmountPerOrder: 最小委托金额(元)。
  • targetPriceLevel: 目标价格层级(仅冰山算法有效,可填 0)。
  • startTime: 开始执行时间(格式 "HH:MM:SS")。
  • endTime: 截止执行时间(格式 "HH:MM:SS")。

三、Python 代码示例

以下示例展示了如何在 QMT 中调用 TWAP 智能算法,并将算法执行时间限定在 09:30:0014:00:00 之间:

#encoding:gbk

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

def handlebar(ContextInfo):
    # 仅在最后一根 Bar 上触发,避免重复下任务
    if not ContextInfo.is_last_bar():
        return
    
    account = '600000105'
    stock_code = '000001.SZ'
    
    # 使用 TWAP 智能算法买入 50,000 股平安银行
    # 限制量比为 20%,最小委托金额 0,指定执行时间段为 09:30:00 至 14:00:00
    smart_algo_passorder(
        23,                     # opType: 股票买入
        1101,                   # orderType: 单股/单账号/按股数
        account,                # accountid: 资金账号
        stock_code,             # orderCode: 000001.SZ
        5,                      # prType: 最新价
        -1,                     # modelprice: 忽略
        50000,                  # volume: 50000股
        "TWAP_Strategy",        # strategyName: 策略名
        1,                      # quickTrade: 快速交易(盘中立即触发)
        "twap_order_01",        # userOrderId: 备注
        "TWAP",                 # smartAlgoType: TWAP 算法
        20,                     # limitOverRate: 20% 参与量比
        0,                      # minAmountPerOrder: 最小金额限制
        0,                      # targetPriceLevel: 冰山算法占位参数
        '09:30:00',             # startTime: 算法开始时间
        '14:00:00',             # endTime: 算法截止时间
        ContextInfo
    )

四、注意事项

  1. 盘中模式:设置时间区间时,请确保策略在实盘/模拟运行模式下运行,并在 quickTrade=1quickTrade=2 时有效触发。
  2. 时间格式:时间字符串必须严格遵循 'HH:MM:SS' 格式(必须带秒),例如 '10:30:00'
  3. 算法超时处理:若到达 endTime 后委托未完全成交,算法任务会自动停止,未成交部分将不会继续拆单发送。