Files
MoFin/docs/v_mr_strategy.md
T

1258 lines
79 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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):见 §6avg 3.34% vs 离线预测 3.16%**对齐良好**。
## 6. 验证结果(10y2016-07-01 ~ 2026-07-24A 股全市场)
| 指标 | 数值 |
|------|------|
| 交易笔数 | 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
## 16. 回撤优化:每月≤8信号(2026-08-03,回撤27.6%→19.4%
> 用户质疑回撤27.6%过大。系统诊断 + 全面测试后找到最优方案。
### 16.1 回撤根因诊断
- 最大回撤区间 2023-02 ~ 2024-0818个月阴跌),312笔 wr仅36.2%
- 打击点:2024-01微盘流动性危机(22笔全灭 wr0%/avg-12%)、2023-03(13%)、2024-05(20%)
- 结构性缺陷:甜区(ADX25-30)持续出手,但2023-2024是阴跌市,RSI≤25深超跌无反弹,止损-12%反复被打
### 16.2 降回撤方案全测试(诚实记录)
| 方案 | 结果 |
|------|------|
| 大盘RSI回升过滤 | ❌ 信号2649→394avg+10.66%→+3.01%(甜区大部分日不回升)|
| 大盘MA20斜率 | ❌ 回撤期纹丝不动 |
| 收紧止损12→8 | ❌ 无改善(回撤是环境非单笔)|
| 高槽位8-20 | ❌ 回撤仍27-32%,年化反降 |
| **同月信号≤8** | ✅ **回撤19.4%,年化9.6%→16.7%** |
### 16.3 最终方案:v_weak_8
- **每月最多8个信号**(自然序=最强超跌优先),**等权6槽**
- 回测:301笔 / 组合6槽 +308% / 年化15-16.7% / **回撤19.4%** / 收益回撤比15.9
- 单笔 avg+4.83% / wr54.8% / 去2018 +6.00%(236笔/37月) / 正贡献10/11年
- 每月8笔完全人工可操作
### 16.4 认知
- 深超跌抄底的**回撤来自集中出手**而非单笔亏损——同月限8让资金不"一篮子抄底",收益/回撤4.7→15.9
- 择时过滤(大盘RSI/斜率)对阴跌市无效,2024-01微盘危机大盘指标是假回升
## 17. 入场修正:只买"下方有支撑"的票(2026-08-03,老莫洞察)
> 老莫指出:"支撑太远的票根本不该买"。验证并落地。
### 17.1 洞察验证(距20日低点分桶)
| 距20日低点 | n | avg | wr |
|-----------|-----|------|-----|
| <5%(近支撑)| 2258 | +10.93% | 70.0% |
| 5-10% | 351 | +9.73% | 59.5% |
| 10-15% | 36 | +4.38% | 55.6% |
| 15-25% | 4 | -2.04% | 50.0% |
**结论**:支撑越近越好。距前低<5%的票(跌到近期底部、下方有承接)反弹最有力(+10.93%/wr70%);>10%的还在下跌途中、无支撑(avg崩至+4%以下)。
### 17.2 修正后入场条件
原 v_weak 条件 + **距20日低点 <5%**(剔除"还在下跌途中、下方无支撑"的票)
### 17.3 修正后表现
| 指标 | 原v_weak_8 | 修正版 |
|------|-----------|--------|
| 单笔 avg | +4.83% | **+5.13%** |
| 胜率 | 54.8% | **57.5%** |
| 去2018 | +6.00% | **+6.34%** |
| 正贡献年 | 10/11 | 10/11 |
| 组合6槽 | 310%/16.8%/19.4% | **310%/15.1%/19.4%** |
### 17.4 止损结论(前文S1/S2测试的教训)
- 弱支撑S1距入场仅1.6%→wr崩至17.9%(太近,一买就被扫)
- 强支撑S2可能在-20~-40%→最大单亏-41.6%(太远=没止损,扛单扛到死)
- **深超跌票下方无可靠技术支撑,止损用固定-12%(回测最优),入场用"距前低<5%"筛选确保有承接**
## 18. 止损+RR 正式定稿(2026-08-03RR维度验证)
> 老莫要求:①支撑太远不买(已落地§17);②必须考虑RR(Risk/Reward盈亏比)。本节省完整验证。
### 18.1 止损×RR 全组合扫描(7止损 × 3RR = 21组合,每月≤8)
| 止损 | RR | avg | wr | 去2018 | max亏 |
|------|-----|-----|-----|--------|-------|
| **固定-12%** | **2.5** | **+5.13%** | 57.5% | **+6.34%** | -12.0% |
| 固定-12% | 2.0 | +5.11% | **58.9%** | +6.23% | -12.0% |
| 固定-12% | 3.0 | +5.17% | 56.5% | +6.22% | -12.0% |
| ATR×3 | 3.0 | +4.61% | 57.2% | +5.51% | -22.4% |
| 前低-8% | 3.0 | +4.24% | 51.0% | +5.04% | -12.2% |
| 前低-6% | 3.0 | +3.73% | 48.3% | +4.40% | -10.3% |
### 18.2 为什么"跌破前低止损"不如固定-12%(诚实结论)
- v_weak 入场要求距前低<5%(§17),跌破前低止损距离仅4-8%
- 深超跌高波动票的正常波动就达4-6%,支撑止损太紧频繁被扫(wr 42-53% vs 固定58.9%
- **支撑筛选已在入场侧完成(确保下方有承接),止损侧用固定-12%控制单笔风险**
### 18.3 正式止损+止盈逻辑
- **止损**:入场价 -12%(盘中触发即出)
- **止盈**:入场价 +30%= RR2.5 × 12%止损距离,满足盈亏比≥2:1要求)
- **超时**:40个交易日按收盘平仓
- **同日冲突**:止损优先
- **RR 验证**:止盈/止损 = 30/12 = 2.5 ≥ 2 ✅
### 18.4 入场筛选(完整)
弱市(MA20下) + ADX∈[25,30] + bias60∈[-35,-20] + RSI≤25 + 5日急跌≤-3% + **距20日低点<5%(下方有支撑)** + 每月≤8 + 等权6槽
## 19. 三次评估流程优化:入场重评确认(缩量+收阳)(2026-08-03
> 按老莫"三次评估流程"(选股→入场重评→出场重评)重构回测,找到入场重评的确认条件。
### 19.1 三次评估回测探索
- 3stage初版(等回调买入): wr 48.2%——等回调=等继续跌,错过反弹不回调的票
- 3stage实盘对齐(深套/弱势豁免+swing MA10出场): wr 54.9%——MA10波段对深超跌高波动太敏感(97%被swing平掉)
- 结论: v_weak深超跌反弹票不适合实盘swing/MA10出场体系,需简单出场(tp/sl/time)
### 19.2 入场重评确认最优解(信号日12维确认)
| 确认条件 | n | avg | wr | 去2018 |
|----------|-----|-----|-----|--------|
| 基线(信号日直接买) | 292 | +5.13% | 57.5% | +6.34% |
| 当日收阳 | 204 | +4.43% | 54.4% | +6.40% |
| 缩量<1.0 | 221 | +2.82% | 53.8% | +3.56% |
| **缩量+收阳** | **136** | **+7.00%** | **61.8%** | **+8.46%** |
| RSI3日回升 | 115 | +3.35% | 48.7% | +4.82% |
| 大盘RSI<45 | 172 | +2.86% | 47.7% | +4.57% |
**最优: 缩量(<1.0)+收阳 双确认**——缩量=抛压衰竭, 收阳=资金进场, 过滤弱信号。
### 19.3 v_weak 最终形态(三次评估)
- Stage1选股: 甜区(弱市+ADX25-30) + bias60∈[-35,-20] + RSI≤25 + 5日急跌≤-3% + 距前低<5% + 每月≤8
- Stage2入场重评: **当日收阳 + 缩量(<1.0)** 确认才买入
- Stage3出场: 固定 tp30%/sl12%/hold40(简单出场,不适合swing/MA10
- 结果: 136笔/avg+7.00%/wr61.8%/去2018+8.46%/正年8/11/6槽ret163%/dd18.7%
## 20. C 机器学习探索:时序外验证(2026-08-03)
> 老莫要求 C(机器学习)在三次评估框架内试,不偏离实盘路径。用纯Python逻辑回归(无sklearn,防环境依赖)。
### 20.1 设计
- 样本: 2260 个 v_weak 候选(甜区+深超跌+RSI+急跌+距前低<5%),12维特征
- 标签: 未来40日是否达+30%止盈(正例率34%)
- 时序外: 前70%(2016-2023)训练, 后30%(2024-2026)测试——防过拟合
### 20.2 结果
| 概率阈值 | 精确率 | 召回率 | 预测买入 |
|----------|--------|--------|----------|
| 0.45 | **0.511** | 0.446 | 186笔 |
| 0.40 | 0.483 | 0.596 | 263笔 |
| 基线正例率 | 0.34 | — | — |
**时序外有效**: 逻辑回归把止盈精确率从基线34%提到51%(+17pp),非过拟合。
### 20.3 特征权重(新洞察)
| 特征 | 权重 | 含义 |
|------|------|------|
| mkt_adx | **+0.695** | 大盘ADX越高越倾向止盈(甜区内接近30上沿反弹更确定)|
| r10f | **-0.278** | 10日跌越深越好(恐慌释放充分)|
| r20f | +0.195 | 20日动量微正(企稳)|
| dist_lo20 | +0.187 | 距前低略远(站稳)|
| rsi_delta | -0.150 | RSI回升反而不利(已反弹的追高风险)|
### 20.4 结论
- ML 时序外有效(51% vs 34%),但**不优于"缩量+收阳"硬规则**wr 61.8%
- 硬规则可解释、无模型维护成本,**v_weak 保持硬规则**
- ML 发现的新因子(mkt_adx接近上沿、r10f深跌、rsi_delta为负)作为未来增强方向记录
## 21. 仓位优化:每月≤30 + 等权8槽(2026-08-03
> 老莫指出136笔/10年少、回撤18.7%高、问仓位控制影响。系统扫描 每月上限×槽位 矩阵。
### 21.1 仓位矩阵(每月上限 × 槽位)
| 月上限 | n | 槽 | 年化 | 总收益 | 回撤 | 收益/回撤 |
|--------|-----|-----|------|--------|------|-----------|
| 8 | 136 | 6 | 12.0% | 163% | 18.7% | 8.7 |
| 8 | 136 | 8 | 12.2% | 166% | 19.3% | 8.6 |
| **30** | **234** | **8** | **12.8%** | **178%** | **16.4%** | **10.9** |
| 30 | 234 | 10 | 12.5% | 172% | 17.5% | 9.9 |
| 5 | 100 | 4 | 10.9% | 142% | 20.4% | 6.9 |
**仓位结论**:8槽最优。4→8槽: 年化+2pp, 回撤-4pp, 收益/回撤6.5→10.9。等权分散是核心。
### 21.2 最终 v_weak 配置
- 每月≤30 + 等权8槽 + 缩量收阳确认 + tp30/sl12/40
- 234笔/10年(年均23笔) / avg+7.17% / wr62.4% / 去2018+8.02% / 正年8/11
- 组合8槽: +178% / 年化12.8% / 回撤16.4% / 收益回撤10.9
### 21.3 对比(解决三个质疑)
| 指标 | 原(月8/6槽) | 最优(月30/8槽) |
|------|------------|---------------|
| 笔数 | 136 | **234**(+72%) |
| 年化 | 12.0% | **12.8%** |
| 回撤 | 18.7% | **16.4%** |
| 收益/回撤 | 8.7 | **10.9** |
## §22 消息面补数据研究:同花顺 API 定向拉取能力(2026-08-04
> 老莫提醒:现代 web 应用是"拉到最后触发拉取下一批"(无限滚动),不是"下一页"翻页。且做过的事要记录(§ + 代码块规范)。本节固化消息面补数据的研究结论。
### §22.1 同花顺 timeline API 定向拉取能力(实测验证)
**接口**`https://news.10jqka.com.cn/timeline_web/web/v1/news/list`
**分页参数**
- `marketId`: 17=上交所(6开头), 33=深交所(0/3开头)
- `code`: 6位股票代码
- `size`: 每页条数(默认20,**实测可用100**,减少请求数)
- `offset`: **秒级时间游标**publishTime/1000),语义=**严格排他上界**(返回该时间戳之前的新闻)
**实测确认(600519 茅台)**
- offset=2024-06-01 00:00 → 返回 2024-05-31 21:49:29 及更早新闻(**offset 之前的**
- offset=某条新闻的确切秒 → **该新闻自身不被返回**(严格排他)
- 翻页连续无重叠无缺口(page1末 05-30 08:02:19 → page2首 05-30 06:41:30
- **历史深度可回溯到 2011 年**offset=2015 时返回 2011/2013/2014 新闻)
- `startTime/endTime/start/end/beginTime` 等参数**全部无效**——API 只支持 offset 单边上界
**窗口化拉取算法**(用于定向补某时间段新闻):
1. offset = 窗口终点 + 1秒(排他上界,包含终点时刻)
2. 往回翻页(size=100 减少请求)
3. 当本页最后一条 publishTime < 窗口起点 → 停止
4. 过滤只保留 [起点, 终点] 区间内的新闻
5. 实测:6 周窗口 19 页(size=20)→ size=100 只需 ~4 页,**0 条越界**
### §22.2 消息面补数据方案:定向拉取(非全量)
**原则**:不全量补全市场新闻,而是**先定赢家波段,只补相关股票在相关时段的消息**。
**首批研究对象**:涨幅≥80% 的极端波段,每年取涨幅前 20 → **220 个波段,210 只股票**,年份分布均衡(2016-2026)。
**定向窗口**:波段起点前 7 天 ~ 起点后 40 天(约 47 天),覆盖入场前后的消息面。
**执行结果**`news_backfill_window.py` 已完成首批拉取:
- 210 只 × 波段窗口
- **共入库 9471 条新闻**stock_news 表,source=同花顺iNews
- 单票窗口拉取约 3-8 页(size=20),全程约 20-30 分钟
### §22.3 12 维消息面可补的结论
| 维度 | 数据源 | 历史覆盖 | 状态 |
|------|--------|---------|------|
| 个股消息面 | 同花顺 ths_news.py | **2011+(实测)** | ✅ 可补 |
| 个股消息面(近期) | 东财 search-api | 近6个月 | ⚠️ 仅近期 |
| 大盘消息面 | macro_context_collector.py | 仅实时 | ❌ 硬缺口 |
| 行业消息面 | signal_news | 仅实时 | ❌ 硬缺口 |
**消费端**strategy_lab.py 的 `prepare_news_context()` + `news_mult=2.0` 已启用,补数据直接进回测增益。
### §22.4 已固化的采集脚本
```
/home/hmo/MoFin/deploy/profile-scripts/ths_news.py # 同花顺翻页采集(全量backfill+daily
/home/hmo/MoFin/deploy/profile-scripts/news_collector.py # 东财翻页采集(近6个月)
/tmp/news_backfill_window.py # 定向窗口拉取(赢家波段相关时段)
```
## §23 消息面分析最终结论:数据补全但无选股价值(2026-08-04)
> 老莫指导补全消息面数据(4001只赢家波段股×相关时段,401万条新闻)。全量分析后结论:**消息面不可用作选股因子**。
### §23.1 全量消息面数据
- 4001 只赢家波段股 × 波段起点前后窗口(起点-7天~+40天)
- 401 万条新闻入库(stock_news 表)
- 覆盖:同花顺iNews(主)+ 东财(近6月补充)
### §23.2 消息面 vs 波段收益(全量,诚实结论)
| 情绪 | n | avg_gain | 判断 |
|------|-----|---------|------|
| 利好(positive) | 198 | +52.8% | 无显著优势 |
| 中性(neutral) | 941 | +56.4% | 反而最高 |
| 利空(negative) | 153 | +49.5% | 仅略低 |
| 无新闻 | ~4100 | ~51.5% | 基线 |
**关键发现**
1. **新闻情绪与波段收益几乎无关联**——利好52.8% vs 利空49.5% vs 中性56.4%,差异不显著
2. **之前"有新闻波段+126.5%"是小样本噪音**248只子集),全量后消失
3. **反向因果**:大涨的票更可能有新闻(新闻是结果不是驱动)
### §23.3 12维消息面最终定位
-**数据已补全**(消息面维度不再缺)
-**不能作为选股筛选因子**(无统计显著关联)
- ⚠️ **可作辅助参考/排除**:波段起点有重大负面公告(监管处罚/业绩暴雷)的谨慎——但数据验证排除信号也弱
### §23.4 方法论教训
- **小样本假象**248只子集的"新闻+大涨"关联在全量后消失——必须先全量再下结论
- **反向因果陷阱**:消息是涨的结果不是原因,不能用"涨得多的有新闻"反推"有新闻的会涨"
- **数据补全 ≠ 策略价值**:补了400万条新闻,证明消息面在波段选股上无稳定规律——这是有价值的研究结论(证明此路不通)
## §24 新闻与上涨的时间关系:先导反而降低收益(2026-08-04)
> 老莫问:新闻发布时间和上涨开始时间有什么关系?分析发现:**新闻更多是滞后报道,先导新闻反而降低收益**。
### §24.1 新闻发布时间与波段起点的时间差分布
| 时间关系 | 占比 | 含义 |
|----------|------|------|
| 新闻在先>7天 | 33.3% | 新闻发布7天以上后股票才涨(先导)|
| 新闻在先1-7天 | 10.2% | 先导 |
| 新闻当天 | 2.2% | 引爆 |
| 新闻在后1-7天 | 12.5% | 滞后报道 |
| 新闻在后>7天 | 41.8% | 滞后报道 |
**平均时间差 -1.5天(新闻略滞后)**;先导43.5% vs 滞后54.3%。
### §24.2 先导新闻数与收益的关系(关键发现)
| 先导新闻数 | avg_gain |
|-----------|---------|
| **无先导** | **+59.5%** |
| 1条先导 | +48.8% |
| 2条先导 | +49.7% |
| 3+条先导 | +49.9% |
| **纯滞后(无先导)** | **+64.6%** |
**结论**
1. **无先导新闻的波段收益最高(+59.5%)**——先导新闻不但不预测大涨,反而**抑制收益**(有先导49.8% vs 无先导59.5%
2. **纯滞后(新闻只在涨后报道)的波段收益最高(+64.6%)**——再次证明"新闻是涨的结果"
3. **先导新闻越多,收益略降**——新闻密集=高关注=拥挤交易,推高后回落
### §24.3 消息面不能作选股因子的三重铁证
1. **§23**:有新闻/无新闻收益无差异(全量数据)
2. **§23**:利好/利空情绪无显著差异
3. **§24**:**先导新闻反而降低收益**——"没新闻盯上的票涨得更猛"
### §24.4 这解释了 v_weak 为什么用技术面能赚钱
v_weak 用"深超跌+缩量+收阳"选的是**没被新闻盯上的超跌票**(低关注度、无先导新闻、非拥挤交易),这些票反弹空间大。新闻先导的票是高关注拥挤交易,容易冲高回落。技术面避开"新闻拥挤度",正是 v_weak 的优势来源。
## §25 卖点研究:波段终点因子画像 + 出场机制验证(2026-08-04
> 老莫质疑:①Stage3 机械出场(tp30/sl12/40)是否合理、是否符合实盘"卖前12维重评"流程?
> ②v_next4 先于六步法/12维框架,是否还有调优空间?③v_weak 真的是最优吗?
> 核心提醒:研究要准确研究最佳买卖点(可多个/分仓)的具体因子,不要机械划百分比/时间区间硬凑。
### §25.1 波段终点数据重建(58135 波段补全终点画像)
- 之前 wave_starts.json 只存波段**起点**因子(买入点画像),无终点。
- 本次重建 /tmp/wave_ends.json58135 个 zigzag(8%) 波段补全**终点因子**
结束日期/价/涨幅/持续天数 + 终点处 rsi/bias20/bias60/量能(surge)/5日涨幅/连涨天数/距20日高/大盘ADX/大盘RSI + 峰后5/10/20/40日回撤 + 20日内是否创新高(假顶标记)。
- 波段终点画像(中位):涨幅+42.2%、持续22天、RSI 70.5、bias20 +19.6%、量能1.42(放量见顶)、连涨3天、大盘ADX 33.7。
- **峰后回撤(从峰顶)**5日-10.8%、10日-13.5%、20日-16.7%、40日-21.0% —— zigzag 峰是真实的顶,卖出点有依据。
- **假顶率 32%**(20日内创新高),真顶 68%。
### §25.2 真顶 vs 假顶:单因子无法区分(诚实结论)
| 因子(中位) | 真顶(68%) | 假顶(32%) |
|---|---|---|
| RSI | 70.4 | 70.7 |
| bias20 | +19.3% | +20.5% |
| 量能surge | 1.42 | 1.41 |
| 连涨天数 | 3 | 3 |
| 大盘ADX | 33.6 | 34.4 |
- **单因子在"峰顶那一刻"分不出真假顶**——顶是事后定义的(zigzag 需要 8% 回落确认)。
- 但这不代表卖点研究失败:**真正的决策点不是 zigzag 峰顶,而是"涨到+30%那一刻"**tp 触达时)。
### §25.3 +30%时刻分析(58133 样本):分仓卖出的数学依据
- 73.3% 的波段在 +30% 后还会创新高(峰在+30%后),平均还能涨 18.6%,中位 10.1%。
- 但 post_min20 中位 -9.2%46% 的票 20 日内回撤超 -10%。
- **数学**:全卖在+30% = 放弃 73% 票的后续涨幅(中位+10.1%);全不卖 = 46% 回撤超-10%。分仓可两头吃。
- **涨速是强区分因子**:≤5天到+30% 峰后还能涨 21.1%(快涨=强动能,不该全卖);>30天仅 9.3%(慢涨=弱动能,该落袋)。
- **bias20 强区分**<10% 回撤小(-6.1%);≥25% 弹性大但回撤深(-13.1%)。
- **无效因子**RSI@+30%9.9~10.1%全平)、量能、连涨天数——在+30%时刻无区分度。
### §25.4 v_weak 234笔实单的卖点真相
- 只有 68/23429%)触达+30%——v_weak 选的是**深超跌慢反弹**票,多数靠 time(40日) 或 stop 出场。
- 触达+30%的中位耗时 29.5 天(vs 全市场 21.4 天)——**v_weak 的票没有"快涨"类别**。
- 触达后:60日峰值收益中位 +50.5%(一半的票还能冲+50%),但 20日回撤 -10.7%。
### §25.5 出场机制严格回测(v_weak 信号全量 + 每月30 + portfolio_sim
| 出场 | 单笔avg | 6槽 | 8槽 | 10槽 |
|---|---|---|---|---|
| **机械 tp30/sl12/40(现版)** | 6.91% | **194.7%** | **181.4%** | **170.4%** |
| 分仓(半仓tp+半仓trail8%) | 7.01% | 173.9% | 160.8% | 157.1% |
| 全移动止盈 trail8% | 7.09% | 169.1% | 152.0% | 152.9% |
- **机械出场在 6/8/10 槽全部最优**(非实验假象,三口径一致)。
- 原因:**组合资金效率主导**。移动止盈/分仓延长持仓,8槽组合资金周转率下降,复利受损。
- **单笔最优 ≠ 组合最优**:v_weak 深超跌慢反弹票,+30%后继续持有的期望收益(中位+10%但回撤-11%)不足以补偿资金占用。
- **结论:对 v_weak 这类票,+30% 机械止盈就是组合最优卖点**——不是硬凑因子,是资金效率的自然结果。
### §25.6 入场侧验证(严格对齐复现)
- 严格对齐 v_weak 三次评估流程复现:信号日收阳+缩量确认 → 235笔/avg 6.91%/wr 63.4%(与库里 234笔/7.17%/62.4% 一致)✅
- 对比"次日确认"4.56%)和"无确认"3.56%):**信号日确认是最优**——入场侧已是最优。
- 全市场(无甜区)扫描发现:起点收涨 avg 5.27% vs 急跌 3.30%,放量 1.0-1.2 优于缩量——但**叠甜区后贴底+缩量仍然最优**(甜区是前提)。
### §25.7 对老莫三个质疑的回答
1. **Stage3 机械出场"不合理"的质疑**:经严格回测,机械出场在组合口径下**确实最优**(资金效率论据)。但实盘"12维出场重评"的价值不在单笔收益,而在**风险控制**(大盘转坏/消息面恶化时提前离场)——组合回测无法体现,需实盘验证。
2. **v_next4 调优空间**:确认存在——它先于方法论,出场是 swing MA10 机械规则,从未做过终点因子研究;10y 仅103笔/5槽cagr 4.6% 弱于 v_weak(10.7%)。按六步法重走 v_next4 是下一步(趋势市赢家的买卖点)。
3. **v_weak 是否最优**:入场侧已最优(信号日确认验证);出场侧组合口径下机械已最优。**剩余优化空间在 v_next4 重做,不在 v_weak 微调**。
### §25.8 数据与脚本位置
- /tmp/wave_ends.json58135波段终点)、/tmp/tp30_moments.json58133个+30%时刻)
- /tmp/wave_ends.py(终点重建)、/tmp/tp30.py+30%时刻)、/tmp/strict_cmp.py(严格对齐)
- /tmp/final_cmp.py、/tmp/scale_cmp.py(组合口径出场对比)
## §26 v_next4 六步法重做研究(2026-08-04
> 老莫质疑:v_next4 先于六步法/12维框架诞生,是否有调优空间?
> 结论:有——但不是换入场因子(赢家采样陷阱),而是调优信念权重结构。
### §26.1 趋势市波段起点画像(15639 个,大盘MA20上方的赢家)
- 趋势市赢家起点特征:**贴MA60上方(bias60≈-2.7%) + RSI中等(46.6) + 大盘ADX低(20.7,趋势酝酿期) + 大盘RSI健康(56.7)**——是"趋势回踩/启动点",不是超跌抄底。
- 与弱市起点(RSI 37/深跌-10%/大盘ADX 47)完全不同——**两个市场状态需要完全不同的选股逻辑**,验证了 v_weak(弱市)+v_next4(趋势市) 分工的必要性。
### §26.2 赢家采样陷阱(重要方法论教训)
- 从趋势市赢家起点归纳三因子:bias60[0,5)+r20f[0,5)+shrink[1.0,1.2) → 赢家集内涨幅均值165%/中位114%/p90 329%/大赢家75%。
- **但全市场实时筛股完全失败**avg -0.3%/wr 40%(信号爆炸8万+,正例率被稀释)。
- 原因:wave_starts 是**事后采样**(只含最终涨≥30%的波段起点),"先知道答案再找特征"。
- **教训:赢家采样归纳的因子必须用全市场实时回测验证才能落地**。v_weak 能成功是因为甜区(大盘ADX 25-30)先压缩了宏观状态。
### §26.3 v_next4 实单103笔因子分析(有效发现)
| 组合 | n | avg | wr | 解读 |
|---|---|---|---|---|
| dist_ma20[5,10] × ma20_slope<-2 | 12 | 24.64% | **92%** | 回调中突破(最强) |
| RSI 60-70 × dist_ma20[10,15] | 19 | 32.02% | 68% | 强势突破买点 |
| RSI 60-70 × dist_ma20[5,10] | 13 | -5.49% | **31%** | 追高陷阱(RSI高+贴均线) |
| RSI 50-60 × dist_ma20[5,10] | 35 | 13.62% | 66% | 回调企稳买点 |
- 但全市场验证单因子组合同样失败(avg -0.6~-3.2%)——**v_next4 的 alpha 不在单因子,在 v8.1 评分体系+信念叠乘**。
### §26.4 信念叠乘是真正 alpha
| boost | n | avg | wr |
|---|---|---|---|
| **4.03+信念命中)** | 26 | **25.89%** | **92%** |
| 2.01-2信念) | 44 | 10.33% | 61% |
| 1.0(无信念) | 33 | 8.24% | 42% |
- **flow_delta>0**10笔 100% wr(已验证最强信念)
- **行业ADX>25**28笔 wr89%(有效,但可能限制收益弹性)
- **DNA**24笔 wr62% vs 无 63%——**几乎无效,DNA×2 应降权**
### §26.5 出场侧:swing 波段体系有效
| 出场类型 | n | avg | wr | 中位 |
|---|---|---|---|---|
| swing_re(破MA10出→收回再进)| 21 | **32.79%** | **86%** | 25.37% |
| swing_out(破MA10出)| 42 | 11.18% | 67% | 5.56% |
| stop | 40 | 6.04% | 48% | -3.00% |
- 23 笔 >30% 大赢家(含 181.3%/157.7%)主要来自 swing_re 再进场——**波段体系捕捉多波行情的能力是核心价值**。
### §26.6 结论:v_next4 优化方向(六步法第6步:细调参数)
1. **DNA×2 信念降权**(无区分度 62%vs63%)——节省的权重给 flow_delta/行业ADX
2. **flow_delta>0 强化**100%wr 最强)
3. **行业ADX>25 维持**(wr89% 有效)但验证是否限制弹性
4. **boost 封顶结构优化**(4.0 已验证 wr92%,可探索提高封顶或中间档)
5. **swing 出场保留**(大波段捕获机制,优于固定出场)
6. 不做:换入场单因子(已证明赢家采样陷阱)
## §27 v_next4 适用范围真相 + 信念权重调优(2026-08-04
> 变体调优过程中发现比调优本身更重要的事实:**v_next4 从未经过全市场验证**。
### §27.1 重大发现:v_next4 的全部历史验证都在 267 池上(非全市场)
- 备份时间线(data/backups/):stock_daily 代码数 07-29=272、07-30~08-01=520、**08-02=4266(全市场扩表)**。
- v_next/v_next3/v_next4 的全部 2y/5y/10y 回测(2026-07-30~08-02 凌晨)都跑在扩表前的小库上:
- 当时 stock_daily 520 codes 中 ~253 只是港股(5位0开头),universe='a' 过滤后 **A 股仅 ~267 只(204 科创板 + 36 沪市 + 其他)**
- 即 MoFin 实盘跟踪池——与实盘 watchlist_stocks 的构成一致(688/603 为主)。
- strategy_research 记录佐证:v_next4 全部记录 total_stocks_screened=267v_mr08-02 10:18 扩表后)screened=4013。
### §27.2 全市场复跑:v8.1 评分体系池外完全失效
| 口径 | trades | wr | avg | 3槽组合 | full ret |
|---|---|---|---|---|---|
| 池内复现(261只) | 108 | 61.1% | 12.65% | +23.1% | +79.5% |
| 库里记录(267池) | 103 | 63.1% | 13.59% | +57.6% | +81.6% |
| **全市场(4001只)** | **1427** | **35.9%** | **2.65%** | **-34.3%** | +36.6% |
- 池内 vs 全市场:wr 61%→36%、3槽组合 +23%→**-34%**——v8.1 的 edge 严格依赖跟踪池的票质(科创板+沪市大盘)。
- 池内复现与库里记录的微小差异(108 vs 103 笔)来自 08-04 新闻回填(新闻信念因子全周期可用性改变)。
- **结论:v_next4 是"池内有效策略",不是"全市场策略"。组合页数字(103笔/63.1%)是池内口径——对实盘(跟踪池=生产范围)有效,但不能外推。**
### §27.3 信念权重变体调优(池内 10y,内部一致口径)
| 变体 | 3槽 ret | 3槽 dd | full ret | full dd |
|---|---|---|---|---|
| v_next4 基准 | 23.1% | 23.4% | 79.5% | 5.9% |
| A: DNA×1 降权 | 20.4% | 21.9% | 75.7% | 3.5% |
| B: flow×3 强化 | 28.6% | 23.4% | 79.9% | 5.9% |
| C: cap×6 提高 | 23.1% | 23.4% | 80.5% | 5.9% |
| D: 三者组合 | 25.7% | 21.9% | 78.0% | 3.5% |
- **DNA 降权反而变差**full 75.7% vs 79.5%)——§26 的"DNA 无区分应降权"被 106 笔噪声误导:DNA 虽不区分胜率,但 ×2 仓位对收益有正贡献。**DNA 权重维持 ×2**。
- **flow×3 是唯一正差异**3槽 +5.5pp),但 full 口径无差异(79.9% vs 79.5%)——疑似噪声,108 笔样本不足以确认。
- cap×6 无影响(封顶×4 极少触发)。
- **结论:108 笔样本下所有变体差异都在噪声范围内,信念权重无显著调优空间。v_next4 现有配置即为局部最优。**
### §27.4 对组合策略的修正认知
1. **v_weak(弱市)**:全市场验证(4007只 screened)✅ 证据强度高
2. **v_next4(趋势市)**:仅池内验证(267只)⚠️ 但实盘扫描范围=跟踪池,池内数字对实盘有效
3. **两策略验证口径不对称**——v_next4 若要声称"全市场趋势策略",需要在全市场上重新推导(v8.1 评分在全市场失效,需重构);若实盘范围就是跟踪池,则现有数字可用
4. **行动项**:组合页 v_next4 卡片应标注"适用池:系统跟踪池(267只)";v_next4 全市场化的重构是独立的后续课题(如果要的话)
## §28 市场周期分策略方案评估(2026-08-04)
> 老莫问题:分市场周期(牛/熊/震荡)采取不同策略的方案是否正确?能否更细分?能否拓展到行业/概念粒度?
### §28.1 赢家口径(58135 波段起点):ADX 细分差异小
- 大盘MA20上:各 ADX 桶波段涨幅 54.5~57.2%(全平);MA20下:48.1~52.2%(全平)。
- 上 vs 下有 ~5pp 差异(55.9% vs 50.9%)——**主分类(上/下)有效,ADX 细分在赢家层面无增量**。
### §28.2 信号口径(任意买入前瞻收益,400股采样):细分有真实价值
| 格子 | r60均值 | r60胜率 | 解读 |
|---|---|---|---|
| 下+ADX15-20 | **-3.72%** | **35.8%** | 下跌中继,接飞刀区(最危险) |
| 下+ADX25-30 | +0.49% | 42.6% | v_weak 甜区 |
| 下+ADX>=40 | **+3.51%** | **48.9%** | 恐慌极值,均值回复区(基准最好) |
| 上+ADX20-25 | +1.07% | 46.1% | 趋势酝酿 |
| 上+ADX>=40 | +0.47% | 43.1% | 强趋势中 |
- **格子间 r60 差距 7pp**——信号口径下细分有真实信息量。
- **现有 3 分类(trend_up/choppy/trend_down)的问题**trend_down 把"下跌中继"(下+15-20r60 -3.7%)和"恐慌极值"(下+>=40r60 +3.5%)混为一谈——这两个状态风险收益完全相反。
- **结论:方案方向正确(按周期分策略),但弱市侧应加 ADX 子状态**:下+15-20=禁买区、下+25-30=v_weak甜区、下+>=40=极值观察区(潜在新策略空间)。
### §28.3 行业粒度:池内证据强,全市场数据缺失
- 池内样本(259只有行业映射的票):**M下+S下+行业ADX<20 → r60均值+21.65%/wr79.4%**n=68),M上+S上+ADX20-30 → +10.99%/58.7%。
- 行业周期在大盘周期之外有**明显独立信息量**(79.4% vs 全体~45%)。
- **但全市场行业映射缺失**stock_sectors_em 只覆盖 259 只(跟踪池)、stock_sectors(ths) 是旧港股体系。sector_index_daily 有 140 个行业指数全历史。
- **结论:行业粒度值得做,前置条件=回填全市场行业映射(东财行业成分股 API,~140 行业)**。概念粒度数据基础更缺,暂缓。
### §28.4 周期方案最终建议
1. 保留"大盘MA20上下"主分类(v_next4趋势/v_weak弱市分工正确)
2. 弱市侧加 ADX 子状态:15-20禁买 / 25-30甜区(现v_weak) / >=40极值区(潜在新策略)
3. 行业粒度作为 12 维第二层,回填映射后做"行业周期×大盘周期"双周期策略
4. 数据前置:行业映射回填(140行业成分股)+ 资金流回填(现只有259只)
## §29 v_next 全市场重建尝试:三条路径全败(阴性结论,2026-08-04)
> 按老莫指示"不局限v8.1,按3/6/12规则重建"。三条独立路径全市场验证全部失败。
### §29.1 路径A:赢家状态因子(六步法第1-3步)
- 趋势市赢家起点画像(15639):贴MA60上方(bias60[0,5)) + 20日企稳(r20f[0,5)) + 温和放量(shrink[1.0,1.2))——赢家集内均值165%/中位114%/p90 329%。
- 全市场实时筛股:**avg -0.32%/wr 40%**82485信号)。加流动性过滤 amt≥3000万/1亿/3亿:**全部仍负**-1.68%/-1.32%/-0.33%)。
- **流动性过滤救不了赢家因子**——温和状态在全市场太常见,正例率被稀释到无法挽救。
### §29.2 路径Bv8.1 评分直接推广
- 全市场:1427笔/wr35.9%/avg2.65%/3槽组合 **-34.3%**。
- 池内 vs 池外拆分:池内 108笔/61.1%/12.65% vs 池外 1319笔/33.8%/1.84%。
- **同交易所内池内也优**688池内 13.45%/61.9% vs 688池外 6.95%/43.2%603池内 5.8%/50% vs 池外 0.53%/30.3%。
- **edge 与池子策展绑定,不可泛化**。池外最差是创业板300(wr 27.3%)。
- 池内分年:2022 +16.0%/2025 +28.8%/2026 +18.9%(趋势年赚),2023 -3.8%(熊年亏)——趋势策略属性正确。
### §29.3 路径C:事件触发(稀缺事件假设)
| 信号 | 月30后 | avg | wr |
|---|---|---|---|
| 首次站上MA60(60日内≥45天在下) | 3132 | -1.61% | 35.0% |
| 首站MA60+放量1.5 | 2599 | -1.28% | 34.6% |
| 破20日新高 | 3234 | -1.76% | 33.8% |
| 破20新高+放量1.5 | 3175 | -2.35% | 30.5% |
- **放量在趋势市是负面因子**(放量组全更差)——与直觉相反,A股放量突破=追高坟墓。
### §29.4 硬结论
1. **A股全市场趋势跟踪无简单技术 edge**:趋势市基准率≈0(r60 0.5~2.6%),所有简单技术信号(状态/事件/放量)全是零或负贡献。
2. v_next4 的 edge = **池子策展 × v8.1复杂评分 × 信念叠乘**三者组合,拆开任何一个都失效——不可拆解泛化。
3. 与 v_weak 的对比:v_weak 的 edge 来自**极端状态+宏观甜区**(深超跌+ADX25-30),是统计上真实的均值回复边缘;趋势侧没有对应的简单边缘。
4. **若要坚持全市场趋势策略**,唯一未试的路径是 12 维全因子(技术+消息+资金+行业)综合评分——前置条件:回填全市场资金流(现259只)和行业映射(现259只)。消息面已全市场(3971只/403万条)。
5. **当前最合理配置**:趋势侧用 v_next4(池内有效,实盘范围=池)+ 弱市侧 v_weak(全市场验证)+ 周期细分按 §28.4 加 ADX 子状态。
## §30 行业粒度验证 + 行业数据回填(2026-08-04
> 承接 §28.3:行业粒度是否有独立信息量。先回填数据再验证。
### §30.1 行业映射回填(stock_sectors_em 259 → 3454
- 东财从 246 不可达(07-22 实证),从 Windows 端经代理拉取:东财行业板块(fs=m:90+t:2496 个板,与 sector_index_daily 命名匹配 103 个行业。
- 逐行业拉成分股(fs=b:BKxxxxpush2delay 节点绕开封禁),**3454 条 code→行业映射**入库 stock_sectors_em(保留原 259 条池内映射)。
- 覆盖我们 A 股 2346/401058.5%)。未覆盖的 1664 只属命名不匹配的行业(东财三级名 vs 服务器混合命名),后续慢速任务补。
### §30.2 行业周期独立信息量验证(1902 只有完整数据的票)
| 大盘 | 行业 | 行业ADX | r60均值 | 胜率 |
|---|---|---|---|---|
| M上 | S上 | >=30 | **+7.74%** | **54.2%** ← 最差(追涨陷阱) |
| M上 | S下 | 20-30 | +11.00% | 63.6% |
| M下 | S上 | <20 | +16.02% | 64.5% |
| M下 | S下 | <20 | **+20.80%** | **70.0%** ← 最好 |
分年稳健性(注意:行业行情数据仅 2024-07 起,此为 2 年窗口内分年):
| 状态 | 2024H2 | 2025 | 2026 |
|---|---|---|---|
| M下S下(双弱) | +35.9%/88% | +11.6%/65% | +8.1%/44% |
| M下S上 | +22.7%/73% | +9.0%/59% | +4.3%/41% |
| M上S下 | +9.1%/59% | +11.1%/65% | +1.1%/37% |
| M上S上(双强) | +5.0%/48% | +10.3%/61% | +3.9%/42% |
- **"双弱>双强"三个时段全成立**——行业周期在大盘周期之外有稳健独立信息量。
- 这与 §29 结论自洽:A股均值回复主导所有层级(个股深超跌 v_weak 有效 / 行业双弱最优 / 双强追涨最差)。
### §30.3 数据缺口与回填状态
1. **行业映射**3454 条(58.5% 覆盖)✅ 已入库;剩余 ~1664 只待慢速补齐
2. **行业指数历史**sector_index_daily 仅 2024-07 起(125 行业)——**10y 回填被东财封禁阻塞**clist 端点 502、kline 端点 push2his 一度可用后也被重置)。Windows 后台脚本带退避重试+断点续跑(/tmp 对应本机 fetch_sector_hist.ps1),解封后自动补齐 ~103 行业 10y 日K
3. **资金流**stock_capital_flow 仅 259 只(池),全市场回填未开始(新浪路线可行,capital_flow_collector.py 已有新浪 fallback
### §30.4 组合页修正(本次已落地)
- v_next4 卡片加**适用池警告**(267池验证,全市场失效,不可外推)
- v_weak 卡片数字更新为最终 8 槽口径(234笔/62.4%/8槽ret178.3%/年化12.8%/回撤16.4%
### §30.5 行业粒度策略展望(数据齐后)
- 双周期框架:大盘周期 × 行业周期 12 格定位,v_weak 可加行业状态增强(双弱区加权)
- 行业轮动角度:超配"行业ADX<20的双弱行业"做均值回复,回避"双强高ADX"追涨
- 前置:§30.3 的三项回填完成
## §31 行业指数10y合成回填 + 行业周期10年验证(2026-08-05
> 东财封禁期间的替代方案:**用成分股自己合成行业指数**——不等解封,当天完成。
### §31.1 行业指数合成方法(153,944 行新增,15秒完成)
- 数据源:stock_daily(全市场10y日K+ stock_sectors_em3454条新映射)。
- 方法:每行业每日取成分股等权日收益累乘成指数(base=1000);high/low 用成分股 high/prev_close、low/prev_close 均值近似(供 ADX 计算);volume=成分股成交量合计。
- 接缝对齐:合成序列缩放到 2024-07-01 EM 官方值的"昨收"(由 EM change_pct 反推),保证接缝收益连续(实测接缝日收益与记录完全一致)。
- 校验:半导体 2018 -45.3%(熊市)/2019 +92.1%(芯片牛)、银行 2024 +49.5%(银行牛)——符合史实。
- **幸存者偏差注记**:合成用今日成分股回看历史,退市股缺失——因子分析可接受,绝对收益略有高估。
- 结果:全部 103 个行业从 2016-07 起有完整日K(原 EM 数据仅 2024-07 起)。
### §31.2 行业周期 10 年全样本验证(1964 只 × 10 年,~16 万采样)
| 格子 | r60均值 | 胜率 | 定位 |
|---|---|---|---|
| **M下+S下+ADX<20(双弱+衰竭)** | **+3.93%** | **47.1%** | 最优 |
| M下+S下+20-30 | +2.85% | 46.3% | 次优 |
| M上+S上+<20 | +2.82% | 47.5% | 中 |
| M上+S上+>=30(双强) | -0.01% | 41.4% | 追涨陷阱 |
| **M下+S上+>=30(弱市+行业强撑)** | **-2.75%** | **35.7%** | **补跌陷阱(最差)** |
分年(关键三格):双弱在 8/10 年最优或次优(2018熊 -0.5% vs 双强 -7.5%2024反转 +16.7%/62%);补跌阱在弱市年年垫底(2018 -11.4%/26%);双强永远平庸。
### §31.3 对 §30 结论的修正(2y → 10y)
- §30 的 2y 窗口(2024-07~2026)高估了行业周期强度(+20.8%/70%);**10y 全样本为 +3.93%/47.1%——方向不变,幅度收敛**。
- 2y 窗口恰逢 9/24 行情等极端反转期,均值回复边缘被放大。
- **定性结论全部保留**:双弱>双强、补跌阱回避、追涨无edge。
### §31.4 行业状态的策略定位:过滤/倾斜,不是信号
- 格子间差距 6.7pp 均值 / 11.4pp 胜率——**真实但温和**。
- 正确用法:①v_weak 信号在"补跌阱"M下S上>=30)行业时**降权或回避**;②双弱行业的信号**加权**;③行业状态作为 12 维的行业×技术面输入。
- 错误用法:单独用行业状态做买入信号(基准率本身仍为负中位)。
### §31.5 数据资产现状(本轮后)
| 数据 | 覆盖 | 状态 |
|---|---|---|
| stock_daily 个股日K | 4010只 10y | ✅ 全量 |
| stock_news 消息面 | 3971只 403万条 | ✅ 全量(08-04回填) |
| stock_sectors_em 行业映射 | 3454条(58.5%) | ⚠️ 部分,剩余1664只待东财解封慢补 |
| sector_index_daily 行业指数 | 103行业 10y | ✅ 合成回填完成(§31.1) |
| stock_capital_flow 资金流 | 259只 | ❌ 仅池内,全市场待回填(新浪路线) |
- 12维全市场数据基础:技术面✅ 消息面✅ 行业✅(合成)资金面❌——**唯一缺口=资金流**。
## §32 资金流全市场回填完成——12维数据基础全齐(2026-08-05
### §32.1 关键发现:新浪资金流 API 有全历史
- `MoneyFlow.ssl_qsfx_zjlrqs` 单票返回**上市以来全部日线**(茅台 3983 天,2010 起)——现有 capital_flow_collector.py 只取最近 5 天是浪费。
- 字段:netamount(主力净流入额)、ratioamount(净流入占比)、r0_net(超大单)。无 r1/r2/r3 大中小单分解(老接口已死)。
- 与东财口径数值不同但**符号一致**(3/3 对照验证)——flow 因子是符号驱动,混源可用(INSERT OR IGNORE 保留原东财行)。
### §32.2 回填执行(双机分流绕开单IP限速)
- 246 直跑被新浪限速(~19s/只,ETA 7 小时)→ 拆分:246 跑前 800 只 + Windows 本机 8 进程跑 3210 只(不同 IP)。
- Windows 侧 10 分钟跑完(0 封禁),scp 回 246 入库(720 万行/28 秒)。
- **最终:9,243,548 行,3980/4010 codes99.3%**v_weak 实单票覆盖 221/222。
- 30 只永久缺口:920 北交所 / 518880 ETF / 退市股(新浪天然无数据,可接受)。
### §32.3 数据质量校验
- 茅台 9/24 行情日主力净流入 +31.57 亿(+24.1%)、9/26 +32.7 亿、10/8 崩盘日 -31.98 亿——与史实完全吻合。
- 历史深度 2016-01 起(2016 年 64.8 万行)。
### §32.4 12维全市场数据基础——最终状态(全部就绪)
| 维度 | 数据 | 覆盖 | 状态 |
|---|---|---|---|
| 技术面 | stock_daily | 4010只 10y | ✅ |
| 消息面 | stock_news | 3971只 403万条 | ✅(08-04回填) |
| 行业 | stock_sectors_em + sector_index_daily | 3454映射(58.5%) + 103行业10y(合成) | ✅(§31 |
| 资金面 | stock_capital_flow | 3980只 10y 924万行 | ✅(本节) |
- **12 维全因子研究的数据基础已全部就绪**。剩余小尾巴:1664 只行业映射未覆盖(东财解封后慢补)。
### §32.5 回填资产清单(复用价值)
- 新浪资金流全历史接口:`vip.stock.finance.sina.com.cn/.../MoneyFlow.ssl_qsfx_zjlrqs?daima=sh600519`(单票全历史,0.4s 间隔安全)
- 双机分流模式:246 被限速时,Windows 本机(不同 IP)分片并行 + scp 回传 + INSERT OR IGNORE 入库
- 行业指数合成:成分股等权收益累乘(§31.1),不再依赖东财行业指数接口
- 脚本:/tmp/flow_backfill.py246)、fetch_flow_chunk.ps1Windows 分片)、/tmp/import_flow.py(入库)
## §33 行业映射全量回填完成——12维数据基础最终态(2026-08-05
### §33.1 全量行业板成分股回填(东财解封后)
- push2delay 节点 clist 端点解封后,抓全部 **496 个行业板**成分股(0 失败,1.2s 慢速)。
- 映射策略:每票优先映射 sector_index_daily 已有行业名(选成分股最少=最细粒度),否则全局最细粒度板。
- **stock_sectors_em: 259 → 5061 条,覆盖 3953/401098.6%**。
- 57 只永久未映射:退市/停牌股(不在任何当前行业板),可接受。
### §33.2 204 个新行业指数合成(+356,300 行,12 秒)
- 复用 §31.1 成分股合成法,204 个新行业全部补齐 10y 日K。
- **sector_index_daily: 299 个行业,全部 2016-07 起**。
### §33.3 12维全市场数据基础——最终态
| 维度 | 数据 | 覆盖 | 状态 |
|---|---|---|---|
| 技术面 | stock_daily | 4010只 10y | ✅ |
| 消息面 | stock_news | 3971只 403万条 | ✅ |
| 行业 | stock_sectors_em 5061条 + sector_index_daily 299行业10y | 映射98.6%/可分析96.8% | ✅ |
| 资金面 | stock_capital_flow | 3980只 924万行 10y | ✅ |
- v_weak 实单票:行业可分析 215/222、资金流 221/222。
- **12 维全因子研究数据基础完备,无剩余缺口**。
### §33.4 本轮数据工程方法论沉淀(复用价值高)
1. **东财封禁应对**clist 封禁 → push2delay 节点绕行;全封 → 成分股合成指数替代官方指数。
2. **双机分流**:单 IP 限速时拆双机(246 + Windows 不同 IP)分片并行,scp 回传 INSERT OR IGNORE。
3. **新浪资金流全历史**ssl_qsfx_zjlrqs 单票全历史(现有采集器只取5天是浪费)。
4. **行业指数合成**:成分股等权收益累乘 + 接缝对齐(缩放至官方值反推昨收),史实校验(半导体2018 -45%/2019 +92%)。
5. 哨兵值守模式:封禁期间每 10 分钟单发探测,解封自动批量 + 断点续跑。
## §34 v_weak 行业增强验证(阴性)+ mr_scanner 实盘切换(2026-08-05
### §34.1 v_weak × 行业状态增强:无提升(阴性结论)
- 数据基础:§31-33 行业映射+指数全齐后,给 286 个 v_weak 信号(strict 复现集)挂行业状态。
- 信号行业分布:S下+ADX>=20 占 208/28673%)——**v_weak 的入场条件已隐含选对行业状态**(深超跌票在弱市,行业必然同步下跌中)。
- 变体对比(8槽组合口径):
| 变体 | n | avg | 8槽ret | dd |
|---|---|---|---|---|
| 基线 | 235 | 6.91% | **181.4%** | 12.6% |
| A: 回避补跌阱(S上+ADX>=30) | 231 | 6.99% | 176.9% | 12.6% |
| B: 双弱×1.5/补跌阱×0.5 | 235 | 6.91% | 174.5% | 13.9% |
- 补跌阱信号仅 4 个、双弱仅 19 个——**行业状态对 v_weak 是重复信息,不构成增强**。
- 行业周期作为独立倾斜层仍有效(§31 基准率),但作用于 v_weak 级别的精细策略时边际价值≈0。结论:v_weak 维持原参数,不加行业过滤。
### §34.2 mr_scanner.py 切换 v_weak 参数(实盘落地,commit b82bd9ac
- 背景:v_mr 精选版已被证伪(§12:2018 依赖、去2018 掷硬币),扫描器一直跑旧参数——研究层与实盘的 GAP。
- 切换内容(与回测严格对齐):
- 入场六条件:bias60∈[-35,-20) + RSI≤25 + 5日急跌≤-3% + 距20日低点<5% + 信号日收阳 + 缩量vol5/vol20<1.0
- 出场:tp30%/sl12%/40日(RR 2.5:1
- 排序:bias60 升序(最深超跌优先,§15 自然序)
- 门控保留:trend_down/choppy + 大盘ADX甜区[25,30)
- 候选仍写 sector='v_mr'(管道槽位名不变,下游兼容)
- 单测:合成样本命中(tp=价×1.30精确)、收阴/放量样本正确拦截 ✓
- 部署:deploy/profile-scripts 与 hermes 运行位置为硬链(inode 40044),commit 即生效。
- **deploy_guard 教训复发**:分批 patch 超 15 分钟未 commit 被全部回滚——必须"一次性 patch + 立即 commit"(本次已按此执行)。
### §34.3 当前实盘行为预期
- 当前大盘 trend_down + ADX=622026-08-04)→ 甜区外,扫描器按规则跳过(强跌市不出手,§16 教训)。
- ADX 回落至 [25,30) 时自动按 v_weak 六条件扫描。
## §35 12维全因子趋势重建:终结性阴性结论(2026-08-05)
> §29 三连败时留下的疑问:"是不是数据不全?"——现在 12 维数据全齐(技术/消息/行业/资金),做第 4 次也是最后一次全因子尝试。
### §35.1 趋势赢家全因子分析(15639 起点 × 技术+资金+行业)
- 资金流覆盖 99%、行业覆盖 85%(§32/§33 回填成果)。
- **唯一强区分因子:当日主力净流入 flow_pct≥5%**——赢家集内 681 个此类起点,涨幅均值 112.4%、大赢家率 50%vs 基准 21%2.4 倍)。
- flow_5d/flow_delta/行业ADX/行业状态:全无区分度。
### §35.2 全市场验证:再次失败(第 4 条路径)
| 组合 | 总信号 | avg | wr |
|---|---|---|---|
| flow≥5 | 1,140,255 | -1.90% | 34.4% |
| flow≥8 | 901,425 | -1.91% | 34.0% |
| flow≥5+bias60[0,5) | 257,231 | -0.89% | 38.4% |
| flow≥5+bias60+r20f | 102,367 | -0.38% | 39.8% |
### §35.3 赢家采样陷阱的数学本质(重要方法论沉淀)
- flow≥5 在全市场 **25% 的交易日触发**(毫无选择性),但在赢家集里只占 4.4%。
- 赢家集里的"50% 大赢家率"是 **P(大波段 | 已是波段, flow≥5)**——条件概率;
全市场要做的是 **P(波段 | flow≥5)**——先验概率崩了。
- **教训:赢家集条件概率再漂亮,也必须过全市场先验这一关。这是六步法第3步存在的意义。**
### §35.4 终结性结论:A股趋势跟踪的 edge 边界
1. **全市场趋势跟踪在任何简单因子组合下无 edge**——技术(§29A)、v8.1评分推广(§29B)、事件触发(§29C)、资金流+状态压缩(§35)四条独立路径全部失败。
2. 数据不全不是原因——12 维数据补齐后结论不变。
3. **趋势侧的 edge 只存在于**:池子策展(v_next4 的 267 池,§27)或更复杂的机制(多因子综合评分+信念增强),不可拆解为简单因子。
4. **A股的结构性边缘是均值回复,不是趋势跟踪**:v_weak(弱市深超跌+甜区)是全市场验证的唯一有效策略形态;行业双弱(§31)是同构的另一表现。
5. **最终组合架构(不再变动)**
- 趋势市(大盘MA20上):v_next4(池内)或空仓
- 弱市甜区(MA20下+ADX[25,30]):v_weak(全市场,已实盘切换 §34)
- 强跌市(ADX>30):空仓等待(§16 教训)
- 禁买区(弱市+ADX 15-20):不接飞刀(§28.2
## §36 flow≥5 六步法完整重测:协议到位后的确定阴性(2026-08-05)
> 老莫两次指正:①六步法不能跳过第4步负面因子;②不能用僵硬首尾天数判定涨跌,买卖点都是动态的(固定天数只是兜底);③选股/买点/卖点都是12维全量评估的产物(3+12模式),六步法是研究流程。本节按完整协议重测。
### §36.1 修正的衡量方式:结构买卖点(动态)
- 买点=信号日;**卖点=入场后价格结构峰值反转8%**(与 zigzag 波段定义同构的动态卖点,非拍脑袋百分比/天数);60日仅为兜底。
- 双指标:**可捕获**(入场后结构峰值,"曾经抓到多少")+ **兑现**(结构反转点出场实际落袋)。
- flow≥5 全市场 114 万信号:可捕获均值 11.1%/中位 6.1%**42.8% 曾形成≥8%峰值、8.7% 曾≥30%**(首尾判定会把这些埋成 0%);但兑现均值仅 +0.54%/wr 36.1%。
### §36.2 第4步:负面因子(12维全量,114万信号挂17个因子)
| 负面因子 | 数据 | 动作 |
|---|---|---|
| 大盘RSI<40(弱反弹初期) | 捕获率4.9%/wr26% | 排除 |
| 爆量 shrink≥2.0 | rea-0.41%/wr31% | 排除 |
| 无新闻(news3=0 | 捕获8.6% vs 负新闻14.5%/wr43% | 倾斜 |
| 正面倾斜:大盘ADX≥409.6%/39%)、dist_lo20≥8(单调5.8→10.4% | | |
### §36.3 第5步:正负合并——仍然不可行
| 组合 | n | 捕获率 | rea均值 | wr |
|---|---|---|---|---|
| flow≥5 基线 | 1,128,932 | 8.7% | +0.54% | 36% |
| 双排除+ADX≥40+dist≥8 | 236,751 | 10.8% | +1.85% | 40% |
| **双排除+ADX≥40+dist≥8+负消息** | **6,596** | **13.3%** | **+3.31%** | **45%** |
- 最优组合 wr 45%/中位 -1.5%——远低于可用门槛(wr≥55%)。**确定阴性,但这次是协议到位后的结论**(§35 的僵硬判定结论被修正,最终结论不变但证据等级不同)。
### §36.4 关键认知:3+12 与六步的关系(老莫框架)
- **3+12 是决策模式**:选股(Stage1初评)/买点(Stage2入场重评)/卖点(Stage3出场重评),每个决策点都过12维全量。
- **六步是研究流程**:产出有正期望的候选池,3+12 才能在其上工作。
- **出场重评救不了负期望池**:flow≥5 池 64% 亏损,卖点再精也是输;v_weak 能成是因为 Stage1(甜区+极端条件)已正期望,Stage2(缩量+收阳确认)再加成。
- **赢家采样陷阱的最终形态**:flow≥5 的 8.7% 大波段真实存在(均值捕获49.7%),但 12 维全量因子也无法把它从噪声里分出来——**edge 在波动里,不在可预测性里**。
## §37 flow≥5 全协议生命周期回测:协议级阴性证据(2026-08-05)
> 老莫框架:选股/买点/卖点都是12维全评产物(3+12决策模式),六步是研究流程;回测要简化但还原关键决策点。本节按此完整执行。
### §37.1 执行的三段式生命周期
- **选股**(六步③④产物):大盘MA20上 + flow≥5 + 大盘RSI≥40 + 非爆量(vol<2.0)→ 109万信号
- **入场重评**:信号日确认(负面排除规则)
- **出场重评**(本节核心,数据归纳非拍脑袋):
- 方法:信号后逐日标注(该卖=之后无≥3%上行;该持有=之后还有≥10%上行),480 万标注日,对比12维状态归纳卖出规则
- 发现:最强单元格 `dd_from_peak≤-8 + rsi<45`(衰竭确认)该卖率仅 60%;**rsi 关系反直觉**(rsi≥75 该卖率仅 41%——趋势市强势延续);无任何因子组合达 80% 精确度
- **结论:卖点在趋势市是概率倾斜不是确定规则——这正是"重评"的存在意义(给决策倾斜,非自动信号)**
### §37.2 生命周期回测结果(109 万信号)
| 出场规则 | avg | 中位 | wr |
|---|---|---|---|
| derived(数据归纳衰竭确认) | +0.16% | -4.88% | 32.4% |
| dd8(纯结构对照) | +0.57% | -3.74% | 36.3% |
| zone+15%卖出区重评) | +0.68% | -4.39% | 38.7% |
- **数据归纳的出场重评反而比纯结构差**(32.4% vs 36.3%):60% 精确度格子里 40% 是卖飞——卖点固有不确定性是数据本身的性质。
- 全程最优 wr 38.7%,远低于可用门槛。
### §37.3 协议级最终结论
六步③全市场筛 → ④负面因子(12维/17因子)→ ⑤正负合并 → 3+12 生命周期(数据归纳的出入场重评)→ **wr 不过 40%**
flow≥5 趋势路径确定死亡。证据链闭环,每一步协议可查。
**趋势侧结论不变**:A股趋势 edge 只在池子策展(v_next4),全市场趋势跟踪无可简单复制形态(§35.4 组合架构维持)。
## §38 分仓+波段全框架终测:池子质量是前提(2026-08-05)
> 老莫最后补上框架的两块拼图:分仓(多个卖出区,每区重评,衰竭才卖该区)+ 波段(卖飞后结构重新确立再进场)。
### §38.1 全框架生命周期
- 选股:大盘MA20上 + flow≥5 + 大盘RSI≥40 + 非爆量
- 分仓卖出:+14% 卖 1/3、+28% 再卖 1/3、剩余 1/3 结构离场;**每区重评**rsi≥50且量比<1.5=动能强 → 该区不卖继续持有)
- 波段再进:有已卖比例后,收盘破前高(结构重新确立)→ 按已卖比例再进场(v_next4 swing_re 同构,池内验证 avg 32.79%/wr 86% 的机制)
- 兜底:止损 -12% / 60 日
### §38.2 结果(109 万信号)
| 模式 | avg | wr | 关键细节 |
|---|---|---|---|
| scale(分仓+区重评) | +0.60% | 36.4% | struct_out 占 90.7%90% 信号到不了 +14% 卖出区 |
| scale+swing+波段再进) | +0.57% | 36.4% | 再进场 98,897 次,收益无改善 |
### §38.3 为什么机制全上也救不了
- 分仓/波段解决的是"**好票被卖飞**"——flow≥5 池 64% 是噪音票,**根本飞不起来**(90% 到不了第一个卖出区)。
- 对噪音票波段再进 = 再暴露于噪音,不创造价值。
- 对照:v_weak 池起点 wr 57%,机制加到 62-68%flow≥5 池起点 wr 36%,机制全上不过 39%。
### §38.4 终极具象结论(方法论闭环)
**池子质量是前提,3+12 框架机制是加成。顺序永远是:六步出好池子 → 3+12 锦上添花。**
- v_weak:甜区+极端超跌=正期望池(六步产物)→ 缩量收阳确认/等权8槽(3+12加成)→ 8槽年化 12.8%
- flow≥5:负期望池 → 分仓/波段/重评全上 = 无效
- 趋势侧重建正式关闭。组合架构(§35.4)为最终形态:趋势市 v_next4(池) / 弱市甜区 v_weak(已实盘) / 强跌市空仓 / ADX15-20 禁买。
## §39 策略家族诞生:S1+S2 同时运行(2026-08-05,架构级突破)
> 老莫架构批评:①v_weak 带大盘滤镜出生,没有完整 10 年无条件六步;②强弱行业并存,大盘一刀切周期是错的切法;③策略应家族化同时使用、非互斥切换——"有些票符合策略1,有些符合策略2,不是这个时点只能这个"。本节是从零开始的完整六步+家族验证。
### §39.1 方法论修正:跳出赢家采样陷阱
- 赢家集分群(§26/§35 路径)系统性偏向"大波段动量档案"(flow/突破),全市场全部阵亡——赢家集看不见可靠性。
- **改在全市场状态空间分群**157 万"股票-日"样本 × 12 维因子 × 结构前瞻收益,直接找全市场期望为正的自然格子。
### §39.2 核心发现:均值回复的剂量-反应曲线
| 大盘RSI档 | avg | wr |
|---|---|---|
| 20-25 | +25.8% | 97.8% |
| 25-30 | +8.4% | 62.6% |
| 30-35 | +5.0% | 50.3% |
| 35-40 | -0.03% | 35.3% |
| 40+ | +0.15% | 36.1% |
- **大盘越恐慌,超跌票反弹越确定——单调剂量反应,A股均值回复 edge 的完整定量形态**。
- 行业双弱格(§31 基准率发现)作入场信号验证失败(+0.59%/35.7%)——基准率≠策略信号,诚实否定。
### §39.3 S2=恐慌买超跌(六步④⑤⑥产物)
- **入场**:大盘RSI<25(极端恐慌)+ 个股 bias60<-6.8 + r5f<-105日深崩)+ dist_lo20≥10(离20日低点≥10%
- 画像:**大盘极端恐慌日,强势票被错杀**(崩前强势、恐慌中陪葬)
- **出场**:结构反转 dd≤-8(数据归纳动态卖点),60日兜底
- 回测:3261 信号 / avg+16.6% / **wr 85.6%** / 逐年:2020新冠+14%/88%、2022双底+21%/85%、2025恐慌+16%/87%——**十年三次恐慌集群全部盈利**
- 负面因子排除:r5f∈[-10,-5]浅回调区(wr55%);dist_lo20<10贴近低点(wr57-69%低于≥10的75%
### §39.4 S1+S2 组合(同时运行,零重叠)
| 组合 | n | avg | wr | 8槽收益 | 年化 | 回撤 |
|---|---|---|---|---|---|---|
| S1(v_weak) | 234 | 7.17% | 62.4% | 178.3% | 12.8% | 16.4% |
| S2(恐慌买) | 3261 | 16.61% | 85.6% | 115.8% | 10.4% | 8.6% |
| **S1+S2** | 3495 | 15.97% | 84.0% | **344.9%** | **18.7%** | **15.7%** |
- **收益近翻倍、回撤更低**——S2 填上 v_weak 的真空带(恐慌时 ADX 冲过 30 上沿,甜区不存在)。
- 信号零重叠:温和弱市(S1)与极端恐慌(S2)天然不互斥、自动分工。
- **架构结论(老莫 vindicated):策略家族 > 周期切换**——市场状态从"硬开关"降级为"每个策略档案内的一个因子",票自己对号入座。
### §39.5 待办(实盘化)
- S2 扫描器接入(mr_scanner 加 S2 通道 或 独立 s2_scanner.py
- S2 组合仓位规则(信号恐慌期密集,8槽 88/3261 执行率——需月度上限或得分排序)
- 与 v_weak 共用组合框架(去重逻辑已验证)
## §40 S2 实盘部署完成(2026-08-05
### §40.1 部署内容(commit 6973d359 + 3545d677
- **s2_scanner.py**(新建,deploy/profile-scripts/,与 hermes 运行位置硬链 inode 40075):
- 门控:大盘 RSI14<25stock_daily 计算,与回测零偏差)
- 个股:bias60<-6.8 + r5f<-10 + dist_lo20>=10(与 §39 回测严格对齐)
- 排序:r5f 升序(崩最深优先);候选写 sector='s2_panic'(与 v_weak 的 'v_mr' 管道分离)
- top15/日 + 当日幂等
- **market_watch.py**:调度链(每 10 分钟)挂 s2_scanner 子进程调用,与 mr_scanner 并列。
- 单测:正确画像命中(三条件齐)、浅崩/贴低/超MA60 三种错误样本各自被正确拦截、门控休眠正确。
- 实盘验证:当前大盘 RSI 43.0 → 正确休眠(非恐慌日)。
### §40.2 当前策略家族实盘全景
| 策略 | 门控 | 状态 | 当前是否激活 |
|---|---|---|---|
| S1 v_weak(弱市甜区) | trend_down/choppy + ADX∈[25,30] | 已实盘(mr_scanner | ❌ 休眠(ADX=62 甜区外) |
| S2 恐慌买超跌 | 大盘RSI14<25 | 已实盘(s2_scanner | ❌ 休眠(RSI=43 |
| v_next4(趋势池) | 大盘MA20上 | 池内运行 | ❌ 大盘MA20下 |
- **三个引擎全部按规则休眠——组合处于全空仓状态**,这正是强跌市(ADX 62 走高)的设计行为:甜区未到、恐慌未至、趋势不在。
- 触发顺序预判:若大盘继续深跌至 RSI<25 → S2 先醒(恐慌买);若止跌震荡 ADX 回落至 [25,30) → S1 醒(甜区);若收复 MA20 → v_next4 醒。
### §40.3 deploy_guard 事故三连记录(教训固化)
本轮三次被守卫回滚:①mr_scanner 分批 patch(§34);②market_watch S2 挂接(本节);③根因都是"改动后未在 15 分钟内 commit"。**铁律重申:一次性 patch + 同一命令内立即 commit + push。**