PTrade 策略生命周期与运行时间

PTrade 以事件驱动方式运行策略。initializehandle_data 是最基础的必选函数,盘前与盘后函数按需定义。

initialize

策略启动时执行一次,用于设置股票池、参数、基准、费用和全局状态。

before_trading_start

每个交易日盘前执行。为兼容不同券商环境,建议写成 before_trading_start(context, data=None)

handle_data

盘中按策略频率触发。日线和分钟频率的实际时间以券商配置及回测环境为准。

after_trading_end

盘后执行,适合汇总日志和保存状态。建议定义为 after_trading_end(context, data=None)

调用顺序

启动 → initialize → 每日盘前 → handle_data → 每日盘后

回调职责对照

回调 典型用途 不适合放入的工作
initialize 初始化参数、股票池、基准和状态 每日重复执行的行情判断
before_trading_start 盘前更新股票池、重置日内标记 假设盘中实时行情已经就绪
handle_data 按策略频率读取数据、计算信号和执行风控 无条件重复注册定时任务
after_trading_end 汇总当日订单、成交、持仓和日志 依赖下一交易日数据的判断

验证实际顺序

在每个回调中输出日期、时间和回调名,至少跨两个交易日运行。若某个回调没有出现,应先检查策略频率、回测区间和函数签名,再检查业务逻辑。

PTrade 策略生命周期、行情驱动、定时任务及回报事件关系图
PTrade 生命周期、行情驱动、定时任务与委托成交事件关系。