GitHub
497ac21e5a
fix: 策略库「重跑到今天」补齐组合分析 — 多策略组合级WF/一条龙/AI解读
策略库(/strategies)多策略组合卡片此前只有主回测:本轮把 v1.31.0
的组合分析链路延伸到多策略组合(N 策略 × 各自原标的):
- walkforward:组合 WF 泛化为槽位模型(_ComboSlot/_ComboWalkForwardBase),
PortfolioWalkForwardEngine 行为不变;新增 MultiStrategyWalkForwardEngine
(N 个策略各跑各自原标的,key 形如 label@symbol),复用切窗语义与
WalkForwardResult 结构(前端 WalkForwardPanel 直接渲染)
- benchmark:新增 evaluate_multi 一条龙(MultiStrategyEngine 回测 + 多策略
组合 WF + 逐槽位三段体检多数口径聚合 + 综合评分 + 组合评级 + 各槽位标的
等权买入持有基准对比),报告结构与单标的 evaluate_strategy 同构
- Web:新增 POST /backtest/multi-strategy/wf/run/async 与
/backtest/multi-strategy/evaluate/run/async;多策略组合回测响应附带
grade/score(与单标的/多标的组合响应同构)
- 前端 StrategiesView:组合结果区新增「WF 样本外验证 / 一条龙评估 / AI 解读」
按钮与同构面板(按需触发,复用最近一次组合回测的 items/cash);
绩效指标表补齐 v1.28 深度 6 项(SQN/最大连胜连亏/Ulcer/VaR/CVaR);
aiPrompt 新增 multi 模式(策略明细语境 + 槽位表现段)
- 测试:多策略 WF 引擎 3 例、evaluate_multi 3 例、新端点 Web 级 2 例、
aiPrompt multi 模式 1 例(pytest 1611 绿、node --test 5/5、E2E 9/9)
2026-09-03 23:54:29 +08:00
..
2026-04-11 19:55:19 +08:00
2026-08-26 15:00:53 +08:00
2026-09-02 20:23:27 +08:00
2026-05-22 22:44:45 +08:00
2026-06-12 21:10:50 +08:00
2026-06-09 18:15:37 +08:00
2026-06-10 15:03:41 +08:00
2026-09-03 03:07:57 +08:00
2026-07-04 00:08:38 +08:00
2026-06-12 20:59:59 +08:00
2026-09-01 22:16:44 +08:00
2026-09-03 23:54:29 +08:00
2026-07-04 00:08:38 +08:00
2026-07-09 20:34:23 +08:00
2026-07-10 15:17:00 +08:00
2026-09-01 22:17:57 +08:00
2026-06-12 20:47:03 +08:00
2026-07-09 20:16:12 +08:00
2026-06-09 16:43:44 +08:00
2026-09-01 22:17:08 +08:00
2026-09-02 20:19:17 +08:00
2026-09-02 17:12:00 +08:00
2026-05-22 04:19:07 +08:00
2026-06-11 22:56:23 +08:00
2026-08-26 15:21:35 +08:00
2026-09-02 20:54:59 +08:00
2026-06-10 15:03:41 +08:00
2026-06-11 02:25:42 +08:00
2026-06-17 18:17:32 +08:00
2026-07-02 03:37:37 +08:00
2026-06-14 23:58:24 +08:00
2026-07-02 03:37:37 +08:00
2026-06-30 15:02:27 +08:00
2026-05-21 23:21:21 +08:00
2026-05-21 23:21:21 +08:00
2026-05-21 23:21:21 +08:00
2026-09-01 17:45:07 +08:00
2026-07-07 20:36:44 +08:00
2026-07-07 20:13:39 +08:00
2026-09-01 22:56:38 +08:00
2026-09-03 00:46:28 +08:00
2026-07-13 15:59:28 +08:00
2026-09-01 17:58:12 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-08-05 15:58:00 +08:00
2026-06-10 15:03:41 +08:00
2026-09-01 22:17:57 +08:00
2026-09-01 22:17:57 +08:00
2026-09-02 11:53:53 +08:00
2026-09-01 22:17:08 +08:00
2026-07-13 15:59:28 +08:00
2026-06-10 15:03:41 +08:00
2026-07-04 02:11:27 +08:00
2026-06-10 15:03:41 +08:00
2026-06-30 15:02:27 +08:00
2026-09-03 02:02:19 +08:00
2026-07-03 22:42:04 +08:00
2026-07-04 00:17:06 +08:00
2026-07-03 15:42:06 +08:00
2026-07-04 21:07:39 +08:00
2026-09-03 03:07:57 +08:00
2026-09-01 22:17:08 +08:00
2026-09-03 03:27:04 +08:00
2026-09-03 23:22:48 +08:00
2026-07-09 20:16:12 +08:00
2026-07-10 15:17:00 +08:00
2026-06-13 21:21:33 +08:00
2026-09-03 23:54:29 +08:00
2026-08-26 15:00:53 +08:00
2026-09-02 10:44:09 +08:00
2026-09-01 22:16:44 +08:00
2026-09-01 17:45:07 +08:00
2026-09-01 23:21:42 +08:00
2026-09-02 20:19:17 +08:00
2026-09-01 23:21:42 +08:00
2026-06-11 02:34:00 +08:00
2026-07-02 03:37:37 +08:00
2026-09-02 20:19:17 +08:00
2026-06-25 03:46:57 +08:00
2026-08-21 16:57:12 +08:00
2026-06-15 00:31:13 +08:00
2026-07-04 20:50:07 +08:00
2026-06-13 21:09:55 +08:00
2026-09-01 22:16:44 +08:00
2026-09-02 10:44:09 +08:00
2026-09-01 22:17:28 +08:00
2026-09-01 17:52:36 +08:00
2026-09-01 18:33:49 +08:00
2026-09-03 23:54:29 +08:00
2026-09-02 20:19:17 +08:00
2026-06-07 21:13:49 +08:00
2026-08-31 20:43:35 +08:00
2026-06-07 21:13:49 +08:00