3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在PTrade量化交易平台中,设置定时任务主要依赖于两个核心API函数:run_daily(按日周期指定时间执行)和run_interval(按设定时间间隔周期执行)。这两个函数都必须在策略的initialize(初始化)阶段进行调用。
run_daily 按日指定时间执行run_daily 用于以日为单位周期性运行指定函数,非常适合需要在每天特定时刻(如开盘、尾盘调仓、盘后数据处理)执行逻辑的策略。
run_daily(context, func, time='9:31')
context作为参数。00:00~23:59。def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 每天 14:50 执行尾盘买入逻辑
run_daily(context, tail_trade_logic, time='14:50')
def tail_trade_logic(context):
log.info("执行尾盘定时任务")
order(g.security, 100)
def handle_data(context, data):
pass
run_interval 按固定时间间隔执行(仅限交易环境)run_interval 用于以设定的时间间隔(单位为秒)周期性运行指定函数,适合高频监控或Tick级别的策略。
run_interval(context, func, seconds=10)
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 每隔 10 秒执行一次监控逻辑
run_interval(context, interval_monitor, seconds=10)
def interval_monitor(context):
snapshot = get_snapshot(g.security)
log.info("当前快照数据: %s" % snapshot)
def handle_data(context, data):
pass
initialize 函数中调用。run_daily 的 time 取值需在 09:31~11:30 与 13:00~15:00 之间;如果回测周期为日,无论设定多少都只会在 15:00 执行。实盘交易中不受此限制。