PTrade策略的运行周期是如何设置的?
问题描述
解决方案
在PTrade量化交易平台中,策略的运行周期设置非常灵活,主要分为日线级别、分钟级别和Tick级别。不同的运行周期对应不同的触发机制和适用场景。
一、 策略运行频率分类
1. 日线级别(支持回测与交易)
当选择日线频率时,回测和交易都是每天运行一次。
- 回测环境:运行时间为每个交易日的 15:00。
- 交易环境:运行时间为尾盘固定时间(允许券商可配),默认为 14:50 分。
- 核心函数:主要通过
handle_data(context, data)方法处理逻辑。
2. 分钟级别(支持回测与交易)
当选择分钟频率时,回测和交易都是每分钟运行一次。
- 运行时间:每根分钟K线结束时触发。
- 核心函数:同样主要通过
handle_data(context, data)方法处理逻辑。
3. Tick级别(仅支持交易)
当选择Tick频率时,交易最小频率可以达到 3秒 运行一次,适用于高频交易策略。
- 核心函数:需要通过
tick_data(context, data)方法或run_interval(context, func, seconds)方法来实现。
二、 策略运行时间段划分
PTrade将一个交易日划分为盘前、盘中和盘后三个阶段,不同阶段支持运行不同的函数:
1. 盘前运行 (9:30 之前)
- 回测与交易:支持运行
before_trading_start(context, data)函数,用于盘前初始化、获取昨日收盘数据等。 - 交易环境:支持运行在
run_daily中指定交易时间(如time='09:15')的函数。
2. 盘中运行 (9:31(回测)/9:30(交易) ~ 15:00)
- 回测与交易:支持运行
handle_data(context, data)函数处理日线或分钟级别的行情。 - 回测与交易:支持运行在
run_daily中指定交易时间(如time='14:30')的函数。 - 交易环境:支持运行
run_interval函数(按秒间隔执行)和tick_data函数(处理Tick行情)。
3. 盘后运行 (15:00 之后)
- 回测与交易:支持运行
after_trading_end(context, data)函数(通常在15:30定时运行),用于盘后数据处理、对账或日志记录。 - 交易环境:支持运行在
run_daily中指定交易时间(如time='15:10')的函数。
三、 总结与建议
- 低频策略(如选股、调仓):建议使用日线级别,在
handle_data中编写逻辑。 - 中频策略(如日内择时、网格交易):建议使用分钟级别,在
handle_data中编写逻辑。 - 高频策略(如盘口微观结构分析、算法交易):必须在交易环境下使用Tick级别,通过
tick_data或run_interval配合order_tick等高频下单接口实现。