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

PTrade量化策略中如果没有盘后逻辑,可以省略after_trading_end函数吗?

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

问题描述

PTrade中如果不需要盘后处理还需要定义after_trading_end函数吗?

没有盘后处理逻辑可以省略吗

解决方案

在 PTrade 量化平台中,如果您的策略不需要进行盘后处理,是完全可以省略 after_trading_end 函数的

官方文档依据

根据 PTrade API 文档的说明:

  1. 可选性after_trading_end 是一个可选的事件函数。文档明确指出:“该函数会在每天交易结束之后调用,用于处理每天收盘后的操作,如无盘后处理需求,该函数可以在策略中不做定义。”
  2. 必选结构:在 PTrade 的业务流程框架中,只有 initialize(初始化事件)和 handle_data(盘中事件)是一个允许运行策略的最基础结构,也就是必选项。而 before_trading_startafter_trading_end 都是可以按需运行的。

策略代码示例

如果您没有盘前和盘后的处理逻辑,一个最精简且完整的 PTrade 策略结构只需要包含以下两个函数即可:

def initialize(context):
    # 必选:初始化策略,设置股票池等
    g.security = '600570.SS'
    set_universe(g.security)

def handle_data(context, data):
    # 必选:盘中处理逻辑,执行交易等
    order(g.security, 100)

总结

为了保持代码的简洁性,如果您没有在每天 15:30(一般券商配置的盘后运行时间)执行特定任务(如打印全天交易总结、保存自定义的盘后数据、发送邮件通知等)的需求,请直接省略 after_trading_end 函数,这不会对您的策略运行产生任何负面影响。