🚀 AI 一键生成 qmt 策略代码

QMT港股通下单passorder参数怎么填?集合竞价prType用哪个?

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

问题描述

港股通下单passorder参数应该使用哪个?

passorder(
24, # opType: 卖出
1101, # orderType: 信用/普通
C.account_id,
00700.HGT,
11, # prType
order_price,
amount,
'',
2, # quickTrade: 2=Python
req_id,
C

盘中能卖出港股通了。想了解下,开盘和收盘集合竞价阶段,prType 是继续用 11 还是用其它?

解决方案

在 QMT 平台中进行港股通(沪港通/深港通)交易时,passorder 函数的参数设置与 A 股有所不同,特别是 prType(价格类型)参数。港交所对订单类型有严格的规定。

1. 港股通专属的 prType(价格类型)

根据 QMT API 文档的底层枚举定义,港股通有专属的价格类型代码:

  • 92:港股通竞价限价(At-auction Limit Order)
  • 93:港股通增强限价(Enhanced Limit Order)
  • 94:港股通零股限价(Special Limit Order for Odd Lots)

2. 针对不同交易时段的 prType 选择

你提到盘中使用了 11(指定价/模型价)能够成交,这可能是因为券商柜台或 QMT 底层做了一定的兼容转换。但为了确保交易的稳定性和合规性,强烈建议按照港交所的规则使用专属的 prType

A. 盘中持续交易阶段(09:30-12:00, 13:00-16:00)

  • 推荐使用:93(增强限价)
  • 说明:增强限价盘最多可同时与十条轮候队伍进行配对,是港股盘中交易最常用的订单类型。

B. 开盘集合竞价(09:00-09:20)与 收盘集合竞价(16:00-16:10)

  • 必须使用:92(竞价限价)
  • 说明:在港股的开市前时段和收市竞价交易时段,系统只接受竞价盘及竞价限价盘。如果你在这个阶段继续使用 1193,极大概率会被交易所拒单(废单)。

C. 碎股/零股卖出

  • 必须使用:94(零股限价)
  • 说明:港股通买入必须是整手,但因为分红等原因产生的零股(不足一手),卖出时必须使用零股限价盘。

3. 代码示例调整

为了让你的策略在全时段都能稳定运行,建议在代码中加入时间判断,动态传入 prType

import datetime

def handlebar(ContextInfo):
    # 获取当前时间
    now_time = datetime.datetime.now().strftime('%H%M')
    
    # 判断交易时段以确定 prType
    if ('0900' <= now_time <= '0920') or ('1600' <= now_time <= '1610'):
        # 集合竞价阶段:使用竞价限价
        pr_type = 92 
    else:
        # 盘中持续交易阶段:使用增强限价
        pr_type = 93 
        
    # 港股通卖出 opType 为 24 (买入为 23)
    passorder(
        24,                 # opType: 24=港股通卖出
        1101,               # orderType: 单股单账号普通
        ContextInfo.account_id,
        '00700.HK',         # 注意:港股通后缀通常为 .HK,具体请参考 QMT 市场代码表
        pr_type,            # 动态传入的价格类型
        order_price,        # 委托价格
        amount,             # 委托数量
        'HGT_Sell_Strategy',# strategyName
        2,                  # quickTrade
        req_id,             # userOrderId
        ContextInfo
    )

总结:盘中请改用 93,开盘和收盘集合竞价阶段必须使用 92