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

ptrade 平台如何实现盘后固定价委托与撤单?(附 Python 实战代码)

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

问题描述

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

Title: ptrade 盘后交易实战:盘后固定价委托与撤单实现

Question: ptrade 如何使用 after_trading_order 和 after_trading_cancel_order 进行科创板或创业板盘后交易?

解决方案

ptrade 盘后固定价委托与撤单实现指南

在 A 股市场中,科创板(688开头的股票)与创业板(300开头的股票)支持盘后固定价格交易。ptrade 提供了专属的 API 接口 after_trading_orderafter_trading_cancel_order 来满足盘后交易需求。


一、盘后交易基本规则与 API 接口说明

1. 盘后交易规则要点

  • 申报时间:9:30 - 11:30,13:00 - 15:30(具体成交在盘后 15:05 - 15:30 撮合)。
  • 交易价格:以收盘价(或固定价格)申报。

2. API 接口详解

(1) 盘后固定价委托:after_trading_order

after_trading_order(security, amount, entrust_price)
  • security (str): 股票代码,如 '300001.SZ'
  • amount (int): 委托数量,正数为买入,负数为卖出。
  • entrust_price (float): 委托价格(必填)。
  • 返回值: 订单 ID (order_id),若失败则返回 None

(2) 盘后固定价撤单:after_trading_cancel_order

after_trading_cancel_order(order_param)
  • order_param (Order/str): Order 对象或 order_id

二、完整 Python 策略代码示例

以下策略展示了如何在盘后阶段(15:00 - 15:30)通过定时任务获取收盘价并进行盘后固定价委托及撤单操作:

import time

def initialize(context):
    # 设置标的为创业板股票
    g.security = "300001.SZ"
    set_universe(g.security)
    
    # 设定在 15:15 触发盘后交易逻辑
    run_daily(context, order_test, time="15:15")
    g.flag = False

def order_test(context):
    # 1. 获取行情快照以拿到最新收盘价
    snapshot = get_snapshot(g.security)
    if snapshot and g.security in snapshot:
        last_px = snapshot[g.security].get("last_px", 0)
        if last_px > 0:
            # 2. 盘后固定价委托买入 200 股
            order_id = after_trading_order(g.security, 200, float(last_px))
            log.info("盘后委托已提交,订单ID: %s" % order_id)
            
            # 3. 模拟等待后撤单(根据策略需求操作)
            time.sleep(5)
            if order_id:
                after_trading_cancel_order(order_id)
                log.info("已发送撤单申请,订单ID: %s" % order_id)

def handle_data(context, data):
    pass

三、注意事项

  1. 客户端环境要求after_trading_orderafter_trading_cancel_order 接口仅支持在 Ptrade 客户端交易模块 中运行,回测环境不可用。
  2. 价格限制entrust_price 为必传参数,通常需传入当日收盘价格,限制精度的股票请按小数点后两位传入。
  3. 防重复请求:在实盘策略中,使用 after_trading_order 报单后,建议记录订单状态或设置标志位,避免在循环或回调中重复下单。