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

PTrade量化平台回测时handle_data函数执行频率如何设置?

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

问题描述

PTrade策略回测时handle_data函数执行频率如何设置?

解决方案

在PTrade量化交易平台中,handle_data(context, data) 是处理策略交易逻辑的核心盘中事件函数。它的执行频率并不是在代码内部直接通过函数参数设置的,而是由您在创建回测任务或实盘交易时,在平台界面上选择的“策略运行周期(频率)”来决定的

根据PTrade API文档,handle_data 的执行频率主要分为以下两种级别:

1. 日线级别(Daily)

当您在回测配置中选择日线频率时:

  • 执行频率:每天执行一次。
  • 回测环境运行时间:每个交易日的 15:00 触发执行。
  • 交易环境运行时间:尾盘固定时间(允许券商可配),默认为 14:50 分。

2. 分钟级别(Minute)

当您在回测配置中选择分钟频率时:

  • 执行频率:每分钟执行一次。
  • 回测环境运行时间:每个交易日的 9:31 到 15:00,在每根分钟K线结束时触发。
  • 交易环境运行时间:每个交易日的 9:30 到 14:59

💡 补充说明:Tick级别策略

需要注意的是,handle_data 函数仅满足日线和分钟级别的盘中处理。如果您需要运行Tick级别(如每3秒执行一次)的高频策略,不能依赖 handle_data,而应该使用 tick_data(context, data) 函数或者通过 run_interval 定时任务来实现。

代码示例

无论您在界面上选择的是日线还是分钟线,代码的基础结构是一致的:

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

def handle_data(context, data):
    # 这里的代码将根据您在界面设置的频率(日线或分钟线)被周期性调用
    # 获取当前价格
    current_price = data[g.security]['close']
    log.info('当前价格为: %s' % current_price)
    
    # 简单的买入逻辑
    if context.portfolio.cash > current_price * 100:
        order(g.security, 100)

总结:要设置 handle_data 的执行频率,请在PTrade平台的回测参数设置页面,找到“运行频率”或“回测周期”选项,将其设置为“日线”或“分钟”即可。框架会自动按照对应的频率在交易时间内回调该函数。