策略生命周期流程
AQE 持有一个 StrategyState,并按确定的顺序运行策略:
- 调用
on_start(ctx),执行一次性的启动逻辑。 - 调用
universe(ctx),执行静态或内联品种选择。 - 运行已注册的标的池模型,执行模块化品种选择。
- 为合并后的最终标的池加载资产元数据。
- 为每个可交易资产调用一次
init(ctx, asset)。 - 每根 K 线到来时,更新历史数据、计算指标,并运行 Alpha 模型、策略回调和信号处理器。
- 调用
on_teardown(ctx),执行停止时的清理逻辑。
生命周期逻辑块在生成的或内联的策略生命周期方法前后运行。标的池模型则为最终标的池提供品种代码。
当前回测流程
Section titled “当前回测流程”运行时回测流程遵循 StrategyState::run_backtest 的实现:
// 1. strategy.on_start(ctx)// 2. load_universe() -> strategy.universe() -> broker.get_ticker_info()// 3. alpha.start() per alpha// 4. load_init() -> OnInit lifecycle logic -> strategy.init per asset// 5. alpha.init(asset) per alpha per asset// 6. broker.load_backtest_data()// 7. loop: broker step -> on_bar() -> optional insight generation -> run_insight_pipeline()// 8. strategy.on_teardown(ctx)// 9. return BacktestResultsAQS 生成的项目遵循相同的运行时顺序。区别在于,AQS 会先从节点图生成部分策略方法体,然后由 AQE 执行策略。
