4.9 KiB
4.9 KiB
策略自我进化闭环重构(问题3 诊断 + 设计)
日期:2026-08-15 状态:诊断完成,设计待老莫批准 关联:问题2(策略数据每日自动更新,已落地 c91f49ef/b9b4fadf)
一、诊断:进化模块与温区体系全面脱节
老莫定义的关系链:统计数据每日自动更新 → 进化基于最新统计数据做策略研究 → 产出有价值的改进结论。
现状:第一节(统计数据)今天才修好;第二节(进化)整体坏死——
| 组件 | 病状 | 证据 |
|---|---|---|
evolution_api.py baseline |
硬编码 ['v_weak','v_oversold'],与路由激活集合脱节 |
已修(9ba85733,改数据驱动) |
lesson_extractor.py |
硬编码 version='v_next4'(已证伪策略);名为"已平仓交易教训提取",实际读的是回测 trades 而非实盘平仓 |
strategy_lessons 最新行 2026-08-01,16 行,无 cron |
auto_iterator.py |
健康度默认 version='v_next4';PARAM_SPACE(max_hold_days/reentry_days/sl_atr)是旧策略家族参数,与当前温区策略(s2_panic 的 RSI/bias 阈值、hk_pe_mom 的 PE 分位/tp40%)完全对不上 |
strategy_evolution 最新行 2026-08-07,8 行,无 cron |
| 调度 | lesson_extractor / auto_iterator 均不在 hermes cron | 管道 8/1、8/7 断供至今 |
根因:进化模块是 8 月初为 v_next4/v_weak 时代写的一次性脚本,温区自适应体系(路由+三温区策略+双市场)上线后没人回头接它。它和 health_monitor 的病是同一类——硬编码策略名,不跟随系统事实源。
二、闭环设计(待批准)
每日盘后(已有) 每周研究(新增) 产出
┌─────────────────┐ ┌──────────────────────┐ ┌────────────────┐
│ period_rollup │ │ evolution_engine.py │ │ 有价值才说话: │
│ (周期滑窗统计) │────────►│ 1. 读健康度/温区表现 │──────►│ 改进结论+证据 │
│ regime_perf │ 数据 │ 2. 识别退化信号 │ 结论 │ 推给老莫决策 │
│ (温区表现) │────────►│ 3. 生成参数变体 │ │ (不自动上线) │
│ health_monitor │ │ 4. 回测验证(统一模拟) │ └────────────────┘
│ (健康度) │ └──────────────────────┘
└─────────────────┘ │
无退化/变体不达标 → 静默
退化信号定义(触发研究的条件,宁缺毋滥)
- 健康度连续低:激活策略 health_score 连续 5 天 < 40(实盘显著偏离回测基线)
- 温区表现衰减:策略在其适应温区的近 1 年派生胜率 < 5y 胜率 × 0.8(近期失效迹象)
- 证伪候选:激活策略在其适应温区的温区级组合年化 < 0(防守失败)
变体生成原则(不拍脑袋)
- 参数空间从策略定义的当前参数出发(读 hk_strategies.py / strategy_lab.py 的实际参数,不再硬编码 PARAM_SPACE)
- 每个维度 ±20% 网格,单变量扰动(一次只动一个参数,可归因)
- 验证统一走 portfolio_sim(8 槽资金约束),验收门槛:变体在其适应温区的温区级组合年化 ≥ 原策略 + 3pp,且 max_dd 不劣化超过 2pp
产出与呈现
- 达标变体 → 写
strategy_evolution(parent/child/change_description/promoted=0)+ 推送老莫(附对比证据) - 老莫说"上线"才进 strategy_research + 路由候选,永不自动 promote
- 无退化或变体全灭 → 当周静默(不制造噪音)
- dashboard 进化区:baseline 已跟随路由(9ba85733);lessons 区待 lesson_extractor 重写后复供
lesson_extractor 重写方向
- 数据源改实盘:
holding_strategies已平仓记录(hit_tp/hit_sl)+ strategy_review 的三层复盘结论 - 不再用 LLM 逐笔分析回测 trades(旧做法既贵又假——回测交易没有"教训"可挖)
- 频率:每周一次,跟随 evolution_engine 同跑
三、实施清单(批准后执行)
evolution/evolution_engine.py新建(退化检测 + 变体生成 + 统一回测验证)evolution/lesson_extractor.py重写(实盘平仓 + 复盘结论驱动)auto_iterator.py归档(参数空间硬编码,被 evolution_engine 取代)- hermes cron:
evolution_engine每周六 22:00(策略评估 21:00 之后) - dashboard 进化区读取验证
四、明确不做
- 不自动上线任何变体(老莫决策权)
- 不动 strategy_review.py(实盘单笔复盘,职责不同,运行正常)
- 不在本重构中改温区路由逻辑