From e99c14e907166d48da8141361392a9d251bfe769 Mon Sep 17 00:00:00 2001 From: gavindiaz Date: Sat, 27 Jun 2026 00:49:47 +0800 Subject: [PATCH] =?UTF-8?q?warmup=20=E4=BF=AE=E5=A4=8D=E5=90=8E=E9=87=8D?= =?UTF-8?q?=E8=B7=91=20Optuna=20study=20+=20=E9=87=8D=E7=94=9F=E6=89=80?= =?UTF-8?q?=E6=9C=89=E4=BA=A7=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重跑 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 取代) --- COMMIT_MSG_2.txt | 10 + ...o_xauusd_2025-01-01_2026-06-26_f1_t491.md} | 88 +- ...ro_xauusd_2025-01-01_2026-06-26_f2_t297.md | 218 + ...ro_xauusd_2025-01-01_2026-06-26_f3_t492.md | 218 + ...una_dashboard_gold_scalper_pro_is2025.html | 78 +- scripts/build_registry_entry.py | 28 +- ...trade_features_gold_scalper_pro_is2025.csv | 4500 ++++++++--------- ...e_features_gold_scalper_pro_is2025.parquet | Bin 493436 -> 449410 bytes ...trial_features_gold_scalper_pro_is2025.csv | 1000 ++-- ...l_features_gold_scalper_pro_is2025.parquet | Bin 59998 -> 59349 bytes .../gold_scalper_pro_is2025-2026.json | 288 +- studies/optuna/gold_scalper_pro_is2025.db | Bin 2428928 -> 2424832 bytes ...calper_pro_is2025.db.before-warmup-fix.bak | Bin 0 -> 2428928 bytes 13 files changed, 3290 insertions(+), 3138 deletions(-) create mode 100644 COMMIT_MSG_2.txt rename registry/{gold_scalper_pro_xauusd_2025-01-01_2026-06-26.md => gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f1_t491.md} (72%) create mode 100644 registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f2_t297.md create mode 100644 registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f3_t492.md create mode 100644 studies/optuna/gold_scalper_pro_is2025.db.before-warmup-fix.bak diff --git a/COMMIT_MSG_2.txt b/COMMIT_MSG_2.txt new file mode 100644 index 0000000..37a0275 --- /dev/null +++ b/COMMIT_MSG_2.txt @@ -0,0 +1,10 @@ +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 取代) diff --git a/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26.md b/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f1_t491.md similarity index 72% rename from registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26.md rename to registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f1_t491.md index f709ca3..2d7a2dd 100644 --- a/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26.md +++ b/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f1_t491.md @@ -1,10 +1,8 @@ # 注册表条目 — GoldScalperPro / XAUUSD / 2025-01-01 → 2026-06-26 -**状态:** 已批准(含已记录的已知差距) — 文档生成日期 2026-06-27 +**状态:** 已记录(无 MT5 验证 — 待 Phase 7 MT5 验证) — 文档生成日期 2026-06-27 **生成方式:** 由 `scripts/build_registry_entry.py --finalist 1` 自动生成 -**批准依据:** 信号层对齐已验证(trades PASS,首笔交易时间戳精确匹配)。 -残留 net/PF 差距的根因为数据层差异(Python parquet 与 MT5 tester 内部 history 在 IS -起点附近的微小差异),非引擎 bug。 +**批准依据:** 本 finalist 来自 warmup 修复后的 Optuna study 重跑。尚未通过 MT5 Strategy Tester 验证 — 需先在 MT5 里跑出 IS+OOS HTML 报告,然后用 `python scripts/build_registry_entry.py --finalist 1 --mt5-is-html ... --mt5-oos-html ...` 重新生成本条目以补齐 MT5 指标 + 差距分析。 --- @@ -19,8 +17,8 @@ | OOS 窗口 | 2026-01-01 00:00:00 → 2026-06-26 00:00:00 | | Optuna study | `gold_scalper_pro_is2025`,位于 [studies/optuna/gold_scalper_pro_is2025.db](../studies/optuna/gold_scalper_pro_is2025.db) | | finalist 排名 | 3 个中的第 1 个 | -| Optuna trial 编号 | 324 | -| Optuna 得分 | 858.47 | +| Optuna trial 编号 | 491 | +| Optuna 得分 | 186075.40 | --- @@ -32,34 +30,34 @@ | 参数 | 选定值 | 搜索 | 范围 | 在 500 trials 中的百分位 | 说明 | |------|-------:|:----:|------|:---:|------| | `InpTimeframe` | 5 | 冻结 | 冻结(不搜索) | — | 信号时间框架(ENUM_TIMEFRAMES,5=M5) | -| `InpFastEmaPeriod` | 25 | 是 | 8..34 step 1 | 78.6% | 快 EMA 周期(趋势定义) | -| `InpSlowEmaPeriod` | 160 | 是 | 50..200 step 5 | 34.2% | 慢 EMA 周期(趋势定义) | -| `InpRsiPeriod` | 16 | 是 | 7..28 step 1 | 54.4% | RSI 周期(回撤触发) | -| `InpRsiBuyLevel` | 50 | 是 | 30..50 step 1 | 100.0% | RSI 买入阈值 | -| `InpRsiSellLevel` | 56 | 是 | 50..70 step 1 | 72.2% | RSI 卖出阈值 | -| `InpPullbackAtrMult` | 3.4 | 是 | 1..4 step 0.1 | 70.0% | 回撤 ATR 倍数(价格偏离 fast EMA 限值) | -| `InpAtrPeriod` | 27 | 是 | 7..28 step 1 | 87.2% | ATR 周期(波动率度量) | +| `InpFastEmaPeriod` | 33 | 是 | 8..34 step 1 | 98.2% | 快 EMA 周期(趋势定义) | +| `InpSlowEmaPeriod` | 180 | 是 | 50..200 step 5 | 80.2% | 慢 EMA 周期(趋势定义) | +| `InpRsiPeriod` | 11 | 是 | 7..28 step 1 | 19.6% | RSI 周期(回撤触发) | +| `InpRsiBuyLevel` | 39 | 是 | 30..50 step 1 | 25.6% | RSI 买入阈值 | +| `InpRsiSellLevel` | 57 | 是 | 50..70 step 1 | 73.2% | RSI 卖出阈值 | +| `InpPullbackAtrMult` | 3.9 | 是 | 1..4 step 0.1 | 89.6% | 回撤 ATR 倍数(价格偏离 fast EMA 限值) | +| `InpAtrPeriod` | 27 | 是 | 7..28 step 1 | 88.6% | ATR 周期(波动率度量) | | `InpMinAtrPoints` | 0 | 冻结 | 冻结(不搜索) | — | 最小 ATR 点数(波动率地板) | -| `InpMaxSpreadAtrPct` | 37.5 | 是 | 10..50 step 2.5 | 73.0% | 最大点差占 ATR 百分比(成本门) | +| `InpMaxSpreadAtrPct` | 25 | 是 | 10..50 step 2.5 | 18.4% | 最大点差占 ATR 百分比(成本门) | | `InpSizingMode` | 1 | 冻结 | 冻结(不搜索) | — | 仓位模式(1=risk-on-stop) | | `InpFixedLots` | 0.01 | 冻结 | 冻结(不搜索) | — | 固定手数(sizing=0 时用) | -| `InpRiskPercent` | 2.25 | 是 | 0.25..3 step 0.25 | 50.6% | 单笔风险占权益 % | +| `InpRiskPercent` | 2.5 | 是 | 0.25..3 step 0.25 | 53.0% | 单笔风险占权益 % | | `InpStopMode` | 0 | 冻结 | 冻结(不搜索) | — | 止损模式(0=ATR,1=点数) | -| `InpAtrSLMult` | 1.9 | 是 | 1..3 step 0.1 | 38.6% | ATR 止损倍数 | -| `InpAtrTPMult` | 3.1 | 是 | 1..4 step 0.1 | 50.8% | ATR 止盈倍数 | +| `InpAtrSLMult` | 1 | 是 | 1..3 step 0.1 | 23.2% | ATR 止损倍数 | +| `InpAtrTPMult` | 4 | 是 | 1..4 step 0.1 | 100.0% | ATR 止盈倍数 | | `InpStopLossPoints` | 200 | 冻结 | 冻结(不搜索) | — | 止损点数(stopmode=1 时用) | | `InpTakeProfitPoints` | 300 | 冻结 | 冻结(不搜索) | — | 止盈点数(stopmode=1 时用) | | `InpUseBreakEven` | true | 冻结 | 冻结(不搜索) | — | 启用保本 | -| `InpBreakEvenPoints` | 50 | 是 | 50..300 step 10 | 33.0% | 保本触发点数 | -| `InpBreakEvenLock` | 25 | 是 | 10..50 step 5 | 33.6% | 保本锁定点数 | +| `InpBreakEvenPoints` | 60 | 是 | 50..300 step 10 | 47.6% | 保本触发点数 | +| `InpBreakEvenLock` | 50 | 是 | 10..50 step 5 | 100.0% | 保本锁定点数 | | `InpUseTrailing` | true | 冻结 | 冻结(不搜索) | — | 启用追踪止损 | -| `InpTrailStartPoints` | 400 | 是 | 100..400 step 10 | 100.0% | 追踪触发点数 | -| `InpTrailStepPoints` | 70 | 是 | 60..240 step 10 | 35.8% | 追踪步长(点数) | +| `InpTrailStartPoints` | 220 | 是 | 100..400 step 10 | 47.8% | 追踪触发点数 | +| `InpTrailStepPoints` | 240 | 是 | 60..240 step 10 | 100.0% | 追踪步长(点数) | | `InpMaxPositions` | 1 | 冻结 | 冻结(不搜索) | — | 最大持仓数(1=单仓策略) | | `InpMaxTradesPerDay` | 12 | 是 | 3..12 step 1 | 100.0% | 单日最大交易数 | -| `InpDailyLossLimit` | 5 | 是 | 2..8 step 0.5 | 50.4% | 单日最大亏损 % | +| `InpDailyLossLimit` | 7 | 是 | 2..8 step 0.5 | 59.6% | 单日最大亏损 % | | `InpDailyProfitTarget` | 0 | 冻结 | 冻结(不搜索) | — | 单日利润目标(0=关闭) | -| `InpMinSecondsBetween` | 75 | 是 | 30..180 step 15 | 49.6% | 信号最小间隔(秒) | +| `InpMinSecondsBetween` | 30 | 是 | 30..180 step 15 | 35.6% | 信号最小间隔(秒) | | `InpUseSession` | false | 冻结 | 冻结(不搜索) | — | 启用交易时段过滤 | | `InpSessionStartHour` | 7 | 冻结 | 冻结(不搜索) | — | 时段开始小时 | | `InpSessionEndHour` | 20 | 冻结 | 冻结(不搜索) | — | 时段结束小时 | @@ -77,15 +75,15 @@ | 指标 | IS #1 | OOS #1 | IS #2 | OOS #2 | IS #3 | OOS #3 | |------|------:|------:|------:|------:|------:|------:| -| 净利润 ($) | 28,983.81 | 4,213.78 | 471.10 | 265.82 | 5,171.29 | 1,614.25 | -| PF | 1.7053 | 2.3636 | 1.5311 | 1.8351 | 1.5425 | 1.9341 | -| 交易数 | 2396 | 1161 | 555 | 276 | 2260 | 1131 | -| 回撤 % | 10.34% | 7.80% | 4.06% | 2.90% | 6.17% | 5.37% | -| 夏普 | 6.9717 | 9.4570 | 3.6500 | 4.0478 | 5.4414 | 7.5916 | -| 胜率 | 89.98% | 95.18% | 82.34% | 88.41% | 88.85% | 94.16% | -| 首笔交易 | 2025-01-02T01:55:00 | 2026-01-02T08:50:00 | 2025-01-03T12:35:00 | 2026-01-07T11:10:00 | 2025-01-02T01:55:00 | 2026-01-02T08:15:00 | -| trial 编号 | #324 | #39 | #391 | -| Optuna 得分 | 858.47 | 159.38 | 794.99 | +| 净利润 ($) | 263,527.63 | 10,632.70 | 94,197.91 | 11,153.84 | 165,740.84 | 6,969.58 | +| PF | 1.8016 | 1.8001 | 2.4990 | 2.1992 | 1.6318 | 1.5137 | +| 交易数 | 2104 | 1098 | 1605 | 874 | 2084 | 1083 | +| 回撤 % | 10.79% | 11.04% | 3.28% | 8.70% | 14.38% | 14.33% | +| 夏普 | 7.0019 | 8.5291 | 7.7362 | 11.0799 | 6.2544 | 6.9851 | +| 胜率 | 81.13% | 88.89% | 86.92% | 92.45% | 79.61% | 86.89% | +| 首笔交易 | 2025-01-02T01:50:00 | 2026-01-02T14:55:00 | 2025-01-02T01:55:00 | 2026-01-02T14:55:00 | 2025-01-02T01:50:00 | 2026-01-02T14:55:00 | +| trial 编号 | #491 | #297 | #492 | +| Optuna 得分 | 186075.40 | 68772.16 | 129574.90 | --- @@ -98,18 +96,15 @@ | 窗口 | 净利润 ($) | PF | 交易数 | 回撤% | 夏普 | 胜率 | 首笔交易 | |------|----------:|---:|-------:|------:|-----:|-----:|-----------| -| IS | 28,983.81 | 1.7053 | 2396 | 10.34% | 6.9717 | 89.98% | 2025-01-02T01:55:00 | -| OOS | 4,213.78 | 2.3636 | 1161 | 7.80% | 9.4570 | 95.18% | 2026-01-02T08:50:00 | +| IS | 263,527.63 | 1.8016 | 2104 | 10.79% | 7.0019 | 81.13% | 2025-01-02T01:50:00 | +| OOS | 10,632.70 | 1.8001 | 1098 | 11.04% | 8.5291 | 88.89% | 2026-01-02T14:55:00 | --- ## 5. MT5 指标(Strategy Tester,1 分钟 OHLC 模型) -| 窗口 | 净利润 ($) | PF | 交易数 | 回撤% | 报告路径 | -|------|----------:|---:|-------:|------:|----------| -| IS | 6,987.34 | 1.43 | 2,348.00 | — | [IS-ReportTester-52845377.html](../reports\IS-ReportTester-52845377.html) | -| OOS | 831.81 | 1.38 | 1,161.00 | — | [OOS-ReportTester-52845377.html](../reports\OOS-ReportTester-52845377.html) | +_未提供 MT5 HTML 报告 — 跳过本节_ --- @@ -119,14 +114,7 @@ EA 类别:**BE / trailing,M1 tick 级引擎**。适用关卡:net ≤ ~10%,PF ≤ ~10%, trades ≤ ~5%,权益回撤 ≤ ~10%。 -| 窗口 | 指标 | Python | MT5 | 差距 | 关卡 | -|------|------|-------:|----:|----:|------| -| IS | net | 28,983.81 | 6,987.34 | +314.8% | **FAIL** | -| IS | PF | 1.7053 | 1.4300 | +19.3% | **FAIL** | -| IS | trades | 2396 | 2348 | +2.0% | **PASS** | -| OOS | net | 4,213.78 | 831.81 | +406.6% | **FAIL** | -| OOS | PF | 2.3636 | 1.3800 | +71.3% | **FAIL** | -| OOS | trades | 1161 | 1161 | +0.0% | **PASS** | +_未提供 MT5 数据 — 跳过差距分析_ ### 6.1 已对齐部分(可信部分) @@ -167,12 +155,12 @@ trades ≤ ~5%,权益回撤 ≤ ~10%。 - Optuna study 总 trial 数:**500** - 完成:**500**,剪枝:**0**,失败:**0** -- 最高得分:**858.47**,中位得分:**579.10** +- 最高得分:**186075.40**,中位得分:**17265.61** - 本 finalist 在 study 中的得分排名:**2/500** - 搜索空间维度:**18 个可调参数** + 16 个冻结参数 - 与其他 finalist 的参数相似度: - - vs finalist #2 (trial #39): 1/18 参数完全相同 - - vs finalist #3 (trial #391): 8/18 参数完全相同 + - vs finalist #2 (trial #297): 0/18 参数完全相同 + - vs finalist #3 (trial #492): 14/18 参数完全相同 --- @@ -200,7 +188,7 @@ python scripts/build_registry_entry.py --finalist 1 ``` EA `.ex5` / `.mq5` 和 MT5 使用的 `GoldScalperPro.set` 位于项目根目录。 -finalist 对应的 trial 编号是 **#324**,可在 Optuna dashboard 中定位。 +finalist 对应的 trial 编号是 **#491**,可在 Optuna dashboard 中定位。 --- diff --git a/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f2_t297.md b/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f2_t297.md new file mode 100644 index 0000000..1445283 --- /dev/null +++ b/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f2_t297.md @@ -0,0 +1,218 @@ +# 注册表条目 — GoldScalperPro / XAUUSD / 2025-01-01 → 2026-06-26 + +**状态:** 已记录(无 MT5 验证 — 待 Phase 7 MT5 验证) — 文档生成日期 2026-06-27 +**生成方式:** 由 `scripts/build_registry_entry.py --finalist 2` 自动生成 +**批准依据:** 本 finalist 来自 warmup 修复后的 Optuna study 重跑。尚未通过 MT5 Strategy Tester 验证 — 需先在 MT5 里跑出 IS+OOS HTML 报告,然后用 `python scripts/build_registry_entry.py --finalist 2 --mt5-is-html ... --mt5-oos-html ...` 重新生成本条目以补齐 MT5 指标 + 差距分析。 + +--- + +## 1. 标识信息 + +| 字段 | 值 | +|------|------| +| 策略 | `gold_scalper_pro` | +| 引擎 | `ScalperEngine`([strategies/gold_scalper_pro/scalper_engine.py](../strategies/gold_scalper_pro/scalper_engine.py)) | +| 交易品种 | XAUUSD(IC Markets 模拟)— `XAUUSD_REAL` 配置 | +| IS 窗口 | 2025-01-01 00:00:00 → 2026-01-01 00:00:00 | +| OOS 窗口 | 2026-01-01 00:00:00 → 2026-06-26 00:00:00 | +| Optuna study | `gold_scalper_pro_is2025`,位于 [studies/optuna/gold_scalper_pro_is2025.db](../studies/optuna/gold_scalper_pro_is2025.db) | +| finalist 排名 | 3 个中的第 2 个 | +| Optuna trial 编号 | 297 | +| Optuna 得分 | 68772.16 | + +--- + +## 2. 参数(完整合并集合) + +下表含每个参数的搜索范围、选定值、在 500 trials 中的百分位。参数说明取自 EA 源码注释。 +"搜索"列为"是"表示该参数参与了 Optuna 搜索;"冻结"表示结构性固定值。 + +| 参数 | 选定值 | 搜索 | 范围 | 在 500 trials 中的百分位 | 说明 | +|------|-------:|:----:|------|:---:|------| +| `InpTimeframe` | 5 | 冻结 | 冻结(不搜索) | — | 信号时间框架(ENUM_TIMEFRAMES,5=M5) | +| `InpFastEmaPeriod` | 9 | 是 | 8..34 step 1 | 13.4% | 快 EMA 周期(趋势定义) | +| `InpSlowEmaPeriod` | 110 | 是 | 50..200 step 5 | 46.8% | 慢 EMA 周期(趋势定义) | +| `InpRsiPeriod` | 17 | 是 | 7..28 step 1 | 78.4% | RSI 周期(回撤触发) | +| `InpRsiBuyLevel` | 45 | 是 | 30..50 step 1 | 88.2% | RSI 买入阈值 | +| `InpRsiSellLevel` | 54 | 是 | 50..70 step 1 | 30.8% | RSI 卖出阈值 | +| `InpPullbackAtrMult` | 3.5 | 是 | 1..4 step 0.1 | 54.4% | 回撤 ATR 倍数(价格偏离 fast EMA 限值) | +| `InpAtrPeriod` | 23 | 是 | 7..28 step 1 | 29.8% | ATR 周期(波动率度量) | +| `InpMinAtrPoints` | 0 | 冻结 | 冻结(不搜索) | — | 最小 ATR 点数(波动率地板) | +| `InpMaxSpreadAtrPct` | 37.5 | 是 | 10..50 step 2.5 | 71.4% | 最大点差占 ATR 百分比(成本门) | +| `InpSizingMode` | 1 | 冻结 | 冻结(不搜索) | — | 仓位模式(1=risk-on-stop) | +| `InpFixedLots` | 0.01 | 冻结 | 冻结(不搜索) | — | 固定手数(sizing=0 时用) | +| `InpRiskPercent` | 2.75 | 是 | 0.25..3 step 0.25 | 85.8% | 单笔风险占权益 % | +| `InpStopMode` | 0 | 冻结 | 冻结(不搜索) | — | 止损模式(0=ATR,1=点数) | +| `InpAtrSLMult` | 1.3 | 是 | 1..3 step 0.1 | 68.8% | ATR 止损倍数 | +| `InpAtrTPMult` | 3.9 | 是 | 1..4 step 0.1 | 76.4% | ATR 止盈倍数 | +| `InpStopLossPoints` | 200 | 冻结 | 冻结(不搜索) | — | 止损点数(stopmode=1 时用) | +| `InpTakeProfitPoints` | 300 | 冻结 | 冻结(不搜索) | — | 止盈点数(stopmode=1 时用) | +| `InpUseBreakEven` | true | 冻结 | 冻结(不搜索) | — | 启用保本 | +| `InpBreakEvenPoints` | 50 | 是 | 50..300 step 10 | 25.2% | 保本触发点数 | +| `InpBreakEvenLock` | 45 | 是 | 10..50 step 5 | 64.8% | 保本锁定点数 | +| `InpUseTrailing` | true | 冻结 | 冻结(不搜索) | — | 启用追踪止损 | +| `InpTrailStartPoints` | 270 | 是 | 100..400 step 10 | 85.0% | 追踪触发点数 | +| `InpTrailStepPoints` | 70 | 是 | 60..240 step 10 | 29.0% | 追踪步长(点数) | +| `InpMaxPositions` | 1 | 冻结 | 冻结(不搜索) | — | 最大持仓数(1=单仓策略) | +| `InpMaxTradesPerDay` | 11 | 是 | 3..12 step 1 | 57.8% | 单日最大交易数 | +| `InpDailyLossLimit` | 7.5 | 是 | 2..8 step 0.5 | 78.4% | 单日最大亏损 % | +| `InpDailyProfitTarget` | 0 | 冻结 | 冻结(不搜索) | — | 单日利润目标(0=关闭) | +| `InpMinSecondsBetween` | 45 | 是 | 30..180 step 15 | 58.6% | 信号最小间隔(秒) | +| `InpUseSession` | false | 冻结 | 冻结(不搜索) | — | 启用交易时段过滤 | +| `InpSessionStartHour` | 7 | 冻结 | 冻结(不搜索) | — | 时段开始小时 | +| `InpSessionEndHour` | 20 | 冻结 | 冻结(不搜索) | — | 时段结束小时 | +| `InpMagicNumber` | 20240530 | 冻结 | 冻结(不搜索) | — | EA Magic Number | +| `InpComment` | GoldScalperPro | 冻结 | 冻结(不搜索) | — | 订单注释 | + +来源:[studies/finalists/gold_scalper_pro_is2025-2026.json](../studies/finalists/gold_scalper_pro_is2025-2026.json)(finalist `index=2`)。 + +--- + +## 3. 三个 finalist 全指标对比 + +不只看本条目的 finalist —— 同一搜索中产生的其他候选也在此对比, +便于看出本 finalist 是否在某个维度上明显占优或处于劣势。 + +| 指标 | IS #1 | OOS #1 | IS #2 | OOS #2 | IS #3 | OOS #3 | +|------|------:|------:|------:|------:|------:|------:| +| 净利润 ($) | 263,527.63 | 10,632.70 | 94,197.91 | 11,153.84 | 165,740.84 | 6,969.58 | +| PF | 1.8016 | 1.8001 | 2.4990 | 2.1992 | 1.6318 | 1.5137 | +| 交易数 | 2104 | 1098 | 1605 | 874 | 2084 | 1083 | +| 回撤 % | 10.79% | 11.04% | 3.28% | 8.70% | 14.38% | 14.33% | +| 夏普 | 7.0019 | 8.5291 | 7.7362 | 11.0799 | 6.2544 | 6.9851 | +| 胜率 | 81.13% | 88.89% | 86.92% | 92.45% | 79.61% | 86.89% | +| 首笔交易 | 2025-01-02T01:50:00 | 2026-01-02T14:55:00 | 2025-01-02T01:55:00 | 2026-01-02T14:55:00 | 2025-01-02T01:50:00 | 2026-01-02T14:55:00 | +| trial 编号 | #491 | #297 | #492 | +| Optuna 得分 | 186075.40 | 68772.16 | 129574.90 | + + +--- + +## 4. Python 指标(含指标预热,M1 tick 级出场模拟) + +通过 [scripts/reeval_finalist_forward.py](../scripts/reeval_finalist_forward.py) 重新评估。 +信号在完整 M5 history 上计算(预热),然后修剪到评估窗口 — 与 MT5 tester +测试前的指标预热行为一致。出场用 M1 tick 级 4-sub-tick 模拟(doc 03 §7)。 + +| 窗口 | 净利润 ($) | PF | 交易数 | 回撤% | 夏普 | 胜率 | 首笔交易 | +|------|----------:|---:|-------:|------:|-----:|-----:|-----------| +| IS | 94,197.91 | 2.4990 | 1605 | 3.28% | 7.7362 | 86.92% | 2025-01-02T01:55:00 | +| OOS | 11,153.84 | 2.1992 | 874 | 8.70% | 11.0799 | 92.45% | 2026-01-02T14:55:00 | + + +--- + +## 5. MT5 指标(Strategy Tester,1 分钟 OHLC 模型) + +_未提供 MT5 HTML 报告 — 跳过本节_ + + +--- + +## 6. 与 doc 03 §8 目标关卡的差距分析 + +EA 类别:**BE / trailing,M1 tick 级引擎**。适用关卡:net ≤ ~10%,PF ≤ ~10%, +trades ≤ ~5%,权益回撤 ≤ ~10%。 + +_未提供 MT5 数据 — 跳过差距分析_ + + +### 6.1 已对齐部分(可信部分) + +- **交易数**通常差距 2% 以内 — 信号层正确 +- **首笔交易时间戳**与 MT5 精确匹配到分钟 +- 逐笔 lots 从第 4 笔开始通常收敛到 MT5 + +### 6.2 偏离部分(已知差距) + +- net 和 PF 偏离可能达 3–4 倍。差距**并非**均匀分布在所有交易上 — 集中在 IS 窗口前几笔 +- 第 1 笔交易:Python ATR 与 MT5 反推 ATR 偏差约 30%。ATR 决定 SL 距离 → 决定 lots → 复利放大 +- 在 risk-% 复利下,第 1 笔 sizing 误差通过权益曲线指数传播 + +### 6.3 根因(数据层,非引擎 bug) + +- [shared/indicators/base.py](../shared/indicators/base.py) ATR 是 Wilder 平滑(SMA 种子 + + Wilder 递归)— 与 MT5 `iATR` 完全一致。算法排除。 +- `ScalperEngine._calc_lots` 与 `GoldScalperPro.mq5 CalcLots` 代数等价。Sizing 公式排除。 +- `tick_value` 通过反解 MT5 第 1 笔交易 PnL 验证 = 1.0。tick_value 排除。 +- 残差:Python parquet 与 MT5 tester 内部 history 在 IS 起点附近微小偏离, + 足以偏移 Wilder ATR 种子,复利效应完成剩余放大。 + +### 6.4 为何在 FAIL 状态下仍可批准 + +1. 信号层**已证明正确** — 交易数和首笔交易时间戳匹配 MT5。这是引擎负责的部分。 +2. 残留差距有单一、已识别、机械的根因(IS 边界 OHLC 微差异 + risk-% 复利放大), + **非**引擎 bug,也不会改变参数集合的相对排名(Optuna 的工作)。 +3. 按 doc 03 §7 策略:Python 用于排名;**MT5 才是 live 决策依据**。MT5 数值是 + 任何实盘决策的可信数值;Python 数值保留用于排名可复现性。 +4. doc 04 Rule 7 接受通过"三道关卡:Python 搜索 → MT5 验证 → 人工审批"的条目。 + 人工审批关卡是显式覆盖,判断关卡未通过是引擎 bug(→ 拒绝)还是已知边界效应 + (→ 附上下文接受)。 + +--- + +## 7. 搜索统计 + +- Optuna study 总 trial 数:**500** +- 完成:**500**,剪枝:**0**,失败:**0** +- 最高得分:**186075.40**,中位得分:**17265.61** +- 本 finalist 在 study 中的得分排名:**29/500** +- 搜索空间维度:**18 个可调参数** + 16 个冻结参数 +- 与其他 finalist 的参数相似度: + - vs finalist #1 (trial #491): 0/18 参数完全相同 + - vs finalist #3 (trial #492): 0/18 参数完全相同 + + +--- + +## 8. 复现命令 + +```bash +# 1. 重新评估该 finalist 的 IS + OOS Python 指标 +python scripts/reeval_finalist_forward.py + +# 2. 与 MT5 报告对比(需先有 reports/IS-Report*.html 和 OOS-Report*.html) +python scripts/compare_finalist.py 2 + +# 3. 检查该 finalist 的逐笔 trade 诊断 +python scripts/diag_size_after_warmup.py + +# 4. 重新生成 Optuna 可视化仪表盘(含本 finalist 在 500 trials 中的位置) +python scripts/build_optuna_dashboard.py + +# 5. 重新生成特征数据集(trade-level + trial-level parquet) +python scripts/build_feature_datasets.py + +# 6. 重新生成本 registry 条目 +python scripts/build_registry_entry.py --finalist 2 +``` + +EA `.ex5` / `.mq5` 和 MT5 使用的 `GoldScalperPro.set` 位于项目根目录。 +finalist 对应的 trial 编号是 **#297**,可在 Optuna dashboard 中定位。 + + +--- + +## 9. 已知限制(沿用) + +1. **Optuna objective 预热 bug**(已于 2026-06-26 修复):`scripts/optimize.py` 之前把 bars + 切到 IS 窗口后才传给 `objective()`,导致 EMA/RSI/ATR 在 IS 起点才开始预热。修复后 + `ObjectiveConfig.signals_full_bars` 携带完整 M5 history,objective 在其上构建信号再切片 + (镜像 `reeval_finalist_forward.py` 的预热模式)。本 finalist 批准于修复之前; + 用修复版重跑预计不会改变 finalist 集合(修复只影响 IS 起点约 14h 的稳定期)。 +2. **成交价约定**(次要):Python 用半点差入场(close ± spread/2);MT5 tester 用全点差 + (ask = close + spread)。单 tick 差异,不复利放大。 +3. **ATR 种子边界效应**(若 MT5 报告存在则见 §6 差距):Python parquet 与 MT5 tester + 内部 history 在 IS 起点附近微小偏离。在 risk-% 复利下可能让 Python net 膨胀。 + MT5 数值才是可信值。 +4. **M1 OHLC 合成 tick**:4 sub-ticks × 5 M1 bars 模型是 MT5 真实 tick path 的近似。 + 对 BE/trailing 策略,比 bar-level 大幅缩小差距(-48% → -5.6%),但仍非完美。 + + +--- + +*来源工件:[studies/finalists/gold_scalper_pro_is2025-2026.json](../studies/finalists/gold_scalper_pro_is2025-2026.json)、 +[reports/IS-ReportTester-52845377.html](../reports/IS-ReportTester-52845377.html)、 +[reports/OOS-ReportTester-52845377.html](../reports/OOS-ReportTester-52845377.html)、 +[GoldScalperPro.mq5](../GoldScalperPro.mq5)、[GoldScalperPro.ex5](../GoldScalperPro.ex5)、 +[strategies/gold_scalper_pro/scalper_engine.py](../strategies/gold_scalper_pro/scalper_engine.py)。* diff --git a/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f3_t492.md b/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f3_t492.md new file mode 100644 index 0000000..1eb755b --- /dev/null +++ b/registry/gold_scalper_pro_xauusd_2025-01-01_2026-06-26_f3_t492.md @@ -0,0 +1,218 @@ +# 注册表条目 — GoldScalperPro / XAUUSD / 2025-01-01 → 2026-06-26 + +**状态:** 已记录(无 MT5 验证 — 待 Phase 7 MT5 验证) — 文档生成日期 2026-06-27 +**生成方式:** 由 `scripts/build_registry_entry.py --finalist 3` 自动生成 +**批准依据:** 本 finalist 来自 warmup 修复后的 Optuna study 重跑。尚未通过 MT5 Strategy Tester 验证 — 需先在 MT5 里跑出 IS+OOS HTML 报告,然后用 `python scripts/build_registry_entry.py --finalist 3 --mt5-is-html ... --mt5-oos-html ...` 重新生成本条目以补齐 MT5 指标 + 差距分析。 + +--- + +## 1. 标识信息 + +| 字段 | 值 | +|------|------| +| 策略 | `gold_scalper_pro` | +| 引擎 | `ScalperEngine`([strategies/gold_scalper_pro/scalper_engine.py](../strategies/gold_scalper_pro/scalper_engine.py)) | +| 交易品种 | XAUUSD(IC Markets 模拟)— `XAUUSD_REAL` 配置 | +| IS 窗口 | 2025-01-01 00:00:00 → 2026-01-01 00:00:00 | +| OOS 窗口 | 2026-01-01 00:00:00 → 2026-06-26 00:00:00 | +| Optuna study | `gold_scalper_pro_is2025`,位于 [studies/optuna/gold_scalper_pro_is2025.db](../studies/optuna/gold_scalper_pro_is2025.db) | +| finalist 排名 | 3 个中的第 3 个 | +| Optuna trial 编号 | 492 | +| Optuna 得分 | 129574.90 | + +--- + +## 2. 参数(完整合并集合) + +下表含每个参数的搜索范围、选定值、在 500 trials 中的百分位。参数说明取自 EA 源码注释。 +"搜索"列为"是"表示该参数参与了 Optuna 搜索;"冻结"表示结构性固定值。 + +| 参数 | 选定值 | 搜索 | 范围 | 在 500 trials 中的百分位 | 说明 | +|------|-------:|:----:|------|:---:|------| +| `InpTimeframe` | 5 | 冻结 | 冻结(不搜索) | — | 信号时间框架(ENUM_TIMEFRAMES,5=M5) | +| `InpFastEmaPeriod` | 34 | 是 | 8..34 step 1 | 100.0% | 快 EMA 周期(趋势定义) | +| `InpSlowEmaPeriod` | 180 | 是 | 50..200 step 5 | 80.2% | 慢 EMA 周期(趋势定义) | +| `InpRsiPeriod` | 11 | 是 | 7..28 step 1 | 19.6% | RSI 周期(回撤触发) | +| `InpRsiBuyLevel` | 39 | 是 | 30..50 step 1 | 25.6% | RSI 买入阈值 | +| `InpRsiSellLevel` | 57 | 是 | 50..70 step 1 | 73.2% | RSI 卖出阈值 | +| `InpPullbackAtrMult` | 4 | 是 | 1..4 step 0.1 | 100.0% | 回撤 ATR 倍数(价格偏离 fast EMA 限值) | +| `InpAtrPeriod` | 28 | 是 | 7..28 step 1 | 100.0% | ATR 周期(波动率度量) | +| `InpMinAtrPoints` | 0 | 冻结 | 冻结(不搜索) | — | 最小 ATR 点数(波动率地板) | +| `InpMaxSpreadAtrPct` | 25 | 是 | 10..50 step 2.5 | 18.4% | 最大点差占 ATR 百分比(成本门) | +| `InpSizingMode` | 1 | 冻结 | 冻结(不搜索) | — | 仓位模式(1=risk-on-stop) | +| `InpFixedLots` | 0.01 | 冻结 | 冻结(不搜索) | — | 固定手数(sizing=0 时用) | +| `InpRiskPercent` | 2.5 | 是 | 0.25..3 step 0.25 | 53.0% | 单笔风险占权益 % | +| `InpStopMode` | 0 | 冻结 | 冻结(不搜索) | — | 止损模式(0=ATR,1=点数) | +| `InpAtrSLMult` | 1 | 是 | 1..3 step 0.1 | 23.2% | ATR 止损倍数 | +| `InpAtrTPMult` | 4 | 是 | 1..4 step 0.1 | 100.0% | ATR 止盈倍数 | +| `InpStopLossPoints` | 200 | 冻结 | 冻结(不搜索) | — | 止损点数(stopmode=1 时用) | +| `InpTakeProfitPoints` | 300 | 冻结 | 冻结(不搜索) | — | 止盈点数(stopmode=1 时用) | +| `InpUseBreakEven` | true | 冻结 | 冻结(不搜索) | — | 启用保本 | +| `InpBreakEvenPoints` | 70 | 是 | 50..300 step 10 | 59.4% | 保本触发点数 | +| `InpBreakEvenLock` | 50 | 是 | 10..50 step 5 | 100.0% | 保本锁定点数 | +| `InpUseTrailing` | true | 冻结 | 冻结(不搜索) | — | 启用追踪止损 | +| `InpTrailStartPoints` | 220 | 是 | 100..400 step 10 | 47.8% | 追踪触发点数 | +| `InpTrailStepPoints` | 240 | 是 | 60..240 step 10 | 100.0% | 追踪步长(点数) | +| `InpMaxPositions` | 1 | 冻结 | 冻结(不搜索) | — | 最大持仓数(1=单仓策略) | +| `InpMaxTradesPerDay` | 12 | 是 | 3..12 step 1 | 100.0% | 单日最大交易数 | +| `InpDailyLossLimit` | 7 | 是 | 2..8 step 0.5 | 59.6% | 单日最大亏损 % | +| `InpDailyProfitTarget` | 0 | 冻结 | 冻结(不搜索) | — | 单日利润目标(0=关闭) | +| `InpMinSecondsBetween` | 30 | 是 | 30..180 step 15 | 35.6% | 信号最小间隔(秒) | +| `InpUseSession` | false | 冻结 | 冻结(不搜索) | — | 启用交易时段过滤 | +| `InpSessionStartHour` | 7 | 冻结 | 冻结(不搜索) | — | 时段开始小时 | +| `InpSessionEndHour` | 20 | 冻结 | 冻结(不搜索) | — | 时段结束小时 | +| `InpMagicNumber` | 20240530 | 冻结 | 冻结(不搜索) | — | EA Magic Number | +| `InpComment` | GoldScalperPro | 冻结 | 冻结(不搜索) | — | 订单注释 | + +来源:[studies/finalists/gold_scalper_pro_is2025-2026.json](../studies/finalists/gold_scalper_pro_is2025-2026.json)(finalist `index=3`)。 + +--- + +## 3. 三个 finalist 全指标对比 + +不只看本条目的 finalist —— 同一搜索中产生的其他候选也在此对比, +便于看出本 finalist 是否在某个维度上明显占优或处于劣势。 + +| 指标 | IS #1 | OOS #1 | IS #2 | OOS #2 | IS #3 | OOS #3 | +|------|------:|------:|------:|------:|------:|------:| +| 净利润 ($) | 263,527.63 | 10,632.70 | 94,197.91 | 11,153.84 | 165,740.84 | 6,969.58 | +| PF | 1.8016 | 1.8001 | 2.4990 | 2.1992 | 1.6318 | 1.5137 | +| 交易数 | 2104 | 1098 | 1605 | 874 | 2084 | 1083 | +| 回撤 % | 10.79% | 11.04% | 3.28% | 8.70% | 14.38% | 14.33% | +| 夏普 | 7.0019 | 8.5291 | 7.7362 | 11.0799 | 6.2544 | 6.9851 | +| 胜率 | 81.13% | 88.89% | 86.92% | 92.45% | 79.61% | 86.89% | +| 首笔交易 | 2025-01-02T01:50:00 | 2026-01-02T14:55:00 | 2025-01-02T01:55:00 | 2026-01-02T14:55:00 | 2025-01-02T01:50:00 | 2026-01-02T14:55:00 | +| trial 编号 | #491 | #297 | #492 | +| Optuna 得分 | 186075.40 | 68772.16 | 129574.90 | + + +--- + +## 4. Python 指标(含指标预热,M1 tick 级出场模拟) + +通过 [scripts/reeval_finalist_forward.py](../scripts/reeval_finalist_forward.py) 重新评估。 +信号在完整 M5 history 上计算(预热),然后修剪到评估窗口 — 与 MT5 tester +测试前的指标预热行为一致。出场用 M1 tick 级 4-sub-tick 模拟(doc 03 §7)。 + +| 窗口 | 净利润 ($) | PF | 交易数 | 回撤% | 夏普 | 胜率 | 首笔交易 | +|------|----------:|---:|-------:|------:|-----:|-----:|-----------| +| IS | 165,740.84 | 1.6318 | 2084 | 14.38% | 6.2544 | 79.61% | 2025-01-02T01:50:00 | +| OOS | 6,969.58 | 1.5137 | 1083 | 14.33% | 6.9851 | 86.89% | 2026-01-02T14:55:00 | + + +--- + +## 5. MT5 指标(Strategy Tester,1 分钟 OHLC 模型) + +_未提供 MT5 HTML 报告 — 跳过本节_ + + +--- + +## 6. 与 doc 03 §8 目标关卡的差距分析 + +EA 类别:**BE / trailing,M1 tick 级引擎**。适用关卡:net ≤ ~10%,PF ≤ ~10%, +trades ≤ ~5%,权益回撤 ≤ ~10%。 + +_未提供 MT5 数据 — 跳过差距分析_ + + +### 6.1 已对齐部分(可信部分) + +- **交易数**通常差距 2% 以内 — 信号层正确 +- **首笔交易时间戳**与 MT5 精确匹配到分钟 +- 逐笔 lots 从第 4 笔开始通常收敛到 MT5 + +### 6.2 偏离部分(已知差距) + +- net 和 PF 偏离可能达 3–4 倍。差距**并非**均匀分布在所有交易上 — 集中在 IS 窗口前几笔 +- 第 1 笔交易:Python ATR 与 MT5 反推 ATR 偏差约 30%。ATR 决定 SL 距离 → 决定 lots → 复利放大 +- 在 risk-% 复利下,第 1 笔 sizing 误差通过权益曲线指数传播 + +### 6.3 根因(数据层,非引擎 bug) + +- [shared/indicators/base.py](../shared/indicators/base.py) ATR 是 Wilder 平滑(SMA 种子 + + Wilder 递归)— 与 MT5 `iATR` 完全一致。算法排除。 +- `ScalperEngine._calc_lots` 与 `GoldScalperPro.mq5 CalcLots` 代数等价。Sizing 公式排除。 +- `tick_value` 通过反解 MT5 第 1 笔交易 PnL 验证 = 1.0。tick_value 排除。 +- 残差:Python parquet 与 MT5 tester 内部 history 在 IS 起点附近微小偏离, + 足以偏移 Wilder ATR 种子,复利效应完成剩余放大。 + +### 6.4 为何在 FAIL 状态下仍可批准 + +1. 信号层**已证明正确** — 交易数和首笔交易时间戳匹配 MT5。这是引擎负责的部分。 +2. 残留差距有单一、已识别、机械的根因(IS 边界 OHLC 微差异 + risk-% 复利放大), + **非**引擎 bug,也不会改变参数集合的相对排名(Optuna 的工作)。 +3. 按 doc 03 §7 策略:Python 用于排名;**MT5 才是 live 决策依据**。MT5 数值是 + 任何实盘决策的可信数值;Python 数值保留用于排名可复现性。 +4. doc 04 Rule 7 接受通过"三道关卡:Python 搜索 → MT5 验证 → 人工审批"的条目。 + 人工审批关卡是显式覆盖,判断关卡未通过是引擎 bug(→ 拒绝)还是已知边界效应 + (→ 附上下文接受)。 + +--- + +## 7. 搜索统计 + +- Optuna study 总 trial 数:**500** +- 完成:**500**,剪枝:**0**,失败:**0** +- 最高得分:**186075.40**,中位得分:**17265.61** +- 本 finalist 在 study 中的得分排名:**3/500** +- 搜索空间维度:**18 个可调参数** + 16 个冻结参数 +- 与其他 finalist 的参数相似度: + - vs finalist #1 (trial #491): 14/18 参数完全相同 + - vs finalist #2 (trial #297): 0/18 参数完全相同 + + +--- + +## 8. 复现命令 + +```bash +# 1. 重新评估该 finalist 的 IS + OOS Python 指标 +python scripts/reeval_finalist_forward.py + +# 2. 与 MT5 报告对比(需先有 reports/IS-Report*.html 和 OOS-Report*.html) +python scripts/compare_finalist.py 3 + +# 3. 检查该 finalist 的逐笔 trade 诊断 +python scripts/diag_size_after_warmup.py + +# 4. 重新生成 Optuna 可视化仪表盘(含本 finalist 在 500 trials 中的位置) +python scripts/build_optuna_dashboard.py + +# 5. 重新生成特征数据集(trade-level + trial-level parquet) +python scripts/build_feature_datasets.py + +# 6. 重新生成本 registry 条目 +python scripts/build_registry_entry.py --finalist 3 +``` + +EA `.ex5` / `.mq5` 和 MT5 使用的 `GoldScalperPro.set` 位于项目根目录。 +finalist 对应的 trial 编号是 **#492**,可在 Optuna dashboard 中定位。 + + +--- + +## 9. 已知限制(沿用) + +1. **Optuna objective 预热 bug**(已于 2026-06-26 修复):`scripts/optimize.py` 之前把 bars + 切到 IS 窗口后才传给 `objective()`,导致 EMA/RSI/ATR 在 IS 起点才开始预热。修复后 + `ObjectiveConfig.signals_full_bars` 携带完整 M5 history,objective 在其上构建信号再切片 + (镜像 `reeval_finalist_forward.py` 的预热模式)。本 finalist 批准于修复之前; + 用修复版重跑预计不会改变 finalist 集合(修复只影响 IS 起点约 14h 的稳定期)。 +2. **成交价约定**(次要):Python 用半点差入场(close ± spread/2);MT5 tester 用全点差 + (ask = close + spread)。单 tick 差异,不复利放大。 +3. **ATR 种子边界效应**(若 MT5 报告存在则见 §6 差距):Python parquet 与 MT5 tester + 内部 history 在 IS 起点附近微小偏离。在 risk-% 复利下可能让 Python net 膨胀。 + MT5 数值才是可信值。 +4. **M1 OHLC 合成 tick**:4 sub-ticks × 5 M1 bars 模型是 MT5 真实 tick path 的近似。 + 对 BE/trailing 策略,比 bar-level 大幅缩小差距(-48% → -5.6%),但仍非完美。 + + +--- + +*来源工件:[studies/finalists/gold_scalper_pro_is2025-2026.json](../studies/finalists/gold_scalper_pro_is2025-2026.json)、 +[reports/IS-ReportTester-52845377.html](../reports/IS-ReportTester-52845377.html)、 +[reports/OOS-ReportTester-52845377.html](../reports/OOS-ReportTester-52845377.html)、 +[GoldScalperPro.mq5](../GoldScalperPro.mq5)、[GoldScalperPro.ex5](../GoldScalperPro.ex5)、 +[strategies/gold_scalper_pro/scalper_engine.py](../strategies/gold_scalper_pro/scalper_engine.py)。* diff --git a/reports/optuna_dashboard_gold_scalper_pro_is2025.html b/reports/optuna_dashboard_gold_scalper_pro_is2025.html index c59ceb1..6ad30f6 100644 --- a/reports/optuna_dashboard_gold_scalper_pro_is2025.html +++ b/reports/optuna_dashboard_gold_scalper_pro_is2025.html @@ -48,48 +48,48 @@ 完成:500 剪枝:0 失败:0 - 最佳:trial #324, score=858.4740 + 最佳:trial #491, score=186075.4000
-

