# v_mr 策略文档:小盘深超跌均值回复 > 创建:2026-08-02 | 引擎版本:v2(合并自 mr_engine_v2.py) | 状态:✅ 已通过 10y 全市场验证 ## 1. 策略一句话 **买入"跌过头的小盘股",等它反弹回均值**。与 v_next4(追趋势)互补,专攻震荡市/熊市里被错杀的超跌股。 ## 2. 背景与动机(为什么建这个策略) - 翻倍股分析发现:**77% 的翻倍股诞生于震荡/中性市**,只有 23% 诞生于趋势市。 - 趋势引擎(v7.1 评分体系)天然只在趋势市出手,**震荡市是它的盲区**。 - 尝试把趋势引擎改成均值回复(test_vmr/scan_vmr 系列)**全部失败**——评分体系是趋势导向的(追动量、追突破),改 filters 是硬套,方向就错了。 - 结论:均值回复必须**独立建一套入场逻辑**,不走 score/momentum 评分体系。 ## 3. 入场逻辑(v2 最终版) | 因子 | 参数 | 含义 | 来源 | |------|------|------|------| | `bias60` | ≤ -10%(单边,无下限) | 价格比 MA60 低超过 10% = 深超跌 | 翻倍股起点 bias60≤-15.75%,取 -10 捕获"超跌未崩"区间 | | `rsi_max` | ≤ 42 | RSI 超卖 | 翻倍股起点 RSI≤44.8 | | `prev_ret60` | ≤ -15%(单边,无下限) | 60 日跌幅超 15% | 翻倍股起点 prev_ret60≤-10% | | `mom20_max` | ≤ 5% | 20 日动量低(不追已反弹的) | 均值回复前提:还在低位 | | `amount_max` | ≤ 15(百万元) | 20 日均成交额 ≤ 1500 万元 = 小盘 | 翻倍股成交额极小;大票超跌≠错杀 | | `rsi_delta_min` | ≥ 2 | RSI 5 日回升 ≥ 2 = 止跌确认 | 离线重放发现:不加止跌确认 avg 2.41% → 加后 3.01% | | `mkt_mode` | `any` | 不限大盘 | **10y 验证:sideways 过滤有害**(见 §7) | **次日开盘价入场**(信号日收盘确认,次日 open 成交)。 ## 4. 出场逻辑(v2 最终版) | 出场 | 参数 | 说明 | |------|------|------| | `target`(止盈) | +18% | 让利润跑向目标,不截断 | | `stop`(止损) | -8% | 固定止损 | | `time`(时间) | 25 个交易日 | 超时按收盘价平仓 | **关键修复(v1 → v2)**:v1 有 "反弹到 MA20 止盈" 出场(`ma20_revert`)。实测这是**毒药**: - 超跌票 MA20 就在头顶 2-3%,反弹到 MA20 只赚 2-3% 就卖 - 而止损是 -8%,盈亏比严重倒挂 - v2 删除 MA20 出场后,avg 由负转正(200 笔测试中 136 笔走 ma20_revert 的 avg +3.29% 看着还行,但大量本该到 +18% 的票被 2-3% 截断了) ## 5. 参数是怎么定出来的(完整推导链) 1. **翻倍股共性因子**(分析 10 年翻倍股):起点集中在 小盘 + MA60 下方深跌 + 近期跌 + RSI 偏低 + 低动量。 2. **v1 松版基线**(strategy_lab.py 首版):923,603 笔 / wr 61.4% / avg **-0.1%** —— 入场太松 + MA20 出场倒挂,白忙活。 3. **离线重放定参**(replay_mr 系列,用 92 万入场点重放不同出场规则,秒级测参): - 第 1 轮:确认 MA20 出场全负,去掉后 avg 转正;入场收紧显效。 - 第 2 轮:最紧入场(bias≤-10/amount≤15/prev≤-15/rsi≤42)→ 13,637 笔 avg 2.41%。 - 第 3 轮:`rsi_delta≥2`(止跌确认)→ avg 3.01% / wr 53.6%;`rsi_delta≥3` → 3.15%。 - 第 4 轮:`tp18/sl8/25d` → 9,082 笔 / avg 3.16% / wr 54.8%。年度分布健康(2018 熊市 4098 笔 +4.19%)。 4. **真实 10y 全市场验证**(mr_engine_v2.py):见 §6,avg 3.34% vs 离线预测 3.16%,**对齐良好**。 ## 6. 验证结果(10y:2016-07-01 ~ 2026-07-24,A 股全市场) | 指标 | 数值 | |------|------| | 交易笔数 | 21,690 | | 胜率 | 53.6% | | 平均收益/笔 | +3.34% | | 平均盈利 | +11.9% | | 平均亏损 | -6.56% | | 平均持仓 | 16.9 天 | | 组合 10y(等权 5 仓) | +332.1%(年化 15.6%,回撤 45.4%) | | 组合 10y(满仓模拟) | +208.8%(年化 11.8%,回撤 26.0%) | | 覆盖月份 | 107 个月,universality 76.0 | | 出场分布 | target 5,851(+18%)、stop 7,374(-8%)、time 8,465(+3.09%) | **年度分布(组合口径)**:2018 熊市大量出手(10,163 笔);2019 +49%;2025 +25%;2026 当前 -12.6%(见 §7)。 ## 7. 踩过的坑(重要教训) 1. **MA20 反弹止盈是毒药** —— 均值回复的票反弹空间只有 2-3% 到 MA20,必须让利润跑向 +18%。 2. **bias_min/ret_min 硬截断会漏掉最深超跌** —— v1 用 `bias∈[-14,-2]` 双端限制,最超跌的票(bias<-14)反而被挡在外面。v2 改单边(只设上界不设下界)。 3. **sideways 过滤(ADX<25 才出手)有害** —— 10y 全市场验证:过滤后收益 206.6% → **147.9%**。趋势市里买超跌反弹力度更大,强制过滤掉的是赚钱交易。 4. **MA20 方向过滤无一致规律** —— 2018 熊市大盘 MA20 下抄底反而赚钱(wr 63%),2026 年上下都亏。不能用于过滤。 5. **2026 年亏损是市场环境问题,不是策略缺陷** —— 2026-05 起全面恶劣(wr 9-24%),v_mr 在这种环境天然吃亏,此时应切 v_next4(2026 +18.9%)。这正是组合互补的意义。 6. **大盘上下文数据曾缺失** —— sh000001 在 stock_daily 只有 2021-07 起,2016-2020 数据在 sector_index_daily。已回填(2026-08-02),mkt_adx 覆盖从 23% → 90%。 ## 8. 与 v_next4 的分工(组合互补性验证结论) | 维度 | v_next4(趋势) | v_mr(均值回复) | |------|----------------|-----------------| | 出手时机 | **100% 大盘 MA20 上方**(强趋势市) | 83% 在大盘 MA20 下方/震荡市 | | 典型年份 | 2025 +29.8%、2022 +16.2% | 2019 +49%、2021 +23.7% | | 2018 熊市 | 0 笔(完全不出手) | 10,163 笔(主战场) | | 2026 趋势市 | +18.9%(主力) | -12.6%(回避) | | 股票池 | 58 只(大市值趋势票) | 1,753 只(小盘超跌票) | | 信号重叠 | 21 个重叠日/10 年(竞争极少) | —— | **合并价值**:v_mr 单独 10y +206.6%,叠加 v_next4 覆盖牛市暴利段后 +302.1%(cagr 14.8%,dd 26.2%)。两策略按市场周期轮动,互不抢信号。 ## 9. 代码位置 - **引擎(合并后)**:`strategy_lab.py` → `run_mr_backtest()`(v2 版本,含 skip_stats 统计) - **注册**:`strategy_lab.py` → `register_mr_strategy()`(B 类策略,不进 v7.1 评分体系) - **独立副本(历史)**:`mr_engine_v2.py`(v2 修复版,已合并,保留作参考) - **数据**:`data/mofin.db` → `strategy_research` 表(version='v_mr',最新一条 = v2 10y 21690 笔) - **离线重放脚本**:`/tmp/replay_mr*.py`(历史调参用) ## 10. 运行方式 ```python import strategy_lab as lab lab.register_mr_strategy('v_mr', 'v_mr: 小盘深超跌均值回复', summary, hypothesis, {'bias_max': -10, 'rsi_max': 42, 'ret_max': -15, 'mom20_max': 5, 'amount_max': 15, 'rsi_delta_min': 2, 'mkt_mode': 'any'}, {'tp_pct': 0.18, 'sl_pct': 0.08, 'max_hold_days': 25}, slots=5) r = lab.run_mr_backtest('v_mr', '2016-07-01', '2026-07-24', 913000, save=True, universe='a', period_tag='10y') ``` > ⚠️ 注册须在跑测前调用(v_mr 不进 STRATEGIES 持久化注册表)。universe='a' = A 股;'all' 含港股(港股 HSI 上下文另算)。 ## 11. 六步方法论精选调优(2026-08-02 深夜,v_mr 精选版) > 背景:实盘扫描器原用"bias60 最超跌取前10"排序——**违反六步方法论、无验证、实测证伪**(corr(bias60,profit)=0.028≈0,最深档 bias<-23.7% 反而最差 avg+1.41%/wr42.8%)。按六步方法论从 21690 笔回测中重新推导。 ### 第1步:挑显著收益票 - v_mr 基线 21690 笔,收益分层 p50=+1.5% / p75=+18.0% / max=+18.0% / min=-8.0% - 显著盈利组 = profit ≥ +18%(即 target 止盈档,5851 笔) ### 第2步:共同因子(显著盈利组 vs 亏损组) | 因子 | 显著盈利均值 | 亏损均值 | 结论 | |------|------------|---------|------| | mom20 | -14.17 | -12.14 | 盈利组20日动量更负(加速下跌尾声)| | rsi_delta | 8.86 | 7.21 | 盈利组RSI回升更强(止跌确认)| | dist_ma20 | -5.59 | -4.56 | 盈利组离MA20更远(反弹空间大)| | atr_pct | 4.16 | 3.62 | 盈利组波动更大(弹性足)| | mkt_adx | 32.88 | 34.68 | 亏损组在大盘强趋势时抄底危险 | | bias60/rsi/prev_ret60 | ≈无差异 | | 深超跌≠更好 | ### 第3步:正面因子组合全市场重筛 | 组合 | 笔数 | avg | 胜率 | 盈亏比 | 覆盖 | |------|------|-----|------|--------|------| | 基线 v_mr | 21690 | +3.34% | 53.6% | 1.81 | 107月 | | mom20+rsi_delta 双因子 | 2005 | +8.11% | 71.4% | 2.10 | 68月 | | 三因子(+dist_ma20) | 620 | +9.04% | 75.6% | 2.25 | 40月 | | 四因子(+atr_pct) | 242 | +10.56% | 79.8% | 2.34 | 26月 | ### 第4步:负面因子(四因子组内亏损 vs 盈利) | 负面因子 | 亏损组 | 盈利组 | 含义 | |---------|--------|--------|------| | mkt_adx | 40.15 | 29.43 | 大盘ADX≥35 强跌市抄底危险 | | obv_delta | -977k | +25k | 资金流出(OBV<0)必死 | | bias60 | -19.75 | -17.67 | bias<-22 过深易续跌 | | prev_ret60 | -29.57 | -26.26 | 60日跌超32%易续跌 | | amount_ma20 | 8.90 | 10.43 | 太缩量流动性差 | ### 第5步:正负因子合并 | 版本 | 笔数 | avg | 胜率 | 盈亏比 | 亏损 | 覆盖 | |------|------|-----|------|--------|------|------| | 四正面因子 | 242 | +10.56% | 79.8% | 2.34 | 49 | 26月 | | 全负面合并 | **144** | **+12.73%** | **88.9%** | **2.67** | **16** | 13月 | ### 第6步:稳健性验证(非过拟合) | 检查 | 笔数 | avg | 胜率 | |------|------|-----|------| | 全样本 | 144 | +12.73% | 88.9% | | 去掉2018全年 | 37 | +10.76% | 83.8% | | 去掉2018-10极端月 | 60 | +9.27% | 78.3% | - 年度分布:2018年107笔(74%,2018-10单月84笔)、2022年24笔(+13.86%/100%独立验证)、其余37笔 - 2022 年独立复现高收益 → 不是单一事件过拟合 - 组合模拟(3槽,扣费):10年 +94.0% / 年化 8.4% / 回撤 8.1% / 执行 27 笔 ### 精选版策略画像 - **10年 144 笔 = 年均 14 笔 = 每月约 1 笔,完全适合手工操作** - 单笔毛利 +12.73%、胜率 88.9%、盈亏比 2.67 - 出场沿用 tp18%/sl8%/25天(后续调优中) ### 待落地 - [ ] 实盘扫描器排序规则:bias60最超跌取10 → 精选因子组合筛选 - [ ] ST 股不排除(仓位控制即可,老莫 2026-08-02 指示) - [ ] 出场参数调优(tp/sl/max_hold 对精选组重新扫描) ### 第6步续:出场参数调优(2026-08-02,网格扫描 tp x sl x hold) 对精选组 144 笔用原始K线重放,扫 tp∈{12,15,18,20,25} × sl∈{6,8,10} × hold∈{20,25,30}: **Top 组合**: | tp | sl | hold | avg | wr | pf | |----|----|----|-----|-----|-----| | **0.25** | **0.10** | **30** | **+15.51%** | **90.3%** | 2.35 | | 0.25 | 0.08 | 30 | +15.45% | 88.9% | 2.74 | | 0.20 | 0.10 | 30 | +14.96% | 91.7% | 2.05 | | 0.25 | 0.06 | 30 | +14.71% | 84.0% | 3.41(盈亏比最优) | **结论**:tp 18→25(利润跑更远)+ hold 25→30(给反弹时间)= 主要提升来源;sl 8-10% 稳健。 **选定参数:tp=25% / sl=10% / max_hold=30天** **最终版稳健性验证**: | 检查 | 笔数 | avg | wr | |------|------|-----|-----| | 全样本 | 144 | +15.51% | 90.3% | | 去2018全年 | 37 | +12.18% | 81.1% | | 2022独立验证 | 24 | +15.01% | 95.8% | | 2024 | 6 | +19.17% | 83.3% | **组合模拟(扣费0.2%往返)**: | 槽位 | 10年总收益 | 年化 | 回撤 | 执行 | |------|-----------|------|------|------| | 3槽 | +135.7% | 11.0% | 10.0% | 27笔 | | 5槽 | +93.3% | 8.4% | 6.0% | 35笔 | | 全参与MC | +43.5% | 4.4% | 0.8% | 98笔 | ### 最终版策略画像(v_mr 精选) - **入场**:6基线条件 + 正面4因子(mom20∈[-20,-14]、rsi_delta≥10、dist_ma20∈[-10,-7]、atr_pct≥4.5)+ 剔除4负面(mkt_adx≥35、OBV<0、bias60<-22、prev_ret60<-32) - **出场**:tp=25% / sl=10% / max_hold=30天 - **10年144笔 = 年均14笔 = 每月约1笔,适合手工** - 单笔毛利 +15.51%、胜率 90.3%、盈亏比 2.35-2.74 - ST 股不排除(仓位控制,老莫指示) ## 12. ⚠️ 结论修正:v_mr 系列不作为弱市实盘策略(2026-08-03 六步方法论全面重审) > 老莫按六步方法论要求重新推导"真正普适的弱市策略"(标准:去2018后 avg>0 + 覆盖≥80月 + 年度正贡献≥7年)。研究结论:**v_mr 家族(含精选版 v_mr_sel)全部不合格,弱市不存在可实盘的选股 alpha**。 ### 12.1 v_mr 基线为何不合格 - 基线 avg +3.34% 靠 **2018 超级熊市 10163 笔(47%)** 撑起;**去 2018 后 avg +2.14%/wr 49.8%**——掷硬币 - 2018 是 A 股十年一遇(上证 3500→2440),深超跌反弹只在此时有边缘,其余年份信号稀疏且收益平庸(2026 年 avg +0.06%) - 本质:v_mr 是"2018 型超级熊市探测器",不是可持续策略 ### 12.2 v_mr_sel(精选版)为何不合格 - 144 笔信号中 **2018-10 三天占 78 笔(54%)**,覆盖仅 14/120 月——完全是一次行情的产物 - 任何因子筛选逃不开 2018:单因子 rsi_delta≥10 去 2018 后 avg +2.49%(回到基线),mom20 去 2018 后 +2.11% ### 12.3 全市场弱市选股穷尽验证(无 alpha) | 逻辑 | 弱市日 20日 avg | 去2018 | 结论 | |------|----------------|--------|------| | 全市场随机(基线) | +0.36% | +0.36% | 掷硬币 | | 深超跌(v_mr) | +0.38% | ≈0 | 无边缘 | | 相对强势(RSI≥50) | ≈0 | ≈0 | 无边缘 | | 收缩突破(DNA) | -0.97% | -0.57% | 负边缘 | | 低PE防御(60日) | +1.18% | +1.86% | 普适达标但年化仅7%,组合3槽-20.7% | ### 12.4 数据支撑的结论 **弱市最好的策略是仓位管理,不是选股**:弱市(大盘MA20下)随机买入 = 趋势市随机买入(无差别),期望≈0。弱市应降仓/空仓,把资金留给 v_next4 趋势市主战场。 - 实盘已实现:strategy_lifecycle 6.5 市场阶段降级(trend_down/choppy 买入降级为"关注") - v_mr/v_mr_sel 仅作为"极端熊市(ADX极高+深超跌)"的期权式参考,不作为常规配置 ### 12.5 方法论教训 - 六步方法论第6步"合格评估"必须包含**普适性硬标准**(去极端年后 avg>0 + 覆盖≥80月 + 正贡献≥7年),只看整体 avg/胜率会被极端年份欺骗 - 回测 10 年含 2018 这种极端年,任何"深跌反弹"类策略都会被拉高指标造成假象——必须做去极端年稳健性检查 ## 13. 12维框架深挖:大盘ADX择时是弱市edge的关键前提(2026-08-03) > 按老莫 12 维分析理论(大盘/行业/个股 × 消息/基本/技术/资金)系统验证,发现第 2 步"个股技术无区分"的根因是遗漏了【大盘技术面】维度。 ### 13.1 核心发现:大盘 ADX 是弱市择股的分层器 全市场 10 年弱市日(大盘MA20下)按大盘 ADX 分桶,60日收益: | 大盘ADX桶 | 样本 | avg60日 | wr | 赢家率(≥26.4%) | |-----------|------|---------|-----|----------------| | <20 | 118670 | +1.63% | 45.6% | 9.8% | | 20-25 | 30113 | -1.24% | 39.6% | 6.3% | | **25-30** | **54202** | **+4.89%** | **51.0%** | **14.7%** | | 30-40 | 74666 | -0.04% | 41.4% | 8.2% | | ≥40 | 85291 | -0.10% | 42.2% | 10.0% | **甜区 = 弱市 + 大盘ADX∈[25,30]**(趋势刚转弱/盘整初期):avg +4.89%(年化≈30%)、wr 51%、赢家率 14.7%,远超其他区间。 ### 13.2 甜区内叠加个股超跌因子(12维:大盘技术 × 个股技术) | 组合 | avg60日 | 去2018 | 正年 | |------|---------|--------|------| | 甜区(基线) | +1.67% | +2.19% | 5/11 | | 甜区+bias60<-20 | +4.77% | +6.78% | 9/11 | | **甜区+bias60<-20+RSI<30** | **+5.04%** | **+5.67%** | **10/11** | ### 13.3 结论与落地建议 - **弱市"深超跌反弹"的 edge 真实存在,但前提是大盘 ADX∈[25,30]**——这是 v_mr 缺失的大盘前置条件(v_mr 用 mkt_mode='any',任何弱市都扫,信号被 ADX≥30 的强跌市污染) - **落地建议**:现有 v_mr 扫描器加入大盘 ADX 门控(仅 ADX∈[25,30] 时扫描),提升单笔质量 - **局限**(诚实):单笔 edge +5.67% 真实但薄,信号密集且无排序因子,组合层面年化仅 3%(2018外)——**不足以上线为独立实盘策略**,价值在"认知 + 门控改进" ## 14. ✅ v_weak_final:六步方法论完整产出的弱市策略(2026-08-03 定稿) > 按老莫六步方法论 + 12维框架(大盘/行业/个股 × 消息/基本/技术/资金)完整执行 1-6 步,产出可推荐弱市策略。 ### 策略定义 | 层 | 条件 | |----|------| | 大盘 | 弱市(sh000001 < MA20)+ 大盘ADX ∈ [25,30](甜区)| | 个股正面 | bias60 ∈ [-35, -20](深超跌但不过深)+ RSI ≤ 25(极度超卖)| | 个股负面剔除 | 5日跌幅 > -3%(剔除阴跌,只留急跌/恐慌盘)| | 出场 | tp=30% / sl=12% / max_hold=40日 | ### 验证结果(10y 全市场 A股) | 指标 | 数值 | |------|------| | 交易笔数 | 2,649 | | 单笔均收益 | **+10.66%** | | 胜率 | **68.4%** | | 正贡献年份 | **9/11**(2017/18/19/20/21/22/24/25/26正,2023略负)| | 去2018 | avg +5.60%(967笔/37月)| | 组合5槽(扣费) | +115% / 年化8.8% / 回撤32% | ### 六步方法论推导链 1. **赢家**:弱市日60日≥+26.4%(p90) = 35,490信号/100月覆盖(每年都有,非2018独有) 2. **共同因子**:12维框架发现大盘ADX是分层器(ADX25-30 avg+4.89% vs 其他区间≈0);个股技术单独无区分(漏维度) 3. **全市场筛**:甜区+深超跌+RSI<30 → 7,254信号 avg+5.19% 4. **负面因子**:筛选集内亏损vs盈利对比 → 过深bias60(<-35)/RSI偏高(>25)/5日浅跌(r5f>-3) 是亏损共性 5. **正负合并**:三负全剔 → 2,651信号 avg+9.84%/wr66.1% 6. **调参**:出场tp25→30/sl10→12/hold40 → avg+10.66%/wr68.4% ### 与 v_mr 对比(全面胜出) | 指标 | v_mr | v_weak_final | |------|------|-------------| | avg | +3.34% | **+10.66%** | | wr | 53.6% | **68.4%** | | 去2018 | +2.14%(掷硬币) | **+5.60%(真实)** | | 组合年化 | 4.6% | **8.8%** | ### 关键认知(可复用) - **弱市选股 edge 真实存在**,前提=大盘ADX∈[25,30](趋势刚转弱的盘整期),这是 v_mr 缺失的大盘前置 - **负面剔除 > 正面排序**:筛选集内"亏损票共性"(过深/RSI偏高/阴跌)比"挑最好"更有效 - 信号适中(年均265笔,每月约22笔,部分可人工) ## 15. 仓位研究:等权6槽自然序为最优(2026-08-03 全面测试) > 对 v_weak 做科学仓位研究(非拍脑袋):强度评分单调性验证 + 6 种仓位方案 × 3-8 槽全扫描 + 排序选票对比 + MC 随机对照。 ### 15.1 强度评分单调性(分级仓位的前提验证) r5f/RSI/bias60 合成强度分,十等分:D1(+1.24%/41%) → D10(+18.17%/90.5%) **完美单调**(差距15倍)。 ### 15.2 分级仓位 × 槽位 全扫描结果 | 方案 | 最优槽 | 年化 | 总收益 | 回撤 | 收益/回撤 | |------|--------|------|--------|------|-----------| | **等权(基准)** | **6** | **9.6%** | **131%** | 27.6% | **4.7** | | 等权 | 5 | 8.8% | 115% | 32.1% | 3.6 | | 连续Kelly | 5 | 7.5% | 92% | 29.2% | 3.2 | | 两档0.5/1.5 | 5 | 5.0% | 56% | 26.7% | 2.1 | | 三档0.3/1/2 | 5 | 4.9% | 54% | 27.9% | 1.9 | **结论:等权 > 任何分级加权**。boost 加权虽降回撤(32%→24-27%),但收益损失更大(115%→53-56%)。强度分单调但组合层面分级无益。 ### 15.3 排序选票对比(关键反直觉发现) | 选票方式 | 总收益 | 年化 | |----------|--------|------| | **自然序(插入序)** | **115%** | **8.8%** | | score高分优先 | 17% | 1.7% | | score低分优先 | 4% | 0.5% | | MC随机(30次均值) | 87% | 7.0% | **自然序 >> 任何排序**:v_weak 信号按日期自然排列时,同天先出现的恰是更强超跌(隐式质量排序)。高分优先排序反而破坏入场节奏。 ### 15.4 最终仓位策略 - **等权 6 槽**(100万/6≈16.7万每票),**自然序入场**(不做 score 排序、不做 boost 分级) - 10年:总收益+131% / 年化9.6% / 回撤27.6% / 收益回撤比4.7 - 单笔:avg+10.66% / wr68.4% / 去2018+5.60% / 正年9/11