QMT 量化交易实战:ETF 买卖与申赎 passorder 参数详解,opType 正确赋值避坑指南

一、前言

在量化交易领域,ETF 凭借资产配置灵活、交易成本低、透明度高的优势,是策略开发的主流标的。在迅投 QMT 系统中,passorder 是执行 ETF 下单的核心接口,但很多开发者在实际调用时,都会遇到 opType 参数赋值模糊的问题。

官方文档对该参数的说明界定不够清晰,若参数赋值错误,轻则订单失败、交易延迟,重则产生额外交易成本、影响投资组合整体收益。本文完整梳理 ETF 两类交易模式对应的 opType 取值规则,帮大家避开下单参数坑。

二、核心痛点:passorder 函数 opType 参数的歧义

passorder 是 QMT 实现证券交易的通用下单函数,其中 opType 字段用于指定交易操作类型。针对 ETF 品种,官方参数说明没有明确区分「二级市场买卖」与「一级市场申赎」两类完全不同的交易机制,导致开发者容易混淆参数取值。

参数错误的常见影响:

  • 订单直接拒单,交易指令无法正常执行
  • 误触发申赎指令,产生高额申赎费用
  • 实时策略下单延迟,错过交易窗口期

三、先搞懂:ETF 的两类交易模式与差异

要选对 opType 参数,首先要明确自身策略的交易场景。ETF 交易分为二级市场买卖一级市场申赎两种,机制、门槛、成本完全不同:

交易操作 市场层级 参与门槛 对应 ETF 品种 交易场所
二级市场买卖 交易所二级市场 普通投资者,低门槛 股票型 ETF、黄金 ETF、利率债 ETF 等场内可交易品种 交易所交易时段,实时价格撮合成交
一级市场申赎 基金一级市场 专业机构 / 高净值投资者,高门槛 联接基金等仅支持申赎的品种 基金公司 / 指定销售平台,按基金净值成交

两者核心区别:

  1. 交易机制:二级市场买卖规则与股票一致,实时撮合成交,流程简便高效;申赎以基金净值为成交基准,交易时间与流程相对复杂。
  2. 交易成本:买卖仅收取交易佣金;申赎可能产生申购费、赎回费及基金运作相关费用。
  3. 最小交易单位:买卖最小单位为 1 手(100 份);申赎最小单位通常为数十万份至上百万份,资金门槛极高。

四、passorder 函数 opType 参数取值对照表

明确交易模式后,即可对应匹配 opType 参数的正确取值。QMT 系统内 ETF 相关操作编码如下:

1. 二级市场买卖(最常用,普通量化策略适用)

适用于所有场内可交易 ETF,与股票、可转债交易共用同一套操作编码:

opType 取值 操作描述 适用品种范围
23 买入 股票、ETF、可转债买入;沪港通 / 深港通股票买入
24 卖出 股票、ETF、可转债卖出;沪港通 / 深港通股票卖出

2. 一级市场申赎(机构大额交易适用)

仅适用于支持申赎操作的 ETF 品种,普通个人量化策略极少使用:

opType 取值 操作描述 适用场景
60 申购 ETF 一级市场申购操作
61 赎回 ETF 一级市场赎回操作

五、参数赋值核心规则与避坑要点

  1. 按交易场景选参数 :绝大多数个人量化策略、日内 T0、波段策略做的都是 ETF 二级市场交易,直接使用 23(买入)/24(卖出) 即可,不要误用 60/61 申赎编码。
  2. 核对品种交易属性:下单前确认标的 ETF 是否支持场内买卖,避免对仅申赎品种下发买卖指令。
  3. 多品种通用逻辑:23/24 同时兼容股票、ETF、可转债,策略中做全品种适配时可复用该参数逻辑。

六、QMT ETF 数据支持说明

迅投 QMT 内置完整的场内基金数据体系,涵盖 ETF、LOF、分级基金、货币基金的全量行情与净值数据,可直接通过 API 获取。更详细的 ETF 数据字典与接口说明,可查阅迅投官方知识库的「场内基金」数据板块。

七、总结

  1. QMT 中 ETF 交易分为二级市场买卖一级市场申赎两类,对应 passorder 的 opType 参数完全不同。
  2. 普通量化交易 ETF 买卖,opType 统一填:买入 = 23,卖出 = 24,与股票、可转债规则一致。
  3. ETF 一级市场申购 = 60、赎回 = 61,仅适用于机构大额申赎场景,个人策略基本不会用到。
  4. 下单前确认标的交易属性,按实际交易场景选择参数,可有效避免订单失败与交易风险。

开发 ETF 量化策略时,建议先在模拟环境验证参数正确性,再切换实盘运行,最大程度规避参数类交易风险。