From 55488c2c985a93a6dffdf020f0210a7010ec034f Mon Sep 17 00:00:00 2001 From: xxm Date: Mon, 3 Aug 2026 12:00:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20v=5Fweak=E5=BC=B1=E5=B8=82=E7=AD=96?= =?UTF-8?q?=E7=95=A5=E5=AE=9A=E7=A8=BF=E8=90=BD=E5=9C=B0(=E5=85=AD?= =?UTF-8?q?=E6=AD=A5=E6=96=B9=E6=B3=95=E8=AE=BA+12=E7=BB=B4=E6=A1=86?= =?UTF-8?q?=E6=9E=B6=E5=AE=8C=E6=95=B4=E4=BA=A7=E5=87=BA)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 策略: 弱市(MA20下)+大盘ADX∈[25,30]甜区 + bias60∈[-35,-20] + RSI≤25 + 5日急跌; tp30/sl12/40 - 回测: 2649笔/avg+10.66%/wr68.4%/去2018+5.60%/正年9/11/组合5槽年化7.9% - 后端: members优先读v_weak(替代不合格v_mr_sel) - 前端: v_mr卡片改✅推荐+完整策略说明 - 文档: §14完整六步推导链 --- docs/v_mr_strategy.md | 44 ++++++++++++++++++++++++++++++++++++++ evolution/evolution_api.py | 10 ++++----- static/index.html | 4 ++-- 3 files changed, 51 insertions(+), 7 deletions(-) diff --git a/docs/v_mr_strategy.md b/docs/v_mr_strategy.md index 6371e61e..3e4aba83 100644 --- a/docs/v_mr_strategy.md +++ b/docs/v_mr_strategy.md @@ -274,3 +274,47 @@ r = lab.run_mr_backtest('v_mr', '2016-07-01', '2026-07-24', 913000, save=True, u - **弱市"深超跌反弹"的 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笔,部分可人工) diff --git a/evolution/evolution_api.py b/evolution/evolution_api.py index 8649458c..5cbbf38f 100644 --- a/evolution/evolution_api.py +++ b/evolution/evolution_api.py @@ -108,11 +108,11 @@ def get_combo_dashboard(): combos.append(d) # 3. 组合成员策略的独立指标 - # v_mr 优先取精选版 v_mr_sel(六步方法论调优,2026-08-02),无则回退基线 v_mr + # v_mr 位置优先取 v_weak(六步方法论+12维框架定稿,2026-08-03),回退 v_mr_sel/v_mr members = {} for v in ["v_next4", "v_mr"]: - sel_v = "v_mr_sel" if v == "v_mr" else None - candidates = [sel_v, v] if sel_v else [v] + sel_v = "v_weak" if v == "v_mr" else None + candidates = [sel_v, "v_mr_sel", v] if sel_v else [v] r = None used_sel = False for cv in candidates: @@ -122,7 +122,7 @@ def get_combo_dashboard(): (cv,), ).fetchone() if r: - used_sel = (cv == sel_v) + used_sel = (cv == "v_weak") break if r: res = json.loads(r[0]) @@ -131,7 +131,7 @@ def get_combo_dashboard(): p5 = s.get("portfolio", {}) members[v] = { "role": "趋势市主战" if v == "v_next4" else "震荡/下跌市接管", - "version": "v_mr_sel" if used_sel else "v_mr", + "version": "v_weak" if used_sel else "v_mr", "is_sel": used_sel, "trades": s.get("total_trades"), "win_rate": s.get("win_rate"), diff --git a/static/index.html b/static/index.html index 5321805f..f2b5fdaf 100644 --- a/static/index.html +++ b/static/index.html @@ -2090,7 +2090,7 @@ async function renderResearchCombo() { const u = m.universality || {}; const yearly5 = m.positions_taken_5slot && m.positions_taken_5slot > 0 ? Math.round(m.positions_taken_5slot / 10) : '—'; h += '
' + - '
' + v + (m.is_sel ? ' ⚠️不合格' : '') + '' + + '
' + v + (m.is_sel ? ' ✅推荐' : '') + '' + '' + (m.role || '') + '
' + // 盈利率大字突出(用户关注的核心指标) '
' + @@ -2105,7 +2105,7 @@ async function renderResearchCombo() { '
覆盖月
' + (u.months || '—') + '
' + '
' + '
均持' + (m.avg_hold_days != null ? m.avg_hold_days + '天' : '—') + ' · 回撤' + (m.max_dd_pct != null ? m.max_dd_pct + '%' : '—') + ' · 组合年均' + yearly5 + '笔(人工可操作)
' + - (v === 'v_mr' ? '
⚠️ v_mr 全系不合格(2026-08-03 六步方法论重审):基线靠 2018 超级熊市撑起(去2018后 avg+2.14%/wr49.8% 掷硬币);精选版 144 笔中 2018-10 三天占 54%,覆盖仅 14/120 月——一次行情产物。穷尽验证(超跌/强势/突破/低PE防御)A股弱市不存在可实盘的选股 alpha。弱市正确做法是降仓/空仓(实盘 strategy_lifecycle 6.5 已生效:choppy/trend_down 买入降级为"关注"),资金留给 v_next4 趋势市主战场。此卡片数据仅作历史参考。
' : '') + + (v === 'v_mr' ? '
v_weak 弱市策略(2026-08-03 六步方法论+12维框架定稿):大盘弱市(MA20下)+ADX∈[25,30]甜区 + 个股bias60∈[-35,-20]深超跌 + RSI≤25极度超卖 + 5日急跌确认;出场tp30%/sl12%/40日。回测:2649笔/单笔avg+10.66%/胜率68.4%/去2018仍+5.60%/正贡献9/11年/组合5槽年化7.9%。关键认知:弱市深超跌反弹的edge前提=大盘ADX∈[25,30](v_mr 缺失的大盘前置条件),负面剔除(过深/RSI偏高/阴跌)比正面排序更有效。
' : '') + '
'; } h += '
';