feat: 调度层strategy_router matched改标准A——三项达标(长期/近期/当下适应温区年化>大盘)+手动可用,替代只看胜率50%

This commit is contained in:
xxm
2026-08-16 07:43:14 +08:00
parent c8f66a033f
commit 861c5a4a61
+11 -1
View File
@@ -131,7 +131,17 @@ def route(regime, temp, perf):
best = max(regs.items(), key=lambda x: x[1].get("win_rate", 0))
best_wr = best[1].get("win_rate", 0)
cur_wr = cur.get("win_rate") if cur else None
matched = (best_wr >= 50) and (cur_wr is not None and cur_wr >= 50)
# 2026-08-16 资格标准A(老莫):长期10y/近期2y/当下1y 适应温区年化>大盘 三项达标 + 手动可用
# (替代只看胜率≥50%的旧判定——旧标准会让年化-41%但胜率51%的策略激活)
try:
from strategy_qualify import evaluate_strategy, is_available, get_benchmarks
_qbench = get_benchmarks('a')
_qev = evaluate_strategy(name, 'a', best_regime=best[0], bench=_qbench)
_qual_ok = bool(_qev and _qev.get("long_ok") and _qev.get("mid_ok") and _qev.get("short_ok"))
_manual_ok = is_available(name)
matched = _qual_ok and _manual_ok
except Exception:
matched = (best_wr >= 50) and (cur_wr is not None and cur_wr >= 50) # 兜底旧标准
family = FAMILY_MAP.get(name, DEFAULT_FAMILY)
base = 1.0 if matched else 0.3
try: