问题描述
解决方案
在PTrade量化交易平台中,策略的运行周期和执行时间有着明确的划分。合理利用这些周期和时间段,是编写稳定量化策略的基础。以下是详细的说明:
一、 策略运行周期
PTrade回测支持日线级别和分钟级别运行;交易环境则支持日线级别、分钟级别和tick级别运行。
1. 日线级别
当选择日线频率时,回测和交易都是每天运行一次。
- 回测环境:运行时间为每个交易日的 15:00。
- 交易环境:运行时间为尾盘固定时间(允许券商可配),默认为 14:50 分。
- 主要处理函数:
handle_data
2. 分钟级别
当选择分钟频率时,回测和交易都是每分钟运行一次。
- 运行时间:每根分钟K线结束时触发。
- 主要处理函数:
handle_data
3. Tick级别(仅限交易环境)
当选择tick频率时,交易最小频率可以达到极高的响应速度。
- 运行时间:最小频率可以达到 3秒 运行一次。
- 主要处理函数:
tick_data和run_interval
二、 策略运行时间段
根据交易日的不同阶段,PTrade将策略运行时间划分为盘前、盘中和盘后:
1. 盘前运行 (9:30 之前)
- 时间范围:9:30分钟之前为盘前运行时间。
- 支持的函数:
- 回测和交易环境均支持运行
before_trading_start函数(通常用于初始化每日数据)。 - 交易环境支持运行在
run_daily中指定交易时间(如time='09:15')运行的函数。
- 回测和交易环境均支持运行
2. 盘中运行 (9:30 ~ 15:00)
- 时间范围:9:31(回测) / 9:30(交易) ~ 15:00 分钟为盘中运行时间。
- 支持的函数:
- 回测和交易环境均支持运行
handle_data函数。 - 分钟级别回测和交易环境支持运行在
run_daily中指定交易时间(如time='14:30')运行的函数。 - 交易环境支持运行
run_interval函数和tick_data函数。
- 回测和交易环境均支持运行
3. 盘后运行 (15:00 之后)
- 时间范围:15:00 之后为盘后运行时间。
- 支持的函数:
- 回测和交易环境均支持运行
after_trading_end函数(该函数为定时运行,一般为15:30)。 - 15:00之后交易环境支持运行在
run_daily中指定交易时间(如time='15:10')运行的函数。
- 回测和交易环境均支持运行
总结:在编写PTrade策略时,开发者应根据策略的频率需求(如高频Tick策略或低频日线策略)选择合适的运行周期,并将初始化、核心交易逻辑和盘后清算分别放置在 before_trading_start、handle_data/tick_data 和 after_trading_end 中执行,以确保策略在正确的时机执行。