diff --git a/strategy_lab.py b/strategy_lab.py index 6fdfccdd..7e608e6b 100644 --- a/strategy_lab.py +++ b/strategy_lab.py @@ -2184,6 +2184,24 @@ def list_strategies(period_tag=None): 'summary_stats': _ss, 'insights': [], 'created_at': None, 'market': 'all', 'period_tag': _pt or period_tag, 'trades_count': _tc, }) + # 2026-08-18 修复:1m/6m/1y 切窗后 DB-only 策略(B组挖掘/老牌策略)未被加进 out—— + # _slice_versions 含 DB 所有版本且已切窗算好(sliced_summaries),但上面只遍历 + # STRATEGIES(39个)/STRATEGY_DESCRIPTIONS。补齐 DB-only 且切窗成功的版本。 + if period_tag in PERIOD_SLICE_DAYS: + for v in sorted(_slice_versions): + if v in STRATEGIES or v in STRATEGY_DESCRIPTIONS: + continue + if any(d['version'] == v for d in out): + continue + _ss, _tc, _pt = sliced_summaries.get(v) + if _ss is None: + continue # 切窗未成功或无数据 + out.append({ + 'version': v, 'name': v, 'summary': '', 'hypothesis': '', + 'parent': None, 'config_json': '{}', + 'summary_stats': _ss, 'insights': [], 'created_at': None, + 'market': 'all', 'period_tag': _pt or period_tag, 'trades_count': _tc, + }) out.sort(key=lambda x: (x['version'], x.get('market', 'all'))) # 2026-08-11:标记当前实盘/新策略(研究 Tab 拆分当前/历史区域) # 当前 = 实盘在跑(v_weak) + 新策略待上线(v_oversold)