warmup 修复后重跑 Optuna study + 重生所有产物
- 重跑 500 trials Optuna study (warmup 修复版) - 新 finalist 集合: #1 trial #491 / #2 trial #297 / #3 trial #492 - finalist #1 IS net $263k (vs 旧 $29k, warmup 修复后搜索空间扩大) - 重生 finalists JSON / features parquet / dashboard HTML - 三个独立 registry 条目 (f1_t491 / f2_t297 / f3_t492) - registry 文件名含 finalist index + trial number 避免覆盖 - registry 状态: "已记录 (无 MT5 验证)" - 待 Phase 7 MT5 验证 - 删除旧 registry 条目 (trial #324 已被新 study 取代)
This commit is contained in:
@@ -502,19 +502,27 @@ def build_registry_markdown(
|
||||
limitations = build_known_limitations(f)
|
||||
|
||||
today = datetime.now().strftime("%Y-%m-%d")
|
||||
approval_status = (
|
||||
"已批准(含已记录的已知差距)"
|
||||
if is_metrics is not None
|
||||
else "已记录(无 MT5 验证)"
|
||||
)
|
||||
if is_metrics is not None:
|
||||
approval_status = "已批准(含已记录的已知差距)"
|
||||
approval_basis = (
|
||||
"信号层对齐已验证(trades PASS,首笔交易时间戳精确匹配)。"
|
||||
"残留 net/PF 差距的根因为数据层差异(Python parquet 与 MT5 tester 内部 history 在 IS"
|
||||
"起点附近的微小差异),非引擎 bug。"
|
||||
)
|
||||
else:
|
||||
approval_status = "已记录(无 MT5 验证 — 待 Phase 7 MT5 验证)"
|
||||
approval_basis = (
|
||||
"本 finalist 来自 warmup 修复后的 Optuna study 重跑。"
|
||||
"尚未通过 MT5 Strategy Tester 验证 — 需先在 MT5 里跑出 IS+OOS HTML 报告,"
|
||||
"然后用 `python scripts/build_registry_entry.py --finalist {} --mt5-is-html ... --mt5-oos-html ...`"
|
||||
" 重新生成本条目以补齐 MT5 指标 + 差距分析。"
|
||||
).format(f["index"])
|
||||
|
||||
return f"""# 注册表条目 — GoldScalperPro / XAUUSD / {is_start} → {oos_end}
|
||||
|
||||
**状态:** {approval_status} — 文档生成日期 {today}
|
||||
**生成方式:** 由 `scripts/build_registry_entry.py --finalist {f['index']}` 自动生成
|
||||
**批准依据:** 信号层对齐已验证(trades PASS,首笔交易时间戳精确匹配)。
|
||||
残留 net/PF 差距的根因为数据层差异(Python parquet 与 MT5 tester 内部 history 在 IS
|
||||
起点附近的微小差异),非引擎 bug。
|
||||
**批准依据:** {approval_basis}
|
||||
|
||||
---
|
||||
|
||||
@@ -673,7 +681,9 @@ def main() -> int:
|
||||
windows = f["_windows"]
|
||||
is_start = windows["IS"][0].split(" ")[0]
|
||||
oos_end = windows["OOS"][1].split(" ")[0]
|
||||
out_name = f"gold_scalper_pro_xauusd_{is_start}_{oos_end}.md"
|
||||
# Include finalist index + trial number in filename so multiple finalists
|
||||
# from the same window don't overwrite each other.
|
||||
out_name = f"gold_scalper_pro_xauusd_{is_start}_{oos_end}_f{f['index']}_t{f['trial_number']}.md"
|
||||
out_path = REGISTRY_DIR / out_name
|
||||
|
||||
REGISTRY_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
Reference in New Issue
Block a user