PTrade中handle_data函数在什么时候会被调用?
问题描述
解决方案
在 PTrade 量化交易平台中,handle_data(context, data) 函数是处理策略交易逻辑的核心模块。它的具体调用时机取决于策略设定的运行周期频率(日线或分钟线)以及当前的运行环境(回测或实盘交易)。
具体调用规则如下:
1. 日线级别策略(每天运行一次)
- 回测场景:在每个交易日的 15:00 执行一次。
- 交易(实盘/模拟)场景:在每个交易日的尾盘固定时间执行一次,具体时间由券商实际配置决定(默认通常为 14:50)。
2. 分钟级别策略(每分钟运行一次)
- 回测场景:在交易日的 9:31 至 15:00 期间,每分钟(即每根分钟 K 线结束时)执行一次。
- 交易(实盘/模拟)场景:在交易日的 9:30 至 14:59 期间,每分钟执行一次。
⚠️ 重要注意事项
- 非交易日不执行:无论是在回测还是交易环境中,
handle_data函数都不会在非交易日(如周末、法定节假日)触发。 - Tick 级别处理:
handle_data仅满足日线和分钟级别的盘中处理。如果你的策略需要 Tick 级别(如每 3 秒一次)的盘中处理,则不能依赖handle_data,而需要使用tick_data或者run_interval函数来实现。
代码示例
def initialize(context):
# 初始化,设置股票池
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 该函数会根据设定的频率(日线/分钟线)被系统自动定时调用
# 在此编写买卖逻辑
order(g.security, 100)