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

ptrade 平台如何设置节假日跳过 before_trading_start 盘前函数?

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

问题描述

ptrade 策略调优:如何设置节假日不执行盘前处理?
如何在ptrade的set_parameters中设置让策略在节假日跳过before_trading_start函数?

解决方案

在 ptrade 量化交易平台中,默认情况下即使在节假日,系统也会在每天盘前执行 before_trading_start 函数。为了避免在非交易日(节假日)重复执行不必要的盘前初始化逻辑,您可以使用 set_parameters 接口进行配置。

1. 参数配置说明

在初始化函数 initialize 中,调用 set_parameters 并将 holiday_not_do_before 参数设置为 "1" 即可:

  • holiday_not_do_before:
    • "0":执行(默认缺省值)
    • "1":不执行(即节假日跳过 before_trading_start

2. 示例代码

以下是一个完整的策略配置示例:

def initialize(context):
    # 初始化策略股票池
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 设置节假日不执行 before_trading_start 盘前函数
    set_parameters(holiday_not_do_before="1")

def before_trading_start(context, data):
    # 该函数在交易日的 9:10(交易环境)或 8:30(回测环境)执行
    # 节假日时,由于设置了 holiday_not_do_before="1",此处的代码将不会被触发
    log.info("今天是交易日,开始执行盘前初始化逻辑...")

def handle_data(context, data):
    # 盘中交易逻辑
    pass

3. 注意事项

  • 设置位置set_parameters 推荐在 initialize(context) 函数中进行初始化设置。
  • 参数类型:请注意,set_parameters 传入的参数值必须是字符串格式(例如 "1" 而不是数字 1)。