3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
可以删除,不需要一直保留。
initialize 的单次执行特性:
在 JoinQuant 的模拟交易生命周期中,initialize(context) 函数只会在模拟盘创建时执行一次。即使你后续替换了代码,initialize 也绝对不会再次执行。
状态的持久化保存:
模拟盘在每天运行结束后会保存当前的状态(包括 g 对象中的全局变量、定时运行任务 run_daily 等)。第二天恢复时,是基于前一天保存的状态继续运行的。
after_code_changed 的触发机制:
当模拟盘在第二天开盘恢复时,如果系统检测到你的策略代码发生了修改,并且代码中定义了 after_code_changed 函数,系统就会执行一次这个函数。
当你通过 after_code_changed 执行了 unschedule_all() 并重新设定了定时任务,或者修改了 g.xxx 的值,这些修改后的状态在当天运行结束后就会被系统持久化保存下来。
因此,只要这些修改已经生效并被保存,后续你再次替换代码时,只要不需要进行新的状态修改,你完全可以把 after_code_changed 函数删除,或者将其内容清空(写个 pass)。系统会继续按照你之前修改过并保存下来的状态(新的定时任务、新的全局变量值)继续运行。
最佳实践建议:
为了保持代码整洁,在确认 after_code_changed 已经成功执行并修正了模拟盘状态后,在下一次更新策略逻辑时,可以直接将该函数移除。