fix: 1m/6m周期温区表策略消失——①补全循环补best_regime②切窗版本集扩展含DB-only策略(s2_panic/v_lurk_*/v_mr*)

This commit is contained in:
xxm
2026-08-16 07:11:41 +08:00
parent 1193a61510
commit cda582f046
2 changed files with 12 additions and 1 deletions
+2
View File
@@ -850,6 +850,8 @@ def api_research_strategies():
'evidence': '',
}
_entry['regime_winrates'] = _regime_winrates.get(_mv, {})
# 2026-08-16 补全条目必须设 best_regime——否则前端按 best_regime 分表时被踢出所有温区表
_entry['best_regime'] = _best_regime_map.get(_mv)
_entry['current'] = True
_entry['state'] = 'active'
_entry['state_reason'] = '当前温区路由激活'
+10 -1
View File
@@ -2104,7 +2104,16 @@ def list_strategies(period_tag=None):
days = PERIOD_SLICE_DAYS[period_tag]
have_period = {r['version'] for r in rows}
from datetime import datetime as _dt, timedelta as _td
for v in list(STRATEGIES.keys()) + [x for x in STRATEGY_DESCRIPTIONS.keys() if x not in STRATEGIES]:
# 2026-08-16 切窗版本集扩展:静态字典 + DB 里所有有回测记录的版本
# (原版只遍历 STRATEGIES+STRATEGY_DESCRIPTIONS,导致 s2_panic/v_lurk_*/v_mr* 等
# DB-only 策略在 1m/6m 周期整体消失)
_slice_versions = set(STRATEGIES.keys()) | set(STRATEGY_DESCRIPTIONS.keys())
try:
_slice_versions |= {r[0] for r in conn.execute(
"SELECT DISTINCT version FROM strategy_research WHERE COALESCE(market,'a')='a'").fetchall()}
except Exception:
pass
for v in sorted(_slice_versions):
if v in have_period:
continue # 已有该 period 记录,不用切
row = conn.execute(