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

PTrade 盘后交易教程:如何使用 after_trading_cancel_order 进行盘后固定价撤单?

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

问题描述



Title: PTrade 盘后交易教程:如何使用 after_trading_cancel_order 进行盘后固定价撤单?

Question: 在 PTrade 中提交盘后固定价委托后,如何使用 after_trading_cancel_order 撤销未成交订单?

解决方案

PTrade 盘后交易教程:如何使用 after_trading_cancel_order 进行盘后固定价撤单?

在 PTrade 平台中,盘后固定价交易允许投资者在收盘后按当日收盘价进行委托申报。如果在盘后交易时间段内需要取消已提交但未成交的盘后固定价订单,可以使用 after_trading_cancel_order 接口。


1. 函数 API 规范

after_trading_cancel_order(order_param)

  • 使用场景:仅支持 PTrade 客户端可用、仅在股票交易模块可用。
  • 功能说明:用于盘后固定价委托取消订单,可传入 Order 对象或委托订单号 order_id 进行撤单。
  • 参数说明
    • order_param (Order / str):必填,订单对象(Order)或者订单 ID 字符串(order_id)。
  • 返回值None

2. 完整 Python 代码示例

以下示例展示了如何在 15:00~15:30 盘后固定价交易时间段内,先使用 after_trading_order 进行盘后固定价申报,随后使用 after_trading_cancel_order 撤销该笔委托:

import time

def initialize(context):
    # 设置目标交易标的(如创业板股票 300001.SZ)
    g.security = "300001.SZ"
    set_universe(g.security)
    
    # 使用 run_daily 在盘后固定价交易时段(如 15:15)定时触发
    run_daily(context, order_test, time="15:15")
    g.flag = False

def order_test(context):
    # 获取当前标的快照行情以取得最新收盘价
    snapshot = get_snapshot(g.security)
    if snapshot is not None:
        last_px = snapshot[g.security].get("last_px", 0)
        if last_px > 0:
            # 1. 提交盘后固定价买入委托(买入 200 股)
            order_id = after_trading_order(g.security, 200, float(last_px))
            log.info("盘后固定价委托提交成功,订单ID: %s" % order_id)
            
            # 等待 5 秒(仅作演示,实际策略中可根据订单状态判断)
            time.sleep(5)
            
            # 2. 调用撤单接口撤销该笔盘后委托
            after_trading_cancel_order(order_id)
            log.info("已发送盘后固定价撤单请求,订单ID: %s" % order_id)

def handle_data(context, data):
    pass

3. 注意事项

  1. 交易时间限制:盘后固定价申报和撤单通常在 15:00~15:30(实际委托申报可提前至 09:30~11:30, 13:00~15:30,撮合集中在收盘后)。
  2. 适用标的范围:盘后固定价交易主要适用于科创板与创业板等支持盘后固定价交易机制的股票标的。
  3. 撤单参数类型order_param 既可直接传入下单接口 after_trading_order 返回的字符串 ID,也可以传入包含订单信息的 Order 对象。