3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,before_trading_start 函数用于在每天开始交易前执行一些初始化操作(如获取盘前数据、更新股票池等)。该函数在回测环境和实盘(交易)环境中的执行时间有显著差异,具体如下:
在回测模块中,before_trading_start 函数会在每个回测交易日的 8:30 分准时执行。
在实盘交易模块中,执行时间相对复杂,分为以下两种情况:
由于实盘中首次开启交易时会立即执行该函数,如果你在 9:10 之前开启了交易策略,可能会遇到以下问题:
before_trading_start 内调用了实时行情接口(如 get_snapshot 等),可能会获取到错误或昨日的数据。time.sleep() 强制等待至 9:10 分之后再执行获取行情的逻辑。before_trading_start 中移出,改用 run_daily 函数,并指定在 9:15 或更晚的时间执行(例如 run_daily(context, func, time='09:15'))。总结来说,编写兼容回测与实盘的策略时,务必考虑到实盘中 before_trading_start 可能在行情未就绪时被触发的风险,做好相应的异常处理或逻辑后置。