initialize模块的运行逻辑和日期计算问题
由bqvnp8tp创建,最终由bqvnp8tp 被浏览 1 用户
我在initialize模块初始化计数器(day_index),initialize模块逻辑如下
该计数器每天增加1,然后根据计数器取之执行不同股票的交易,用于测试平台交易逻辑;同时为了避免每天重复执行,对执行日期进行判断,第一次执行时日期更新为执行当天,然后第二次执行后因执行日期和当天日期相等,所以会跳过执行。代码逻辑如下:
在回测时该逻辑前5天每天都会执行交易,但是到了模拟交易,只会执行第一天交易(每天都执行第一天交易),导致交易计划之生成了第一天的,后续几天交易计划都是空。模拟盘中第二天执行日志如下;
这里有两个问题:
1、从日志看,似乎initialize模块每天都在执行,需要确认一下initialize模块是只在部署时执行一次,还是每天执行。如果是每天执行,类似这种计数器的逻辑该怎么实现
2、每日批量运行优势会到凌晨,比如本该6.17运行的日频任务,因为某些原因到了6.18的0点多或者1点多才运行,这个时候如何计算交易日历和日期判断,如下代码中的current_date取值是6.17还是6.18
if not is_trading_day(current_date, context): return
if context.last_exec_date == current_date_str: return
\