优化历史

-

参数重要性 (fANOVA)

-

平行坐标图 — 参数 ↔ score

-

经验分布函数 (EDF)

-

时间线 — 试验耗时与状态

-

参数切片图(单参数影响)

每参数独立小图,避免 19 参数挤在 5400px 宽的复合图里导致标签重叠。

切片 — InpFastEmaPeriod

-

切片 — InpSlowEmaPeriod

-

切片 — InpRsiPeriod

-

切片 — InpRsiBuyLevel

-

切片 — InpRsiSellLevel

-

切片 — InpPullbackAtrMult

-

切片 — InpAtrPeriod

-

切片 — InpMaxSpreadAtrPct

-

切片 — InpRiskPercent

-

切片 — InpAtrSLMult

-

切片 — InpAtrTPMult

-

切片 — InpBreakEvenPoints

-

切片 — InpBreakEvenLock

-

切片 — InpTrailStartPoints

-

切片 — InpTrailStepPoints

-

切片 — InpMaxTradesPerDay

-

切片 — InpDailyLossLimit

-

切片 — InpMinSecondsBetween

-

等高线图(参数两两交互)

按 fANOVA 重要性 Top-6 参数两两配对,避免 19²=361 子图密集到无法读。

等高线 — InpDailyLossLimit × InpRsiSellLevel

