Files
fx-quant/results/phase2/param_sweep.json
T
Brent Neale 4f911b2072 Add Phase 2 backtesting pipeline: IS/OOS split, param sweep, generalization scoring
Externalize hardcoded params in S4F (5 params) and S3 (9 params) as class
attributes for sweep compatibility. Add unified backtest runner with IS/OOS
validation and generalization scores, plus parameter grid sweep (90 combos)
with OOS validation. S7/S9/S9_Filtered pass generalization; S4F/S3 confirm
defaults are near-optimal.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:25:08 +10:00

1555 lines
33 KiB
JSON

{
"S7_Tight": {
"pair": "GBP_JPY",
"combos_tested": 18,
"best_params": {
"SWEEP_MIN_ATR": 1.0,
"SL_ATR_MULT": 0.8,
"TP2_ATR_MULT": 3.0
},
"is_best_metrics": {
"trades": 26,
"wr": 57.7,
"pf": 1.02,
"sharpe": 0.12,
"pnl_pips": 10.5,
"expectancy": 0.41
},
"oos_validation": {
"trades": 20,
"wr": 70.0,
"pf": 1.59,
"sharpe": 3.23,
"pnl_pips": 237.1,
"expectancy": 11.85
},
"generalization_score": 1.591,
"verdict": "PASS",
"is_results_ranked": [
{
"rank": 1,
"params": {
"SWEEP_MIN_ATR": 1.0,
"SL_ATR_MULT": 0.8,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 26,
"wr": 57.7,
"pf": 1.02,
"sharpe": 0.12,
"pnl_pips": 10.5,
"expectancy": 0.41
}
},
{
"rank": 2,
"params": {
"SWEEP_MIN_ATR": 1.0,
"SL_ATR_MULT": 0.8,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 26,
"wr": 57.7,
"pf": 0.97,
"sharpe": -0.24,
"pnl_pips": -20.2,
"expectancy": -0.78
}
},
{
"rank": 3,
"params": {
"SWEEP_MIN_ATR": 0.5,
"SL_ATR_MULT": 1.5,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 73,
"wr": 61.6,
"pf": 0.96,
"sharpe": -0.3,
"pnl_pips": -90.4,
"expectancy": -1.24
}
},
{
"rank": 4,
"params": {
"SWEEP_MIN_ATR": 1.0,
"SL_ATR_MULT": 1.0,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 22,
"wr": 54.5,
"pf": 0.94,
"sharpe": -0.42,
"pnl_pips": -30.9,
"expectancy": -1.4
}
},
{
"rank": 5,
"params": {
"SWEEP_MIN_ATR": 1.0,
"SL_ATR_MULT": 1.0,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 22,
"wr": 54.5,
"pf": 0.9,
"sharpe": -0.71,
"pnl_pips": -50.3,
"expectancy": -2.28
}
},
{
"rank": 6,
"params": {
"SWEEP_MIN_ATR": 0.5,
"SL_ATR_MULT": 1.5,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 73,
"wr": 61.6,
"pf": 0.89,
"sharpe": -0.76,
"pnl_pips": -223.0,
"expectancy": -3.06
}
},
{
"rank": 7,
"params": {
"SWEEP_MIN_ATR": 0.5,
"SL_ATR_MULT": 0.8,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 120,
"wr": 55.8,
"pf": 0.88,
"sharpe": -0.86,
"pnl_pips": -362.6,
"expectancy": -3.02
}
},
{
"rank": 8,
"params": {
"SWEEP_MIN_ATR": 0.5,
"SL_ATR_MULT": 1.0,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 110,
"wr": 56.4,
"pf": 0.87,
"sharpe": -0.9,
"pnl_pips": -358.0,
"expectancy": -3.25
}
},
{
"rank": 9,
"params": {
"SWEEP_MIN_ATR": 0.5,
"SL_ATR_MULT": 0.8,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 121,
"wr": 56.2,
"pf": 0.84,
"sharpe": -1.23,
"pnl_pips": -497.4,
"expectancy": -4.11
}
},
{
"rank": 10,
"params": {
"SWEEP_MIN_ATR": 0.5,
"SL_ATR_MULT": 1.0,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 111,
"wr": 56.8,
"pf": 0.84,
"sharpe": -1.19,
"pnl_pips": -459.0,
"expectancy": -4.13
}
},
{
"rank": 11,
"params": {
"SWEEP_MIN_ATR": 0.7,
"SL_ATR_MULT": 0.8,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 69,
"wr": 52.2,
"pf": 0.72,
"sharpe": -2.35,
"pnl_pips": -517.9,
"expectancy": -7.51
}
},
{
"rank": 12,
"params": {
"SWEEP_MIN_ATR": 0.7,
"SL_ATR_MULT": 0.8,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 69,
"wr": 52.2,
"pf": 0.69,
"sharpe": -2.62,
"pnl_pips": -563.4,
"expectancy": -8.17
}
},
{
"rank": 13,
"params": {
"SWEEP_MIN_ATR": 0.7,
"SL_ATR_MULT": 1.0,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 63,
"wr": 52.4,
"pf": 0.68,
"sharpe": -2.71,
"pnl_pips": -567.6,
"expectancy": -9.01
}
},
{
"rank": 14,
"params": {
"SWEEP_MIN_ATR": 0.7,
"SL_ATR_MULT": 1.0,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 63,
"wr": 52.4,
"pf": 0.66,
"sharpe": -2.97,
"pnl_pips": -606.3,
"expectancy": -9.62
}
},
{
"rank": 15,
"params": {
"SWEEP_MIN_ATR": 0.7,
"SL_ATR_MULT": 1.5,
"TP2_ATR_MULT": 3.0
},
"metrics": {
"trades": 24,
"wr": 54.2,
"pf": 0.56,
"sharpe": -3.93,
"pnl_pips": -374.9,
"expectancy": -15.62
}
},
{
"rank": 16,
"params": {
"SWEEP_MIN_ATR": 0.7,
"SL_ATR_MULT": 1.5,
"TP2_ATR_MULT": 2.5
},
"metrics": {
"trades": 24,
"wr": 54.2,
"pf": 0.52,
"sharpe": -4.4,
"pnl_pips": -409.1,
"expectancy": -17.04
}
}
]
},
"S9": {
"pair": "GBP_USD",
"combos_tested": 18,
"best_params": {
"VOLUME_MULT": 2.0,
"SL_ATR_CAP": 2.5,
"ENTRY_END_HOUR": 11
},
"is_best_metrics": {
"trades": 226,
"wr": 52.2,
"pf": 0.86,
"sharpe": -1.07,
"pnl_pips": -599.7,
"expectancy": -2.65
},
"oos_validation": {
"trades": 18,
"wr": 72.2,
"pf": 1.8,
"sharpe": 3.79,
"pnl_pips": 164.4,
"expectancy": 9.13
},
"generalization_score": 1.692,
"verdict": "PASS",
"is_results_ranked": [
{
"rank": 1,
"params": {
"VOLUME_MULT": 2.0,
"SL_ATR_CAP": 2.5,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 226,
"wr": 52.2,
"pf": 0.86,
"sharpe": -1.07,
"pnl_pips": -599.7,
"expectancy": -2.65
}
},
{
"rank": 2,
"params": {
"VOLUME_MULT": 1.2,
"SL_ATR_CAP": 2.5,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 315,
"wr": 51.7,
"pf": 0.84,
"sharpe": -1.17,
"pnl_pips": -977.8,
"expectancy": -3.1
}
},
{
"rank": 3,
"params": {
"VOLUME_MULT": 1.5,
"SL_ATR_CAP": 2.5,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 297,
"wr": 52.2,
"pf": 0.84,
"sharpe": -1.19,
"pnl_pips": -910.4,
"expectancy": -3.07
}
},
{
"rank": 4,
"params": {
"VOLUME_MULT": 1.2,
"SL_ATR_CAP": 2.5,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 267,
"wr": 52.4,
"pf": 0.83,
"sharpe": -1.26,
"pnl_pips": -882.9,
"expectancy": -3.31
}
},
{
"rank": 5,
"params": {
"VOLUME_MULT": 2.0,
"SL_ATR_CAP": 2.5,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 199,
"wr": 52.3,
"pf": 0.83,
"sharpe": -1.3,
"pnl_pips": -641.3,
"expectancy": -3.22
}
},
{
"rank": 6,
"params": {
"VOLUME_MULT": 1.2,
"SL_ATR_CAP": 2.0,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 190,
"wr": 53.7,
"pf": 0.83,
"sharpe": -1.33,
"pnl_pips": -551.1,
"expectancy": -2.9
}
},
{
"rank": 7,
"params": {
"VOLUME_MULT": 2.0,
"SL_ATR_CAP": 2.0,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 173,
"wr": 52.6,
"pf": 0.83,
"sharpe": -1.29,
"pnl_pips": -474.5,
"expectancy": -2.74
}
},
{
"rank": 8,
"params": {
"VOLUME_MULT": 2.0,
"SL_ATR_CAP": 2.0,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 151,
"wr": 53.0,
"pf": 0.81,
"sharpe": -1.42,
"pnl_pips": -452.1,
"expectancy": -2.99
}
},
{
"rank": 9,
"params": {
"VOLUME_MULT": 1.2,
"SL_ATR_CAP": 2.0,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 229,
"wr": 52.4,
"pf": 0.79,
"sharpe": -1.63,
"pnl_pips": -839.2,
"expectancy": -3.66
}
},
{
"rank": 10,
"params": {
"VOLUME_MULT": 1.5,
"SL_ATR_CAP": 2.0,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 177,
"wr": 53.1,
"pf": 0.79,
"sharpe": -1.69,
"pnl_pips": -629.4,
"expectancy": -3.56
}
},
{
"rank": 11,
"params": {
"VOLUME_MULT": 1.5,
"SL_ATR_CAP": 2.0,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 213,
"wr": 52.1,
"pf": 0.78,
"sharpe": -1.76,
"pnl_pips": -806.6,
"expectancy": -3.79
}
},
{
"rank": 12,
"params": {
"VOLUME_MULT": 1.2,
"SL_ATR_CAP": 3.0,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 288,
"wr": 51.4,
"pf": 0.77,
"sharpe": -1.8,
"pnl_pips": -1492.9,
"expectancy": -5.18
}
},
{
"rank": 13,
"params": {
"VOLUME_MULT": 1.5,
"SL_ATR_CAP": 2.5,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 253,
"wr": 51.8,
"pf": 0.77,
"sharpe": -1.82,
"pnl_pips": -1171.7,
"expectancy": -4.63
}
},
{
"rank": 14,
"params": {
"VOLUME_MULT": 1.2,
"SL_ATR_CAP": 3.0,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 334,
"wr": 50.0,
"pf": 0.75,
"sharpe": -2.0,
"pnl_pips": -1946.2,
"expectancy": -5.83
}
},
{
"rank": 15,
"params": {
"VOLUME_MULT": 1.5,
"SL_ATR_CAP": 3.0,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 316,
"wr": 50.3,
"pf": 0.73,
"sharpe": -2.2,
"pnl_pips": -1947.7,
"expectancy": -6.16
}
},
{
"rank": 16,
"params": {
"VOLUME_MULT": 1.5,
"SL_ATR_CAP": 3.0,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 273,
"wr": 50.9,
"pf": 0.71,
"sharpe": -2.4,
"pnl_pips": -1813.4,
"expectancy": -6.64
}
},
{
"rank": 17,
"params": {
"VOLUME_MULT": 2.0,
"SL_ATR_CAP": 3.0,
"ENTRY_END_HOUR": 10
},
"metrics": {
"trades": 216,
"wr": 50.5,
"pf": 0.71,
"sharpe": -2.34,
"pnl_pips": -1362.3,
"expectancy": -6.31
}
},
{
"rank": 18,
"params": {
"VOLUME_MULT": 2.0,
"SL_ATR_CAP": 3.0,
"ENTRY_END_HOUR": 11
},
"metrics": {
"trades": 240,
"wr": 49.2,
"pf": 0.7,
"sharpe": -2.52,
"pnl_pips": -1631.8,
"expectancy": -6.8
}
}
]
},
"S9_Filtered": {
"pair": "GBP_AUD",
"combos_tested": 18,
"best_params": {
"min_adx": 20,
"min_ema50_dist_pips": 40,
"skip_friday": true
},
"is_best_metrics": {
"trades": 60,
"wr": 60.0,
"pf": 1.25,
"sharpe": 1.56,
"pnl_pips": 346.2,
"expectancy": 5.77
},
"oos_validation": {
"trades": 16,
"wr": 62.5,
"pf": 1.42,
"sharpe": 2.44,
"pnl_pips": 163.0,
"expectancy": 10.19
},
"generalization_score": 1.315,
"verdict": "PASS",
"is_results_ranked": [
{
"rank": 1,
"params": {
"min_adx": 20,
"min_ema50_dist_pips": 40,
"skip_friday": true
},
"metrics": {
"trades": 60,
"wr": 60.0,
"pf": 1.25,
"sharpe": 1.56,
"pnl_pips": 346.2,
"expectancy": 5.77
}
},
{
"rank": 2,
"params": {
"min_adx": 30,
"min_ema50_dist_pips": 40,
"skip_friday": true
},
"metrics": {
"trades": 37,
"wr": 62.2,
"pf": 1.12,
"sharpe": 0.78,
"pnl_pips": 106.6,
"expectancy": 2.88
}
},
{
"rank": 3,
"params": {
"min_adx": 25,
"min_ema50_dist_pips": 40,
"skip_friday": true
},
"metrics": {
"trades": 54,
"wr": 57.4,
"pf": 1.1,
"sharpe": 0.66,
"pnl_pips": 131.8,
"expectancy": 2.44
}
},
{
"rank": 4,
"params": {
"min_adx": 20,
"min_ema50_dist_pips": 40,
"skip_friday": false
},
"metrics": {
"trades": 74,
"wr": 59.5,
"pf": 1.09,
"sharpe": 0.6,
"pnl_pips": 171.6,
"expectancy": 2.32
}
},
{
"rank": 5,
"params": {
"min_adx": 20,
"min_ema50_dist_pips": 50,
"skip_friday": true
},
"metrics": {
"trades": 50,
"wr": 56.0,
"pf": 1.09,
"sharpe": 0.61,
"pnl_pips": 119.1,
"expectancy": 2.38
}
},
{
"rank": 6,
"params": {
"min_adx": 25,
"min_ema50_dist_pips": 30,
"skip_friday": true
},
"metrics": {
"trades": 64,
"wr": 56.2,
"pf": 1.07,
"sharpe": 0.5,
"pnl_pips": 118.3,
"expectancy": 1.85
}
},
{
"rank": 7,
"params": {
"min_adx": 20,
"min_ema50_dist_pips": 30,
"skip_friday": true
},
"metrics": {
"trades": 73,
"wr": 56.2,
"pf": 1.06,
"sharpe": 0.44,
"pnl_pips": 117.7,
"expectancy": 1.61
}
},
{
"rank": 8,
"params": {
"min_adx": 30,
"min_ema50_dist_pips": 40,
"skip_friday": false
},
"metrics": {
"trades": 42,
"wr": 61.9,
"pf": 1.03,
"sharpe": 0.22,
"pnl_pips": 36.8,
"expectancy": 0.88
}
},
{
"rank": 9,
"params": {
"min_adx": 20,
"min_ema50_dist_pips": 50,
"skip_friday": false
},
"metrics": {
"trades": 61,
"wr": 55.7,
"pf": 1.0,
"sharpe": -0.0,
"pnl_pips": -0.7,
"expectancy": -0.01
}
},
{
"rank": 10,
"params": {
"min_adx": 30,
"min_ema50_dist_pips": 30,
"skip_friday": true
},
"metrics": {
"trades": 46,
"wr": 58.7,
"pf": 0.99,
"sharpe": -0.09,
"pnl_pips": -15.2,
"expectancy": -0.33
}
},
{
"rank": 11,
"params": {
"min_adx": 25,
"min_ema50_dist_pips": 40,
"skip_friday": false
},
"metrics": {
"trades": 65,
"wr": 56.9,
"pf": 0.98,
"sharpe": -0.16,
"pnl_pips": -40.5,
"expectancy": -0.62
}
},
{
"rank": 12,
"params": {
"min_adx": 30,
"min_ema50_dist_pips": 50,
"skip_friday": true
},
"metrics": {
"trades": 31,
"wr": 58.1,
"pf": 0.98,
"sharpe": -0.15,
"pnl_pips": -18.0,
"expectancy": -0.58
}
},
{
"rank": 13,
"params": {
"min_adx": 25,
"min_ema50_dist_pips": 50,
"skip_friday": true
},
"metrics": {
"trades": 46,
"wr": 54.3,
"pf": 0.97,
"sharpe": -0.2,
"pnl_pips": -35.3,
"expectancy": -0.77
}
},
{
"rank": 14,
"params": {
"min_adx": 30,
"min_ema50_dist_pips": 30,
"skip_friday": false
},
"metrics": {
"trades": 51,
"wr": 58.8,
"pf": 0.94,
"sharpe": -0.44,
"pnl_pips": -85.0,
"expectancy": -1.67
}
},
{
"rank": 15,
"params": {
"min_adx": 30,
"min_ema50_dist_pips": 50,
"skip_friday": false
},
"metrics": {
"trades": 36,
"wr": 58.3,
"pf": 0.92,
"sharpe": -0.59,
"pnl_pips": -87.8,
"expectancy": -2.44
}
},
{
"rank": 16,
"params": {
"min_adx": 20,
"min_ema50_dist_pips": 30,
"skip_friday": false
},
"metrics": {
"trades": 90,
"wr": 54.4,
"pf": 0.91,
"sharpe": -0.67,
"pnl_pips": -230.9,
"expectancy": -2.57
}
},
{
"rank": 17,
"params": {
"min_adx": 25,
"min_ema50_dist_pips": 30,
"skip_friday": false
},
"metrics": {
"trades": 78,
"wr": 53.8,
"pf": 0.9,
"sharpe": -0.76,
"pnl_pips": -227.9,
"expectancy": -2.92
}
},
{
"rank": 18,
"params": {
"min_adx": 25,
"min_ema50_dist_pips": 50,
"skip_friday": false
},
"metrics": {
"trades": 55,
"wr": 52.7,
"pf": 0.85,
"sharpe": -1.16,
"pnl_pips": -257.0,
"expectancy": -4.67
}
}
]
},
"S4F": {
"pair": "EUR_AUD",
"combos_tested": 18,
"best_params": {
"SL_ATR_MULT": 2.0,
"TP_ATR_MULT": 2.5,
"COMPRESSION_ATR_MULT": 1.0
},
"is_best_metrics": {
"trades": 75,
"wr": 58.7,
"pf": 1.54,
"sharpe": 3.28,
"pnl_pips": 478.1,
"expectancy": 6.37
},
"oos_validation": {
"trades": 20,
"wr": 30.0,
"pf": 0.52,
"sharpe": -4.98,
"pnl_pips": -221.6,
"expectancy": -11.08
},
"generalization_score": 0.283,
"verdict": "FAIL",
"is_results_ranked": [
{
"rank": 1,
"params": {
"SL_ATR_MULT": 2.0,
"TP_ATR_MULT": 2.5,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 75,
"wr": 58.7,
"pf": 1.54,
"sharpe": 3.28,
"pnl_pips": 478.1,
"expectancy": 6.37
}
},
{
"rank": 2,
"params": {
"SL_ATR_MULT": 2.0,
"TP_ATR_MULT": 2.5,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 74,
"wr": 58.1,
"pf": 1.5,
"sharpe": 3.07,
"pnl_pips": 442.1,
"expectancy": 5.97
}
},
{
"rank": 3,
"params": {
"SL_ATR_MULT": 2.0,
"TP_ATR_MULT": 3.0,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 75,
"wr": 50.7,
"pf": 1.43,
"sharpe": 2.63,
"pnl_pips": 427.8,
"expectancy": 5.7
}
},
{
"rank": 4,
"params": {
"SL_ATR_MULT": 1.5,
"TP_ATR_MULT": 2.5,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 78,
"wr": 50.0,
"pf": 1.41,
"sharpe": 2.56,
"pnl_pips": 361.1,
"expectancy": 4.63
}
},
{
"rank": 5,
"params": {
"SL_ATR_MULT": 1.5,
"TP_ATR_MULT": 3.0,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 78,
"wr": 43.6,
"pf": 1.41,
"sharpe": 2.48,
"pnl_pips": 389.8,
"expectancy": 5.0
}
},
{
"rank": 6,
"params": {
"SL_ATR_MULT": 2.0,
"TP_ATR_MULT": 3.0,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 74,
"wr": 50.0,
"pf": 1.38,
"sharpe": 2.4,
"pnl_pips": 384.1,
"expectancy": 5.19
}
},
{
"rank": 7,
"params": {
"SL_ATR_MULT": 1.5,
"TP_ATR_MULT": 2.5,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 77,
"wr": 49.4,
"pf": 1.36,
"sharpe": 2.34,
"pnl_pips": 325.1,
"expectancy": 4.22
}
},
{
"rank": 8,
"params": {
"SL_ATR_MULT": 1.5,
"TP_ATR_MULT": 3.0,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 77,
"wr": 42.9,
"pf": 1.36,
"sharpe": 2.24,
"pnl_pips": 346.1,
"expectancy": 4.5
}
},
{
"rank": 9,
"params": {
"SL_ATR_MULT": 2.5,
"TP_ATR_MULT": 2.5,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 75,
"wr": 58.7,
"pf": 1.33,
"sharpe": 2.16,
"pnl_pips": 341.1,
"expectancy": 4.55
}
},
{
"rank": 10,
"params": {
"SL_ATR_MULT": 2.5,
"TP_ATR_MULT": 2.5,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 74,
"wr": 58.1,
"pf": 1.3,
"sharpe": 1.96,
"pnl_pips": 305.0,
"expectancy": 4.12
}
},
{
"rank": 11,
"params": {
"SL_ATR_MULT": 1.5,
"TP_ATR_MULT": 4.0,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 75,
"wr": 36.0,
"pf": 1.25,
"sharpe": 1.54,
"pnl_pips": 256.0,
"expectancy": 3.41
}
},
{
"rank": 12,
"params": {
"SL_ATR_MULT": 2.5,
"TP_ATR_MULT": 3.0,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 75,
"wr": 50.7,
"pf": 1.23,
"sharpe": 1.52,
"pnl_pips": 264.9,
"expectancy": 3.53
}
},
{
"rank": 13,
"params": {
"SL_ATR_MULT": 1.5,
"TP_ATR_MULT": 4.0,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 74,
"wr": 35.1,
"pf": 1.19,
"sharpe": 1.22,
"pnl_pips": 196.9,
"expectancy": 2.66
}
},
{
"rank": 14,
"params": {
"SL_ATR_MULT": 2.5,
"TP_ATR_MULT": 3.0,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 74,
"wr": 50.0,
"pf": 1.19,
"sharpe": 1.28,
"pnl_pips": 221.2,
"expectancy": 2.99
}
},
{
"rank": 15,
"params": {
"SL_ATR_MULT": 2.0,
"TP_ATR_MULT": 4.0,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 71,
"wr": 42.3,
"pf": 1.16,
"sharpe": 1.08,
"pnl_pips": 179.3,
"expectancy": 2.53
}
},
{
"rank": 16,
"params": {
"SL_ATR_MULT": 2.0,
"TP_ATR_MULT": 4.0,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 70,
"wr": 41.4,
"pf": 1.11,
"sharpe": 0.74,
"pnl_pips": 120.2,
"expectancy": 1.72
}
},
{
"rank": 17,
"params": {
"SL_ATR_MULT": 2.5,
"TP_ATR_MULT": 4.0,
"COMPRESSION_ATR_MULT": 1.0
},
"metrics": {
"trades": 71,
"wr": 42.3,
"pf": 1.0,
"sharpe": -0.01,
"pnl_pips": -2.5,
"expectancy": -0.03
}
},
{
"rank": 18,
"params": {
"SL_ATR_MULT": 2.5,
"TP_ATR_MULT": 4.0,
"COMPRESSION_ATR_MULT": 0.8
},
"metrics": {
"trades": 70,
"wr": 41.4,
"pf": 0.95,
"sharpe": -0.36,
"pnl_pips": -61.5,
"expectancy": -0.88
}
}
]
},
"S3": {
"pair": "GBP_JPY",
"combos_tested": 18,
"best_params": {
"SL_ATR_MULT": 0.5,
"TP1_ATR_MULT": 2.0,
"KEY_LEVEL_TOLERANCE": 0.5
},
"is_best_metrics": {
"trades": 120,
"wr": 50.0,
"pf": 1.32,
"sharpe": 1.82,
"pnl_pips": 789.5,
"expectancy": 6.58
},
"oos_validation": {
"trades": 36,
"wr": 38.9,
"pf": 0.75,
"sharpe": -2.16,
"pnl_pips": -281.5,
"expectancy": -7.82
},
"generalization_score": 0.449,
"verdict": "FAIL",
"is_results_ranked": [
{
"rank": 1,
"params": {
"SL_ATR_MULT": 0.5,
"TP1_ATR_MULT": 2.0,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 120,
"wr": 50.0,
"pf": 1.32,
"sharpe": 1.82,
"pnl_pips": 789.5,
"expectancy": 6.58
}
},
{
"rank": 2,
"params": {
"SL_ATR_MULT": 0.75,
"TP1_ATR_MULT": 1.5,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 112,
"wr": 57.1,
"pf": 1.28,
"sharpe": 1.6,
"pnl_pips": 602.8,
"expectancy": 5.38
}
},
{
"rank": 3,
"params": {
"SL_ATR_MULT": 0.5,
"TP1_ATR_MULT": 1.5,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 116,
"wr": 53.4,
"pf": 1.27,
"sharpe": 1.55,
"pnl_pips": 567.7,
"expectancy": 4.89
}
},
{
"rank": 4,
"params": {
"SL_ATR_MULT": 0.5,
"TP1_ATR_MULT": 2.0,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 115,
"wr": 48.7,
"pf": 1.24,
"sharpe": 1.42,
"pnl_pips": 597.5,
"expectancy": 5.2
}
},
{
"rank": 5,
"params": {
"SL_ATR_MULT": 0.75,
"TP1_ATR_MULT": 2.0,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 118,
"wr": 52.5,
"pf": 1.23,
"sharpe": 1.37,
"pnl_pips": 624.0,
"expectancy": 5.29
}
},
{
"rank": 6,
"params": {
"SL_ATR_MULT": 0.3,
"TP1_ATR_MULT": 2.0,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 124,
"wr": 43.5,
"pf": 1.21,
"sharpe": 1.23,
"pnl_pips": 519.3,
"expectancy": 4.19
}
},
{
"rank": 7,
"params": {
"SL_ATR_MULT": 0.3,
"TP1_ATR_MULT": 2.0,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 119,
"wr": 44.5,
"pf": 1.2,
"sharpe": 1.18,
"pnl_pips": 479.2,
"expectancy": 4.03
}
},
{
"rank": 8,
"params": {
"SL_ATR_MULT": 0.75,
"TP1_ATR_MULT": 2.0,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 114,
"wr": 50.0,
"pf": 1.15,
"sharpe": 0.95,
"pnl_pips": 413.2,
"expectancy": 3.62
}
},
{
"rank": 9,
"params": {
"SL_ATR_MULT": 0.3,
"TP1_ATR_MULT": 1.5,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 121,
"wr": 47.1,
"pf": 1.11,
"sharpe": 0.64,
"pnl_pips": 236.1,
"expectancy": 1.95
}
},
{
"rank": 10,
"params": {
"SL_ATR_MULT": 0.3,
"TP1_ATR_MULT": 1.5,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 120,
"wr": 46.7,
"pf": 1.08,
"sharpe": 0.51,
"pnl_pips": 189.4,
"expectancy": 1.58
}
},
{
"rank": 11,
"params": {
"SL_ATR_MULT": 0.5,
"TP1_ATR_MULT": 1.5,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 112,
"wr": 49.1,
"pf": 1.06,
"sharpe": 0.39,
"pnl_pips": 146.2,
"expectancy": 1.31
}
},
{
"rank": 12,
"params": {
"SL_ATR_MULT": 0.5,
"TP1_ATR_MULT": 1.0,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 82,
"wr": 53.7,
"pf": 1.05,
"sharpe": 0.31,
"pnl_pips": 68.5,
"expectancy": 0.84
}
},
{
"rank": 13,
"params": {
"SL_ATR_MULT": 0.75,
"TP1_ATR_MULT": 1.5,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 108,
"wr": 50.0,
"pf": 1.02,
"sharpe": 0.15,
"pnl_pips": 55.7,
"expectancy": 0.52
}
},
{
"rank": 14,
"params": {
"SL_ATR_MULT": 0.3,
"TP1_ATR_MULT": 1.0,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 97,
"wr": 50.5,
"pf": 0.96,
"sharpe": -0.25,
"pnl_pips": -63.1,
"expectancy": -0.65
}
},
{
"rank": 15,
"params": {
"SL_ATR_MULT": 0.5,
"TP1_ATR_MULT": 1.0,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 84,
"wr": 53.6,
"pf": 0.96,
"sharpe": -0.26,
"pnl_pips": -58.8,
"expectancy": -0.7
}
},
{
"rank": 16,
"params": {
"SL_ATR_MULT": 0.75,
"TP1_ATR_MULT": 1.0,
"KEY_LEVEL_TOLERANCE": 0.75
},
"metrics": {
"trades": 69,
"wr": 55.1,
"pf": 0.92,
"sharpe": -0.54,
"pnl_pips": -108.0,
"expectancy": -1.57
}
},
{
"rank": 17,
"params": {
"SL_ATR_MULT": 0.3,
"TP1_ATR_MULT": 1.0,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 101,
"wr": 48.5,
"pf": 0.89,
"sharpe": -0.78,
"pnl_pips": -189.3,
"expectancy": -1.87
}
},
{
"rank": 18,
"params": {
"SL_ATR_MULT": 0.75,
"TP1_ATR_MULT": 1.0,
"KEY_LEVEL_TOLERANCE": 0.5
},
"metrics": {
"trades": 69,
"wr": 53.6,
"pf": 0.82,
"sharpe": -1.29,
"pnl_pips": -259.8,
"expectancy": -3.77
}
}
]
}
}