🚀 AI 一键生成 ptrade 策略代码

ptrade量化平台中一个策略可以同时执行多少个run_daily定时任务?

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

问题描述

ptrade一个策略里可以同时执行多少个run_daily?

/

解决方案

在 ptrade 量化平台中,一个策略里可以多次设定 run_daily 函数,以实现多个定时任务。官方 API 文档并没有对 run_daily 的具体数量设定硬性上限,您可以根据策略的实际需求配置多个不同的定时触发任务。

官方文档说明

根据 ptrade API 文档中关于 run_daily 的接口说明:

该函数可以多次设定,以实现多个定时任务。

示例代码

您可以在 initialize 函数中多次调用 run_daily,为不同的自定义函数指定不同的运行时间:

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 设定第一个定时任务:每天 9:31 执行获取财务数据
    run_daily(context, get_finance, time='9:31')
    
    # 设定第二个定时任务:每天 14:50 执行尾盘平仓逻辑
    run_daily(context, close_position, time='14:50')
    
    # 设定第三个定时任务:每天 10:00 执行特定监控
    run_daily(context, monitor_market, time='10:00')

def get_finance(context):
    log.info("执行早盘财务数据获取")

def close_position(context):
    log.info("执行尾盘平仓逻辑")

def monitor_market(context):
    log.info("执行盘中监控")

def handle_data(context, data):
    pass

使用注意事项

虽然可以设置多个 run_daily,但在使用时需要注意以下几点:

  1. 调用位置run_daily 函数只能在初始化阶段的 initialize 函数中调用
  2. 时间设置限制(回测 vs 交易)
    • 股票策略回测中:当回测周期为分钟时,time 的取值必须指定在 09:31~11:3013:00~15:00 之间;当回测周期为日线时,无论设定值是多少,都只会在 15:00 执行。
    • 实盘交易中:不受上述回测时间限制,可设置范围为 00:00~23:59
  3. 性能考量:虽然没有明确的数量限制,但设置过多的定时任务可能会增加系统的调度负担,建议根据实际业务逻辑合理规划,避免在同一时间点触发大量耗时操作。