## 运行频率

PTrade 回测支持日线和分钟级别；交易环境还可能支持 Tick 级别。日线 `handle_data` 每个交易日运行一次，分钟级别按每根分钟 K 线结束触发。

## run_daily

`run_daily` 用于安排自定义函数在指定交易时间执行。不要用它再次注册 `before_trading_start` 或 `after_trading_end`，这两个生命周期函数由框架自动调用。

## run_interval

`run_interval` 属于交易环境能力，用于按间隔执行任务。不能因为 API 存在就假设回测支持。

## 选择方式

| 需求 | 推荐入口 | 适用说明 |
| --- | --- | --- |
| 每根 Bar 计算一次 | [`handle_data`](/docs/ptrade/api-reference/handle-data/) | 与策略日线或分钟频率同步 |
| 每个交易日固定时点 | [`run_daily`](/docs/ptrade/api-reference/run-daily/) | 在初始化阶段注册一次 |
| 交易任务按间隔执行 | [`run_interval`](/docs/ptrade/api-reference/run-interval/) | 先核对目标交易环境支持情况 |
| 实时 Tick 处理 | [`tick_data`](/docs/ptrade/api-reference/tick-data/) | 依赖对应行情和交易环境 |

不要在 `handle_data` 内重复调用 `run_daily` 或 `run_interval` 注册同一个任务，否则可能随 Bar 数量不断增加重复调度。

## 频率验收

日志应输出实际日期、时间和频率。策略含 09:40、14:55 等严格时点规则时，应使用能够表达该时点的分钟或交易环境，不应静默压缩成日线逻辑。
