fix(optimize): 不再为每个 combo 存独立记录,避免污染历史任务列表

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:[...]}。
This commit is contained in:
2026-07-17 16:01:01 +08:00
parent 4f0e3162b3
commit f465756499
+4 -3
View File
@@ -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