From f46575649980fe9c4e77ecdfeb7ca5f704d134b0 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Fri, 17 Jul 2026 16:01:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(optimize):=20=E4=B8=8D=E5=86=8D=E4=B8=BA?= =?UTF-8?q?=E6=AF=8F=E4=B8=AA=20combo=20=E5=AD=98=E7=8B=AC=E7=AB=8B?= =?UTF-8?q?=E8=AE=B0=E5=BD=95,=E9=81=BF=E5=85=8D=E6=B1=A1=E6=9F=93?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cta_optimizer 每跑一个 combo 就 save_result 存一条 type=optimize 记录 (statistics 是单 combo stats,无 combos key)。每次优化额外产生 N 条子记录, 历史任务列表全是这些,点开后 optimization-results endpoint 查 combos 找不到 → 空页面。实证 142 条 optimize 里 137 条是这种空子记录(12/12 匹配主任务 combo)。 combo 结果只在内存聚合,由 aggregate 主任务统一存 {combos:[...]}。 --- sanguo_backtest/cta_optimizer.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sanguo_backtest/cta_optimizer.py b/sanguo_backtest/cta_optimizer.py index 057558d..6ef3ed6 100644 --- a/sanguo_backtest/cta_optimizer.py +++ b/sanguo_backtest/cta_optimizer.py @@ -191,10 +191,11 @@ def run_cta_optimization( trades=None # Not available in optimization results ) results.append(result) - - # Save each result to database - save_result(result, db_path=db_path) combos.append({"params": params, "statistics": statistics}) + # 不把单个 combo 存进 backtest_stats:否则每次优化会额外产生 N 条 + # type=optimize 子记录(statistics 是单 combo stats,无 "combos" key), + # 污染历史任务列表,点开后 optimization-results endpoint 查 "combos" + # 找不到 → 空页面。combo 结果只在内存聚合,由下方 aggregate 统一持久化。 except Exception as e: # Bug2: log parse errors but don't save empty error records