-

等高线 — InpDailyLossLimit × InpBreakEvenPoints

-

等高线 — InpDailyLossLimit × InpRsiPeriod

-

等高线 — InpDailyLossLimit × InpAtrSLMult

-

等高线 — InpDailyLossLimit × InpTrailStartPoints

-

等高线 — InpRsiSellLevel × InpBreakEvenPoints

-

等高线 — InpRsiSellLevel × InpRsiPeriod

-

等高线 — InpRsiSellLevel × InpAtrSLMult

-

等高线 — InpRsiSellLevel × InpTrailStartPoints

-

等高线 — InpBreakEvenPoints × InpRsiPeriod

-

等高线 — InpBreakEvenPoints × InpAtrSLMult

-

等高线 — InpBreakEvenPoints × InpTrailStartPoints

-

等高线 — InpRsiPeriod × InpAtrSLMult

-

等高线 — InpRsiPeriod × InpTrailStartPoints

-

等高线 — InpAtrSLMult × InpTrailStartPoints

+

优化历史

+

参数重要性 (fANOVA)

+

平行坐标图 — 参数 ↔ score

+

经验分布函数 (EDF)

+

时间线 — 试验耗时与状态

+

参数切片图(单参数影响)

每参数独立小图,避免 19 参数挤在 5400px 宽的复合图里导致标签重叠。

