feat: server.py加s.current_regimes温区激活列表(前端按温区打状态,消除错位)

This commit is contained in:
xxm
2026-08-18 01:34:47 +08:00
parent e793150ab5
commit c4157503d0
+11
View File
@@ -676,6 +676,15 @@ def api_research_strategies():
_active_set = set(_weights.get("active") or [])
_hk_market = (_weights.get("markets") or {}).get("hk") or {}
_active_set |= set(_hk_market.get("active") or [])
# 2026-08-18 按温区激活矩阵(老莫:资格够就激活,不合格绝不激活;当前温区实盘闸门)
# 构建 策略 -> 激活温区列表(A股 regime_active + 港股 markets.hk.regime_active
_strategy_active_regimes = {}
for _rgm, _acts in ((_weights.get("regime_active") or {}).items()):
for _sv in (_acts or []):
_strategy_active_regimes.setdefault(_sv, set()).add(_rgm)
for _rgm, _acts in ((_hk_market.get("regime_active") or {}).items()):
for _sv in (_acts or []):
_strategy_active_regimes.setdefault(_sv, set()).add("hk:" + _rgm)
# ── 2026-08-15 温区数据按所选周期计算(函数内缓存,替代全量表/内联重算)──
_regime_winrates = _compute_regime_winrates_cached(pt, _approx_regime_universality)
@@ -808,6 +817,8 @@ def api_research_strategies():
s['regime_winrates'] = _regime_winrates.get(s['version'], {})
# current = 当前温区激活(替代旧的 CURRENT_VERSIONS 硬编码)
s['current'] = s['version'] in _active_set
# 2026-08-18 温区激活列表(前端按温区打状态,区分"该策略在当前表温区是否激活")
s['current_regimes'] = sorted(_strategy_active_regimes.get(s['version'], set()))
# 2026-08-15 适应温区(前端方案A:策略只在适应温区表显示一行)
s['best_regime'] = _best_regime_map.get(s['version'])
# 2026-08-16 资格评估(标准A)——per-regime,策略可适应多个温区