diff --git a/docs/SYSTEM_ARCHITECTURE.md b/docs/SYSTEM_ARCHITECTURE.md index 7c230383..17db26a9 100644 --- a/docs/SYSTEM_ARCHITECTURE.md +++ b/docs/SYSTEM_ARCHITECTURE.md @@ -113,6 +113,59 @@ mofin_health(健康采集) → F健康 Dashboard(三层架构健康 + cron来 - **监控**:F 健康 cron 列表带**来源标记**(✅ hermes 合规 / ⚠️ 系统cron 违规红色警告),顶部横幅提示本原则 - **备份**:系统 crontab 备份在 `.backups/crontab_backup_*.txt` +## 五.5 温区自适应系统(2026-08-13 落地) + +> **核心**:策略组合按当前市场温区(trend_up/choppy/trend_down)自动激活/休眠,选股/买入/卖出/每日重评四环节按温区感知执行。 + +### 温区三态判定 + +- **market_regime.py**:三态判定(trend_up=above_ma20+adx≥20 / choppy=adx<20 / trend_down=below_ma20+adx≥20),回填 10 年(2016-2026,2319 条) +- **regime_tracker.py**:滞回平滑(K=5 连续确认,数据选参:112周期/20.7天/无1天噪音),输出平滑温区 + regime_cycles 表 +- **temp_band.py**:温度分档(panic/fear/neutral/greed/euphoria,rsi 连续量),仓位乘数(恐慌重仓/亢奋减仓) + +### 策略-温区表现记录 + +- **regime_perf.py**:`strategy_regime_perf` 表(策略×温区×胜率/均盈/样本),全策略动态纳入(含历史策略) +- **发现**:v_mr_sel trend_down 93%、v7.3 trend_up 94%、v6.2 82% 等被埋没的温区强者 + +### 策略动态路由 + +- **strategy_router.py v5**:动态策略库,当前温区实测胜率高者激活(>=50% 门槛剔除全负策略) +- 输出 `strategy_weights.json`(当前温区/温度/各策略权重/激活状态) + +### 策略执行调度 + +- **strategy_executor.py**:温区策略调度器(*/30 盘中),按当前温区激活策略调度对应选股 scanner: + - v_weak/v_mr/v_mr_sel → mr_scanner.py + - v_oversold → predictive_oversold_scanner.py + - s2_panic → s2_scanner.py + - v_next4/v8.1/v_combo → leader_scanner.py(trend_up 适用) +- **停用独立 scanner cron**(mr_scanner/predictive_oversold 已由调度器统一调度) + +### 四环节温区感知 + +| 环节 | 温区接入 | +|------|---------| +| **选股** | strategy_executor 按温区激活策略调度 scanner;scanner 内部用平滑温区门控 | +| **买入** | stale_push_wlin 温区过滤(非激活策略不推买入)+ 信号溯源([策略][温区]+共振标记) | +| **卖出** | price_monitor 温区感知(非激活策略买入机会抑制,风控卖出/止盈仍推)+ 信号溯源 | +| **每日重评** | strategy_lifecycle 平滑温区(regime_gate)→ timing_signal 合成含市场阶段 | + +### 信号溯源系统 + +- **signal_ledger.py**:记录每次推送(策略/版本/温区/原因),多策略同推检测共振标记(🔥加关注) +- 表 `signal_ledger`(code/strategy/regime/pushed_at/resonance_count 等) + +### Cron 调度链(温区自适应) + +| 时间 | 任务 | 作用 | +|------|------|------| +| 16:50 | market_thermometer.py | 市场测温(三态判定) | +| 16:52 | regime_tracker.py | 滞回平滑(K=5)+ regime_cycles 周期记录 | +| 16:55 | strategy_router.py | 策略路由(strategy_weights.json) | +| */30 盘中 | strategy_executor.py | 按激活策略调度选股 scanner | +| 周五 17:00 | strategy_alert.py | 三振出局失效预警(滚动胜率/盈亏比) | + ## 六、开发原则(自动任务强约束) 1. **单例守卫**:每个定时脚本必须 `_singleton_guard`(fcntl flock /tmp/mofin_locks/),防重复实例并发写(2026-08-05 进程堆积事故后统一加装) diff --git a/docs/research/methodology.md b/docs/research/methodology.md index 14b4b83c..3f4c5247 100644 --- a/docs/research/methodology.md +++ b/docs/research/methodology.md @@ -310,3 +310,61 @@ RR<1.5 → 不推荐 - **资金**:10槽 + 15%仓位(step35参数扫描) - **结果**:**年化 14.75%**(达标≥13.2%)、胜率90.3%、单笔+16.39%、总收益329.5% - **待改进**:回撤-36.4%偏大、2019年-6%亏损年 + +## 十、温区自适应方法论(2026-08-13 新增) + +> 核心认知(来自量化文献+MoFin实证):**没有任何策略能在所有市场环境通吃**——每个策略有它的"适用温区"(市场状态),策略组合应按当前温区自动激活/休眠。 + +### 10.1 温区三态判定 + +- **trend_up**(趋势市):above_ma20 + adx≥20——趋势策略(追涨/龙头识别)适用 +- **choppy**(震荡市):adx<20——均值回复策略(超跌反弹)适用 +- **trend_down**(下跌市):below_ma20 + adx≥20——深超跌/恐慌策略适用 + +**滞回平滑(K=5)**:连续5天同温区才确认切换(数据选参:112周期/20.7天/无1天噪音),避免单日噪音误判。 + +### 10.2 温度(rsi 连续维度) + +- **温度分档**:panic(<35) / fear(35-45) / neutral(45-60) / greed(60-70) / euphoria(>70) +- **仓位乘数**:恐慌重仓(mr 1.5倍)、亢奋减仓(0.3倍) +- **温区与温度互补**:温区滞后(K=5确认)、温度实时(rsi连续量) + +### 10.3 策略-温区对应(数据验证) + +| 策略 | 适用温区 | 胜率 | 依据 | +|------|---------|------|------| +| v_weak | choppy | 55% | 震荡市超跌确认 | +| v_oversold | trend_down | 60% | 下跌市深超跌 | +| v_mr_sel | trend_down | **93%** | 精选小盘超跌 | +| v_next4/v8.1 | trend_up | 63%/57% | 趋势市追涨 | +| s2_panic | trend_down×恐慌 | 86% | 极端恐慌买超跌 | +| v_lurk_v3 | choppy/trend_down | 77%/71% | 潜伏型 | + +**原则**:策略全温区发信号(内部不留温区门控),适用温区由**实测胜率动态决定**(strategy_regime_perf 表常态化更新),不是固定映射。 + +### 10.4 组合构建(温区自适应) + +- **单一策略是茧,多策略是翅膀**:策略组合按当前温区自动激活/休眠 +- **分散化本质是低相关性**:跨策略类型(趋势/均值回复/事件驱动)组合 +- **动态配置克制**:温区切换才调权重,"少动就是多赚" +- **失效预警(三振出局)**:滚动胜率 <40% 黄牌减半、<35% 橙牌1/4、<30% 红牌淘汰(权重0观察) + +### 10.5 信号溯源 + +- 每次推送记录:策略/版本/温区/原因(signal_ledger 表) +- **多策略共振**:同一股票24h内被多个激活策略推 → 标记"🔥多策略共振"(加关注) +- 用途:日后评估"哪个策略在什么温区推了什么股票,效果如何" + +### 10.6 落地文件 + +| 文件 | 功能 | +|------|------| +| market_regime.py | 三态判定(已有,回填10年) | +| regime_tracker.py | 滞回平滑(K=5)+ regime_cycles 周期记录 | +| temp_band.py | 温度分档 + 仓位乘数 | +| regime_perf.py | 策略-温区表现常态化记录 | +| strategy_router.py | 动态策略路由(strategy_weights.json) | +| strategy_executor.py | 温区策略调度器(按激活策略调度 scanner) | +| signal_ledger.py | 信号溯源(推送记录+共振标记) | + +> 详见 SYSTEM_ARCHITECTURE.md 五.5 温区自适应系统(系统架构视角)。 diff --git a/docs/zhiwei-reading-guide-20260813.md b/docs/zhiwei-reading-guide-20260813.md new file mode 100644 index 00000000..af0c5217 --- /dev/null +++ b/docs/zhiwei-reading-guide-20260813.md @@ -0,0 +1,86 @@ +# 知微阅读指南:温区自适应系统变化(2026-08-13) + +> 给知微(position-analyst)的系统变化说明。本次完成 MoFin 温区自适应系统落地。 + +--- + +## 一、本次核心变化 + +**温区自适应**:策略组合按当前市场温区(trend_up/choppy/trend_down)自动激活/休眠,选股/买入/卖出/每日重评四环节按温区感知执行。 + +**根因**:v_weak/v_oversold 近1年表现不佳 = 市场在 bear 状态时间太长(111/250 天)vs 弱市策略类型错配。 + +--- + +## 二、你需要知道的文档(按优先级读) + +| 优先级 | 文档 | 内容 | +|---|---|---| +| **必读** | `docs/decisions/2026-08-13-事项五-策略组合市场测温动态切换.md` | 温区自适应完整决策记录(根因/方案/落地/验证) | +| **必读** | `docs/SYSTEM_ARCHITECTURE.md` 五.5 节 | 温区自适应系统架构(三态判定/策略路由/四环节接入/调度链) | +| **必读** | `docs/research/methodology.md` 十节 | 温区自适应方法论(适用温区/组合构建/失效预警/信号溯源) | +| 参考 | `docs/decisions/2026-08-12-p-oversold-deployment-decisions.md` | p_oversold 部署决策(8 件事,含温区自适应前奏) | + +--- + +## 三、你需要知道的关键文件 + +| 文件 | 作用 | 你需要关注 | +|------|------|-----------| +| `deploy/profile-scripts/market_regime.py` | 三态判定(trend_up/choppy/trend_down) | 温区判定逻辑 | +| `deploy/profile-scripts/regime_tracker.py` | 滞回平滑(K=5)+ regime_cycles 周期记录 | 平滑温区判定 | +| `deploy/profile-scripts/temp_band.py` | 温度分档(panic/fear/neutral/greed/euphoria) | 温度/仓位乘数 | +| `deploy/profile-scripts/regime_perf.py` | 策略-温区表现常态化记录 | 策略适用温区数据 | +| `deploy/profile-scripts/strategy_router.py` | 动态策略路由(strategy_weights.json) | 当前温区激活策略 | +| `deploy/profile-scripts/strategy_executor.py` | 温区策略调度器(按激活策略调度 scanner) | 选股调度 | +| `deploy/profile-scripts/regime_gate.py` | 温区门控共享工具 | 各环节统一调用 | +| `deploy/profile-scripts/signal_ledger.py` | 信号溯源(推送记录+共振标记) | 信号追踪 | +| `deploy/profile-scripts/stale_push_wlin.py` | 买入环节(温区过滤+溯源标记) | 买入推荐 | +| `deploy/profile-scripts/price_monitor.py` | 卖出环节(温区感知+溯源记录) | 卖出/风控 | +| `deploy/profile-scripts/strategy_lifecycle.py` | 每日重评(平滑温区) | 重评逻辑 | + +--- + +## 四、Cron 调度链(每日) + +| 时间 | 任务 | 作用 | +|------|------|------| +| 16:50 | market_thermometer.py | 市场测温(三态判定) | +| 16:52 | regime_tracker.py | 滞回平滑(K=5)+ 周期记录 | +| 16:55 | strategy_router.py | 策略路由(strategy_weights.json) | +| */30 盘中 | strategy_executor.py | 按激活策略调度选股 scanner | +| 周五 17:00 | strategy_alert.py | 三振出局失效预警 | + +**关键**:strategy_executor 替代了独立的 mr_scanner/predictive_oversold cron(已停用),按当前温区激活策略动态调度选股。 + +--- + +## 五、当前温区状态(2026-08-13) + +- **温区**:trend_down(下跌趋势,7/17 起 19 天) +- **温度**:neutral/greed(rsi 波动) +- **激活策略**:s2_panic(86%)、v_lurk_v3(77%)、v_mr(59%)、v_mr4(63%)、v_mr_sel(93%)、v_oversold(60%) +- **观察**:v_weak(choppy 55%)、v_next4/v_combo(trend_up 休眠) + +--- + +## 六、你需要适应的变化 + +1. **选股**:不再固定跑 v_weak/v_oversold,按当前温区激活策略调度(trend_down 时跑 s2_panic/v_mr_sel 等) +2. **买入**:stale_push_wlin 推送带 `[策略][温区]` 溯源标记,非激活策略不推 +3. **卖出**:price_monitor 非激活策略买入机会抑制,风控(卖出/止盈)仍推 +4. **重评**:strategy_lifecycle 用平滑温区(trend_down 而非 choppy),timing_signal 合成含市场阶段 +5. **持仓分析**:结合温区(trend_down → 防守倾向,移动止损保护利润) + +--- + +## 七、实盘测试关注点 + +1. **温区切换**:市场从 trend_down 转 choppy/trend_up 时,激活策略应自动切换 +2. **策略激活**:当前 trend_down 时,s2_panic/v_mr_sel 等应被激活扫描 +3. **信号溯源**:推送消息带 `[策略][温区]` 标记,多策略共振标 🔥 +4. **失效预警**:strategy_alert 每周五跑,滚动胜率低的策略降权/淘汰 + +--- + +**总结**:温区自适应让 MoFin 从"固定策略组合"变为"按当前市场状态动态选择策略"。你(知微)需要适应的是:**选股/重评/分析时考虑当前温区,不再用固定策略**。