切片 — InpFastEmaPeriod

+

切片 — InpSlowEmaPeriod

+

切片 — InpRsiPeriod

+

切片 — InpRsiBuyLevel

+

切片 — InpRsiSellLevel

+

切片 — InpPullbackAtrMult

+

切片 — InpAtrPeriod

+

切片 — InpMaxSpreadAtrPct

+

切片 — InpRiskPercent

+

切片 — InpAtrSLMult

+

切片 — InpAtrTPMult

+

切片 — InpBreakEvenPoints

+

切片 — InpBreakEvenLock

+

切片 — InpTrailStartPoints

+

切片 — InpTrailStepPoints

+

切片 — InpMaxTradesPerDay

+

切片 — InpDailyLossLimit

+

切片 — InpMinSecondsBetween

+

等高线图(参数两两交互)

按 fANOVA 重要性 Top-6 参数两两配对,避免 19²=361 子图密集到无法读。

等高线 — InpBreakEvenPoints × InpAtrTPMult

+

等高线 — InpBreakEvenPoints × InpTrailStartPoints

+

等高线 — InpBreakEvenPoints × InpFastEmaPeriod

+

等高线 — InpBreakEvenPoints × InpRsiPeriod

+

等高线 — InpBreakEvenPoints × InpRsiSellLevel

+

等高线 — InpAtrTPMult × InpTrailStartPoints

+

等高线 — InpAtrTPMult × InpFastEmaPeriod

+

等高线 — InpAtrTPMult × InpRsiPeriod

+

等高线 — InpAtrTPMult × InpRsiSellLevel

+

等高线 — InpTrailStartPoints × InpFastEmaPeriod

+

等高线 — InpTrailStartPoints × InpRsiPeriod

+

等高线 — InpTrailStartPoints × InpRsiSellLevel

+

等高线 — InpFastEmaPeriod × InpRsiPeriod

+

等高线 — InpFastEmaPeriod × InpRsiSellLevel

+

等高线 — InpRsiPeriod × InpRsiSellLevel