feat: v_weak弱市策略定稿落地(六步方法论+12维框架完整产出)
- 策略: 弱市(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完整六步推导链
This commit is contained in:
@@ -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笔,部分可人工)
|
||||
|
||||
@@ -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"),
|
||||
|
||||
+2
-2
@@ -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 += '<div class="bg-slate-800/50 rounded-lg p-3">' +
|
||||
'<div class="flex items-center justify-between mb-1.5"><span class="font-mono font-bold text-base text-' + (v === 'v_next4' ? 'emerald-400' : 'amber-300') + '">' + v + (m.is_sel ? ' <span class="text-[11px] bg-red-500/20 text-red-300 px-1.5 rounded ml-1 align-middle">⚠️不合格</span>' : '') + '</span>' +
|
||||
'<div class="flex items-center justify-between mb-1.5"><span class="font-mono font-bold text-base text-' + (v === 'v_next4' ? 'emerald-400' : 'amber-300') + '">' + v + (m.is_sel ? ' <span class="text-[11px] bg-emerald-500/20 text-emerald-300 px-1.5 rounded ml-1 align-middle">✅推荐</span>' : '') + '</span>' +
|
||||
'<span class="text-xs text-slate-400">' + (m.role || '') + '</span></div>' +
|
||||
// 盈利率大字突出(用户关注的核心指标)
|
||||
'<div class="flex items-end gap-4 mb-2">' +
|
||||
@@ -2105,7 +2105,7 @@ async function renderResearchCombo() {
|
||||
'<div><div class="text-slate-500 text-xs">覆盖月</div><div class="font-mono">' + (u.months || '—') + '</div></div>' +
|
||||
'</div>' +
|
||||
'<div class="text-xs text-slate-400">均持' + (m.avg_hold_days != null ? m.avg_hold_days + '天' : '—') + ' · 回撤' + (m.max_dd_pct != null ? m.max_dd_pct + '%' : '—') + ' · 组合年均' + yearly5 + '笔(人工可操作)</div>' +
|
||||
(v === 'v_mr' ? '<div class="text-[13px] text-slate-300 mt-1.5 border-t border-slate-800 pt-1">⚠️ <b>v_mr 全系不合格</b>(2026-08-03 六步方法论重审):基线靠 2018 超级熊市撑起(去2018后 avg+2.14%/wr49.8% 掷硬币);精选版 144 笔中 2018-10 三天占 54%,覆盖仅 14/120 月——一次行情产物。穷尽验证(超跌/强势/突破/低PE防御)A股弱市不存在可实盘的选股 alpha。<b>弱市正确做法是降仓/空仓</b>(实盘 strategy_lifecycle 6.5 已生效:choppy/trend_down 买入降级为"关注"),资金留给 v_next4 趋势市主战场。此卡片数据仅作历史参考。</div>' : '') +
|
||||
(v === 'v_mr' ? '<div class="text-[13px] text-slate-300 mt-1.5 border-t border-slate-800 pt-1">✅ <b>v_weak 弱市策略</b>(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%。<b>关键认知:弱市深超跌反弹的edge前提=大盘ADX∈[25,30]</b>(v_mr 缺失的大盘前置条件),负面剔除(过深/RSI偏高/阴跌)比正面排序更有效。</div>' : '') +
|
||||
'</div>';
|
||||
}
|
||||
h += '</div>';
|
||||
|
||||
Reference in New Issue
Block a user