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:
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user