3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在我国 A 股市场,科创板和创业板支持盘后固定价交易,交易时间为每个交易日的 15:05 至 15:30。在 ptrade 平台中,普通交易接口(如 order)无法直接用于盘后固定价申报,必须使用专用的盘后固定价委托接口。
after_trading_orderafter_trading_order(security, amount, entrust_price)
security (str):股票代码(如科创板 '688500.SS' 或创业板 '300001.SZ')。amount (int):交易数量。正数表示买入,负数表示卖出。entrust_price (float):买卖限价(通常为当日收盘价)。order_id(订单编号字符串),若失败则返回 None。after_trading_cancel_orderafter_trading_cancel_order(order_param)
order_param 可以是 order_id 字符串或 Order 对象。以下是一个完整的 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
.SS(如 688001.SS),深圳证券交易所(创业板)后缀为 .SZ(如 300001.SZ)。after_trading_order 的价格需确保为 float 类型。