phase 7-8 完成 + warmup 修复 + 产物结构化重组
主要内容: - Phase 8 PROMOTE: finalist #1 (trial #324) registry 条目,自动生成 - Optuna objective warmup bug 修复 (shared/optimizer/objective.py) - studies/ 目录按用途重组为 optuna/ + finalists/ + features/ 三层 - reports/ 加入 Optuna 中文 dashboard (5 主图 + 18 slice + 15 contour) - 新增 PROJECT_GUIDE.md 项目说明文档 - 新增 build_registry_entry.py / build_optuna_dashboard.py / build_feature_datasets.py - .gitignore: 允许提交 studies/*.db (Optuna DB) 和 reports/*.html (MT5 + dashboard)
This commit is contained in:
@@ -0,0 +1,251 @@
|
||||
{
|
||||
"windows": {
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"finalists": [
|
||||
{
|
||||
"index": 1,
|
||||
"trial_number": 324,
|
||||
"score": 858.47,
|
||||
"params": {
|
||||
"InpFastEmaPeriod": 25,
|
||||
"InpSlowEmaPeriod": 160,
|
||||
"InpRsiPeriod": 16,
|
||||
"InpRsiBuyLevel": 50.0,
|
||||
"InpRsiSellLevel": 56.0,
|
||||
"InpPullbackAtrMult": 3.4000000000000004,
|
||||
"InpAtrPeriod": 27,
|
||||
"InpMaxSpreadAtrPct": 37.5,
|
||||
"InpRiskPercent": 2.25,
|
||||
"InpAtrSLMult": 1.9,
|
||||
"InpAtrTPMult": 3.1,
|
||||
"InpBreakEvenPoints": 50.0,
|
||||
"InpBreakEvenLock": 25,
|
||||
"InpTrailStartPoints": 400.0,
|
||||
"InpTrailStepPoints": 70.0,
|
||||
"InpMaxTradesPerDay": 12,
|
||||
"InpDailyLossLimit": 5.0,
|
||||
"InpMinSecondsBetween": 75
|
||||
},
|
||||
"merged_params": {
|
||||
"InpTimeframe": 5,
|
||||
"InpFastEmaPeriod": 25,
|
||||
"InpSlowEmaPeriod": 160,
|
||||
"InpRsiPeriod": 16,
|
||||
"InpRsiBuyLevel": 50.0,
|
||||
"InpRsiSellLevel": 56.0,
|
||||
"InpPullbackAtrMult": 3.4000000000000004,
|
||||
"InpAtrPeriod": 27,
|
||||
"InpMinAtrPoints": 0,
|
||||
"InpMaxSpreadAtrPct": 37.5,
|
||||
"InpSizingMode": 1,
|
||||
"InpFixedLots": 0.01,
|
||||
"InpRiskPercent": 2.25,
|
||||
"InpStopMode": 0,
|
||||
"InpAtrSLMult": 1.9,
|
||||
"InpAtrTPMult": 3.1,
|
||||
"InpStopLossPoints": 200,
|
||||
"InpTakeProfitPoints": 300,
|
||||
"InpUseBreakEven": true,
|
||||
"InpBreakEvenPoints": 50.0,
|
||||
"InpBreakEvenLock": 25,
|
||||
"InpUseTrailing": true,
|
||||
"InpTrailStartPoints": 400.0,
|
||||
"InpTrailStepPoints": 70.0,
|
||||
"InpMaxPositions": 1,
|
||||
"InpMaxTradesPerDay": 12,
|
||||
"InpDailyLossLimit": 5.0,
|
||||
"InpDailyProfitTarget": 0.0,
|
||||
"InpMinSecondsBetween": 75,
|
||||
"InpUseSession": false,
|
||||
"InpSessionStartHour": 7,
|
||||
"InpSessionEndHour": 20,
|
||||
"InpMagicNumber": 20240530,
|
||||
"InpComment": "GoldScalperPro"
|
||||
},
|
||||
"IS": {
|
||||
"net": 28983.81,
|
||||
"PF": 1.7053,
|
||||
"trades": 2396,
|
||||
"DD%": 0.103408,
|
||||
"sharpe": 6.9717,
|
||||
"win_rate": 0.8998,
|
||||
"first_trade_ts": "2025-01-02T01:55:00"
|
||||
},
|
||||
"OOS": {
|
||||
"net": 4213.78,
|
||||
"PF": 2.3636,
|
||||
"trades": 1161,
|
||||
"DD%": 0.078049,
|
||||
"sharpe": 9.457,
|
||||
"win_rate": 0.9518,
|
||||
"first_trade_ts": "2026-01-02T08:50:00"
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
"trial_number": 39,
|
||||
"score": 159.38,
|
||||
"params": {
|
||||
"InpFastEmaPeriod": 24,
|
||||
"InpSlowEmaPeriod": 65,
|
||||
"InpRsiPeriod": 23,
|
||||
"InpRsiBuyLevel": 30.0,
|
||||
"InpRsiSellLevel": 51.0,
|
||||
"InpPullbackAtrMult": 2.4000000000000004,
|
||||
"InpAtrPeriod": 9,
|
||||
"InpMaxSpreadAtrPct": 37.5,
|
||||
"InpRiskPercent": 0.75,
|
||||
"InpAtrSLMult": 1.2,
|
||||
"InpAtrTPMult": 2.1,
|
||||
"InpBreakEvenPoints": 70.0,
|
||||
"InpBreakEvenLock": 45,
|
||||
"InpTrailStartPoints": 140.0,
|
||||
"InpTrailStepPoints": 80.0,
|
||||
"InpMaxTradesPerDay": 3,
|
||||
"InpDailyLossLimit": 7.5,
|
||||
"InpMinSecondsBetween": 120
|
||||
},
|
||||
"merged_params": {
|
||||
"InpTimeframe": 5,
|
||||
"InpFastEmaPeriod": 24,
|
||||
"InpSlowEmaPeriod": 65,
|
||||
"InpRsiPeriod": 23,
|
||||
"InpRsiBuyLevel": 30.0,
|
||||
"InpRsiSellLevel": 51.0,
|
||||
"InpPullbackAtrMult": 2.4000000000000004,
|
||||
"InpAtrPeriod": 9,
|
||||
"InpMinAtrPoints": 0,
|
||||
"InpMaxSpreadAtrPct": 37.5,
|
||||
"InpSizingMode": 1,
|
||||
"InpFixedLots": 0.01,
|
||||
"InpRiskPercent": 0.75,
|
||||
"InpStopMode": 0,
|
||||
"InpAtrSLMult": 1.2,
|
||||
"InpAtrTPMult": 2.1,
|
||||
"InpStopLossPoints": 200,
|
||||
"InpTakeProfitPoints": 300,
|
||||
"InpUseBreakEven": true,
|
||||
"InpBreakEvenPoints": 70.0,
|
||||
"InpBreakEvenLock": 45,
|
||||
"InpUseTrailing": true,
|
||||
"InpTrailStartPoints": 140.0,
|
||||
"InpTrailStepPoints": 80.0,
|
||||
"InpMaxPositions": 1,
|
||||
"InpMaxTradesPerDay": 3,
|
||||
"InpDailyLossLimit": 7.5,
|
||||
"InpDailyProfitTarget": 0.0,
|
||||
"InpMinSecondsBetween": 120,
|
||||
"InpUseSession": false,
|
||||
"InpSessionStartHour": 7,
|
||||
"InpSessionEndHour": 20,
|
||||
"InpMagicNumber": 20240530,
|
||||
"InpComment": "GoldScalperPro"
|
||||
},
|
||||
"IS": {
|
||||
"net": 471.1,
|
||||
"PF": 1.5311,
|
||||
"trades": 555,
|
||||
"DD%": 0.040607,
|
||||
"sharpe": 3.65,
|
||||
"win_rate": 0.8234,
|
||||
"first_trade_ts": "2025-01-03T12:35:00"
|
||||
},
|
||||
"OOS": {
|
||||
"net": 265.82,
|
||||
"PF": 1.8351,
|
||||
"trades": 276,
|
||||
"DD%": 0.029001,
|
||||
"sharpe": 4.0478,
|
||||
"win_rate": 0.8841,
|
||||
"first_trade_ts": "2026-01-07T11:10:00"
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 3,
|
||||
"trial_number": 391,
|
||||
"score": 794.99,
|
||||
"params": {
|
||||
"InpFastEmaPeriod": 25,
|
||||
"InpSlowEmaPeriod": 165,
|
||||
"InpRsiPeriod": 14,
|
||||
"InpRsiBuyLevel": 50.0,
|
||||
"InpRsiSellLevel": 58.0,
|
||||
"InpPullbackAtrMult": 3.5,
|
||||
"InpAtrPeriod": 27,
|
||||
"InpMaxSpreadAtrPct": 45.0,
|
||||
"InpRiskPercent": 1.5,
|
||||
"InpAtrSLMult": 1.9,
|
||||
"InpAtrTPMult": 3.0,
|
||||
"InpBreakEvenPoints": 60.0,
|
||||
"InpBreakEvenLock": 20,
|
||||
"InpTrailStartPoints": 400.0,
|
||||
"InpTrailStepPoints": 70.0,
|
||||
"InpMaxTradesPerDay": 12,
|
||||
"InpDailyLossLimit": 2.5,
|
||||
"InpMinSecondsBetween": 75
|
||||
},
|
||||
"merged_params": {
|
||||
"InpTimeframe": 5,
|
||||
"InpFastEmaPeriod": 25,
|
||||
"InpSlowEmaPeriod": 165,
|
||||
"InpRsiPeriod": 14,
|
||||
"InpRsiBuyLevel": 50.0,
|
||||
"InpRsiSellLevel": 58.0,
|
||||
"InpPullbackAtrMult": 3.5,
|
||||
"InpAtrPeriod": 27,
|
||||
"InpMinAtrPoints": 0,
|
||||
"InpMaxSpreadAtrPct": 45.0,
|
||||
"InpSizingMode": 1,
|
||||
"InpFixedLots": 0.01,
|
||||
"InpRiskPercent": 1.5,
|
||||
"InpStopMode": 0,
|
||||
"InpAtrSLMult": 1.9,
|
||||
"InpAtrTPMult": 3.0,
|
||||
"InpStopLossPoints": 200,
|
||||
"InpTakeProfitPoints": 300,
|
||||
"InpUseBreakEven": true,
|
||||
"InpBreakEvenPoints": 60.0,
|
||||
"InpBreakEvenLock": 20,
|
||||
"InpUseTrailing": true,
|
||||
"InpTrailStartPoints": 400.0,
|
||||
"InpTrailStepPoints": 70.0,
|
||||
"InpMaxPositions": 1,
|
||||
"InpMaxTradesPerDay": 12,
|
||||
"InpDailyLossLimit": 2.5,
|
||||
"InpDailyProfitTarget": 0.0,
|
||||
"InpMinSecondsBetween": 75,
|
||||
"InpUseSession": false,
|
||||
"InpSessionStartHour": 7,
|
||||
"InpSessionEndHour": 20,
|
||||
"InpMagicNumber": 20240530,
|
||||
"InpComment": "GoldScalperPro"
|
||||
},
|
||||
"IS": {
|
||||
"net": 5171.29,
|
||||
"PF": 1.5425,
|
||||
"trades": 2260,
|
||||
"DD%": 0.061668,
|
||||
"sharpe": 5.4414,
|
||||
"win_rate": 0.8885,
|
||||
"first_trade_ts": "2025-01-02T01:55:00"
|
||||
},
|
||||
"OOS": {
|
||||
"net": 1614.25,
|
||||
"PF": 1.9341,
|
||||
"trades": 1131,
|
||||
"DD%": 0.053726,
|
||||
"sharpe": 7.5916,
|
||||
"win_rate": 0.9416,
|
||||
"first_trade_ts": "2026-01-02T08:15:00"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user