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

PTrade 算法交易:市价委托函数 order_market 的类型与保护限价使用指南

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

问题描述

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

Title: PTrade 算法交易:市价委托函数 order_market 的类型与保护限价使用

Question: PTrade 的 order_market 函数中不同 market_type 参数有什么区别?

解决方案

PTrade 算法交易:市价委托函数 order_market 的类型与保护限价使用

在 PTrade 量化交易平台中,order_market 接口用于以市价类型进行快速下单委托。市价委托能显著提高成交速度,但在不同交易所(沪市、深市、科创板)所支持的市价类型有所不同。


一、 order_market 接口语法与参数说明

order_market(security, amount, market_type, limit_price=None)

参数解析:

  1. security (str): 股票/标的代码(如 '600570.SS''000001.SZ')。
  2. amount (int): 交易数量。正数为买入,负数为卖出。
  3. market_type (int): 必填参数,市价委托类型编号。
  4. limit_price (float): 保护限价,仅在科创板标的下单时生效。

二、 market_type 参数枚举与区别

market_type 的取值范围为 05,不同市场(沪市主板、科创板、深市)支持的枚举类型区别如下:

market_type 值 市价委托类型名称 适用市场与板块 功能说明
0 对手方最优价格 沪市科创板、深市 以当前盘口对手方的最优价格(买入按卖一价,卖出按买一价)申报。
1 最优五档即时成交剩余转限价 沪市主板、沪市科创板 依次与对手方五个最优价格档位撮合,未成交部分自动转为限价单挂单。
2 本方最优价格 沪市科创板、深市 以当前盘口本方的最优价格(买入按买一价,卖出按卖一价)申报。
3 即时成交剩余撤销 深市 立即与对手方撮合,未成交的部分自动撤销
4 最优五档即时成交剩余撤销 沪市主板、沪市科创板、深市 依次与对手方五个最优价格档位撮合,未成交的部分自动撤销
5 全额成交或撤销 深市 必须一次性全额成交,若无法全额成交则整单立即撤销。

注意事项:

  1. market_type 为必传参数,未传会导致策略报错终止。
  2. order_market 不支持可转债交易。
  3. 支持逆回购交易(卖出方向,amount 为负数,且不少于 10 张)。

三、 科创板保护限价 (limit_price) 的使用说明

交易所对于科创板股票的市价申报引入了保护限价机制:

  • 买入时:买入申报价格不得高于保护限价。
  • 卖出时:卖出申报价格不得低于保护限价。

在调用 order_market 下单科创板标的时,通过传入 limit_price 即可实现保护限价控制,防止因盘口流动性不足产生极端滑点。


四、 策略代码示例

以下示例展示了如何在 PTrade 的 handle_data 盘中事件中使用 order_market 接口:

def initialize(context):
    # 设置交易标的(包含主板与科创板)
    g.security_main = '600570.SS'   # 恒生电子(主板)
    g.security_kc = '688001.SS'     # 华兴源创(科创板)
    set_universe([g.security_main, g.security_kc])

def handle_data(context, data):
    # 1. 主板股票:使用最优五档即时成交剩余撤销 (market_type=4)
    order_market(g.security_main, 100, market_type=4)
    
    # 2. 科创板股票:使用对手方最优价格 (market_type=0) 并设置保护限价 35.5 元
    order_market(g.security_kc, 100, market_type=0, limit_price=35.5)