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

ptrade 怎么在 15:05 之后下科创板的盘后固定价限价委托单?(附 Python 源码)

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

问题描述

ptrade 科创板/创业板盘后固定价交易策略开发指南
ptrade 怎么在 15:05 之后下科创板的盘后固定价限价委托单?

解决方案

ptrade 科创板/创业板盘后固定价交易实现指南

在我国 A 股市场,科创板和创业板支持盘后固定价交易,交易时间为每个交易日的 15:05 至 15:30。在 ptrade 平台中,普通交易接口(如 order)无法直接用于盘后固定价申报,必须使用专用的盘后固定价委托接口。


一、核心 API 介绍

1. 盘后固定价委托:after_trading_order

  • 使用场景:仅支持 PTrade 客户端可用、仅在股票交易模块可用。
  • 委托时间:9:30 ~ 11:30,13:00 ~ 15:30(15:00 之前申报的单子会在 15:05 开始撮合)。
  • 接口定义
    after_trading_order(security, amount, entrust_price)
    
  • 参数说明
    • security (str):股票代码(如科创板 '688500.SS' 或创业板 '300001.SZ')。
    • amount (int):交易数量。正数表示买入,负数表示卖出
    • entrust_price (float):买卖限价(通常为当日收盘价)。
  • 返回值:返回 order_id(订单编号字符串),若失败则返回 None

2. 盘后固定价撤单:after_trading_cancel_order

  • 接口定义
    after_trading_cancel_order(order_param)
    
  • 参数说明order_param 可以是 order_id 字符串或 Order 对象。

二、15:05 盘后定时委托策略源码

以下是一个完整的 ptrade 策略示例。策略在每日 15:05 触发定时任务,获取目标科创板/创业板股票的当日收盘价(最新价),并以该价格进行盘后固定价买入委托。

# -*- coding: utf-8 -*-

def initialize(context):
    # 1. 设置目标股票池(科创板或创业板股票)
    g.security = '300001.SZ'  # 创业板标的示例
    set_universe(g.security)
    
    # 2. 注册定时任务:在每日 15:05 运行盘后固定价委托函数
    run_daily(context, after_hour_trading_func, time='15:05')
    
    # 标记当日是否已委托
    g.has_ordered = False

def before_trading_start(context, data):
    # 每日盘前重置委托标记
    g.has_ordered = False

def after_hour_trading_func(context):
    """盘后固定价委托执行函数"""
    if g.has_ordered:
        return
        
    # 获取目标股票的最新行情快照(此时 15:00 已收盘,最新价即为收盘价)
    snapshot = get_snapshot(g.security)
    
    if snapshot and g.security in snapshot:
        close_price = snapshot[g.security].get('last_px', 0)
        
        if close_price > 0:
            # 设定买入数量,例如 200 股
            buy_amount = 200 
            
            log.info("正在下达盘后固定价委托:代码 %s, 数量 %d, 价格 %s" % (g.security, buy_amount, close_price))
            
            # 调用盘后固定价专用委托接口
            order_id = after_trading_order(g.security, buy_amount, float(close_price))
            
            if order_id:
                log.info("盘后固定价委托成功,订单号: %s" % order_id)
                g.has_ordered = True
            else:
                log.error("盘后固定价委托失败!")
        else:
            log.warning("未能获取到有效的收盘价格!")
    else:
        log.warning("获取行情快照失败!")

def handle_data(context, data):
    # 盘中常规逻辑(本策略主要在 15:05 定时触发,此处留空)
    pass

三、开发注意事项

  1. 代码后缀兼容:请确保传入的代码后缀正确。上海证券交易所(科创板)后缀为 .SS(如 688001.SS),深圳证券交易所(创业板)后缀为 .SZ(如 300001.SZ)。
  2. 价格精度:股票价格精度为小数点后两位,传入 after_trading_order 的价格需确保为 float 类型。
  3. 资金与持仓限制:盘后固定价买入同样受可用资金限制,卖出受可用持仓限制。申报前请确保账户有足够的可用资金或证券。