mirror of
https://github.com/BrentNeale1/fx-quant.git
synced 2026-08-15 11:08:05 +00:00
Tested all 9 untested strategies across 22 pair combos. S8 Order Block on GBP_USD was the standout: OOS PF=2.14, WR=65.4%, Gen=1.850 PASS. Parameter sweep confirmed DISPLACEMENT_ATR=2.0, TP1_ATR_MULT=1.0, OB_RETEST_WINDOW=40 as best params (all top-5 PASS OOS validation). Portfolio now 4 strategies: S7_Tight, S9_Filtered, S3, S8_OB. OOS portfolio: 82 trades, PF=1.61, WR=64.6%, Sharpe=2.98, +672 pips. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
696 lines
13 KiB
JSON
696 lines
13 KiB
JSON
{
|
|
"S1_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 27,
|
|
"wr": 22.2,
|
|
"pf": 0.4,
|
|
"sharpe": -5.97,
|
|
"pnl_pips": -246.3,
|
|
"max_dd_pips": -283.4,
|
|
"expectancy": -9.12
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 7,
|
|
"wr": 42.9,
|
|
"pf": 0.97,
|
|
"sharpe": -0.24,
|
|
"pnl_pips": -3.6,
|
|
"max_dd_pips": -40.3,
|
|
"expectancy": -0.51
|
|
},
|
|
"generalization": {
|
|
"composite": 0.983,
|
|
"detail": {
|
|
"wr": 1.932,
|
|
"pf": 2.0,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "PASS"
|
|
}
|
|
},
|
|
"S1_GBP_USD": {
|
|
"pair": "GBP_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 24,
|
|
"wr": 45.8,
|
|
"pf": 0.93,
|
|
"sharpe": -0.51,
|
|
"pnl_pips": -15.2,
|
|
"max_dd_pips": -93.7,
|
|
"expectancy": -0.64
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 9,
|
|
"wr": 22.2,
|
|
"pf": 0.32,
|
|
"sharpe": -8.06,
|
|
"pnl_pips": -55.0,
|
|
"max_dd_pips": -60.8,
|
|
"expectancy": -6.11
|
|
},
|
|
"generalization": {
|
|
"composite": 0.207,
|
|
"detail": {
|
|
"wr": 0.485,
|
|
"pf": 0.344,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S1_EUR_USD": {
|
|
"pair": "EUR_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 22,
|
|
"wr": 36.4,
|
|
"pf": 1.0,
|
|
"sharpe": -0.02,
|
|
"pnl_pips": -0.5,
|
|
"max_dd_pips": -115.0,
|
|
"expectancy": -0.02
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 5,
|
|
"wr": 20.0,
|
|
"pf": 0.12,
|
|
"sharpe": -15.3,
|
|
"pnl_pips": -37.7,
|
|
"max_dd_pips": -31.7,
|
|
"expectancy": -7.54
|
|
},
|
|
"generalization": {
|
|
"composite": 0.167,
|
|
"detail": {
|
|
"wr": 0.549,
|
|
"pf": 0.12,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S2_EUR_USD": {
|
|
"pair": "EUR_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 310,
|
|
"wr": 25.8,
|
|
"pf": 0.77,
|
|
"sharpe": -1.64,
|
|
"pnl_pips": -533.2,
|
|
"max_dd_pips": -708.4,
|
|
"expectancy": -1.72
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 108,
|
|
"wr": 27.8,
|
|
"pf": 0.87,
|
|
"sharpe": -0.85,
|
|
"pnl_pips": -94.6,
|
|
"max_dd_pips": -294.3,
|
|
"expectancy": -0.88
|
|
},
|
|
"generalization": {
|
|
"composite": 0.552,
|
|
"detail": {
|
|
"wr": 1.078,
|
|
"pf": 1.13,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "WARN"
|
|
}
|
|
},
|
|
"S2_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 283,
|
|
"wr": 23.3,
|
|
"pf": 0.66,
|
|
"sharpe": -2.5,
|
|
"pnl_pips": -1235.0,
|
|
"max_dd_pips": -1314.1,
|
|
"expectancy": -4.36
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 96,
|
|
"wr": 21.9,
|
|
"pf": 0.62,
|
|
"sharpe": -3.04,
|
|
"pnl_pips": -505.6,
|
|
"max_dd_pips": -509.6,
|
|
"expectancy": -5.27
|
|
},
|
|
"generalization": {
|
|
"composite": 0.47,
|
|
"detail": {
|
|
"wr": 0.94,
|
|
"pf": 0.939,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S2_GBP_USD": {
|
|
"pair": "GBP_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 310,
|
|
"wr": 23.9,
|
|
"pf": 0.69,
|
|
"sharpe": -2.28,
|
|
"pnl_pips": -917.9,
|
|
"max_dd_pips": -1158.8,
|
|
"expectancy": -2.96
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 107,
|
|
"wr": 32.7,
|
|
"pf": 1.13,
|
|
"sharpe": 0.77,
|
|
"pnl_pips": 115.2,
|
|
"max_dd_pips": -318.7,
|
|
"expectancy": 1.08
|
|
},
|
|
"generalization": {
|
|
"composite": 0.751,
|
|
"detail": {
|
|
"wr": 1.368,
|
|
"pf": 1.638,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "WARN"
|
|
}
|
|
},
|
|
"S5_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 483,
|
|
"wr": 50.3,
|
|
"pf": 0.79,
|
|
"sharpe": -1.64,
|
|
"pnl_pips": -1281.4,
|
|
"max_dd_pips": -1608.6,
|
|
"expectancy": -2.65
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 158,
|
|
"wr": 41.8,
|
|
"pf": 0.66,
|
|
"sharpe": -3.12,
|
|
"pnl_pips": -893.3,
|
|
"max_dd_pips": -1033.6,
|
|
"expectancy": -5.65
|
|
},
|
|
"generalization": {
|
|
"composite": 0.417,
|
|
"detail": {
|
|
"wr": 0.831,
|
|
"pf": 0.835,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S5_EUR_USD": {
|
|
"pair": "EUR_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 499,
|
|
"wr": 51.9,
|
|
"pf": 0.77,
|
|
"sharpe": -1.84,
|
|
"pnl_pips": -794.8,
|
|
"max_dd_pips": -991.5,
|
|
"expectancy": -1.59
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 183,
|
|
"wr": 45.9,
|
|
"pf": 0.65,
|
|
"sharpe": -3.08,
|
|
"pnl_pips": -500.4,
|
|
"max_dd_pips": -692.8,
|
|
"expectancy": -2.73
|
|
},
|
|
"generalization": {
|
|
"composite": 0.432,
|
|
"detail": {
|
|
"wr": 0.884,
|
|
"pf": 0.844,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S6_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 19,
|
|
"wr": 21.1,
|
|
"pf": 0.22,
|
|
"sharpe": -10.66,
|
|
"pnl_pips": -465.5,
|
|
"max_dd_pips": -523.9,
|
|
"expectancy": -24.5
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 4,
|
|
"wr": 25.0,
|
|
"pf": 0.3,
|
|
"sharpe": -7.38,
|
|
"pnl_pips": -128.0,
|
|
"max_dd_pips": -71.7,
|
|
"expectancy": -32.0
|
|
},
|
|
"generalization": {
|
|
"composite": 0.637,
|
|
"detail": {
|
|
"wr": 1.185,
|
|
"pf": 1.364,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "WARN"
|
|
}
|
|
},
|
|
"S6_EUR_USD": {
|
|
"pair": "EUR_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 13,
|
|
"wr": 23.1,
|
|
"pf": 0.61,
|
|
"sharpe": -3.28,
|
|
"pnl_pips": -88.8,
|
|
"max_dd_pips": -136.2,
|
|
"expectancy": -6.83
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 3,
|
|
"wr": 66.7,
|
|
"pf": 3.4,
|
|
"sharpe": 7.73,
|
|
"pnl_pips": 63.2,
|
|
"max_dd_pips": -26.3,
|
|
"expectancy": 21.05
|
|
},
|
|
"generalization": {
|
|
"composite": 1.0,
|
|
"detail": {
|
|
"wr": 2.0,
|
|
"pf": 2.0,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "PASS"
|
|
}
|
|
},
|
|
"S6A_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 8,
|
|
"wr": 0.0,
|
|
"pf": 0.0,
|
|
"sharpe": -28.58,
|
|
"pnl_pips": -305.1,
|
|
"max_dd_pips": -299.2,
|
|
"expectancy": -38.13
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 0,
|
|
"wr": 0,
|
|
"pf": 0,
|
|
"sharpe": 0,
|
|
"pnl_pips": 0,
|
|
"max_dd_pips": 0,
|
|
"expectancy": 0
|
|
},
|
|
"generalization": {
|
|
"composite": 0,
|
|
"detail": {},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S6A_EUR_USD": {
|
|
"pair": "EUR_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 1,
|
|
"wr": 0.0,
|
|
"pf": 0.0,
|
|
"sharpe": 0,
|
|
"pnl_pips": -31.9,
|
|
"max_dd_pips": 0.0,
|
|
"expectancy": -31.9
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 0,
|
|
"wr": 0,
|
|
"pf": 0,
|
|
"sharpe": 0,
|
|
"pnl_pips": 0,
|
|
"max_dd_pips": 0,
|
|
"expectancy": 0
|
|
},
|
|
"generalization": {
|
|
"composite": 0,
|
|
"detail": {},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S6B_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 15,
|
|
"wr": 20.0,
|
|
"pf": 0.14,
|
|
"sharpe": -14.21,
|
|
"pnl_pips": -389.5,
|
|
"max_dd_pips": -408.3,
|
|
"expectancy": -25.97
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 2,
|
|
"wr": 50.0,
|
|
"pf": 0.57,
|
|
"sharpe": -3.06,
|
|
"pnl_pips": -47.3,
|
|
"max_dd_pips": 0.0,
|
|
"expectancy": -23.67
|
|
},
|
|
"generalization": {
|
|
"composite": 1.0,
|
|
"detail": {
|
|
"wr": 2.0,
|
|
"pf": 2.0,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "PASS"
|
|
}
|
|
},
|
|
"S8_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 156,
|
|
"wr": 34.0,
|
|
"pf": 0.56,
|
|
"sharpe": -3.53,
|
|
"pnl_pips": -864.5,
|
|
"max_dd_pips": -985.3,
|
|
"expectancy": -5.54
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 47,
|
|
"wr": 40.4,
|
|
"pf": 0.77,
|
|
"sharpe": -1.89,
|
|
"pnl_pips": -150.4,
|
|
"max_dd_pips": -277.2,
|
|
"expectancy": -3.2
|
|
},
|
|
"generalization": {
|
|
"composite": 0.641,
|
|
"detail": {
|
|
"wr": 1.188,
|
|
"pf": 1.375,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "WARN"
|
|
}
|
|
},
|
|
"S8_EUR_USD": {
|
|
"pair": "EUR_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 251,
|
|
"wr": 43.8,
|
|
"pf": 0.86,
|
|
"sharpe": -0.97,
|
|
"pnl_pips": -203.3,
|
|
"max_dd_pips": -261.7,
|
|
"expectancy": -0.81
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 71,
|
|
"wr": 33.8,
|
|
"pf": 0.57,
|
|
"sharpe": -3.8,
|
|
"pnl_pips": -217.3,
|
|
"max_dd_pips": -281.1,
|
|
"expectancy": -3.06
|
|
},
|
|
"generalization": {
|
|
"composite": 0.359,
|
|
"detail": {
|
|
"wr": 0.772,
|
|
"pf": 0.663,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S8_GBP_USD": {
|
|
"pair": "GBP_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 273,
|
|
"wr": 39.2,
|
|
"pf": 0.8,
|
|
"sharpe": -1.5,
|
|
"pnl_pips": -459.6,
|
|
"max_dd_pips": -509.6,
|
|
"expectancy": -1.68
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 57,
|
|
"wr": 59.6,
|
|
"pf": 1.45,
|
|
"sharpe": 2.44,
|
|
"pnl_pips": 157.9,
|
|
"max_dd_pips": -71.4,
|
|
"expectancy": 2.77
|
|
},
|
|
"generalization": {
|
|
"composite": 0.833,
|
|
"detail": {
|
|
"wr": 1.52,
|
|
"pf": 1.812,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "PASS"
|
|
}
|
|
},
|
|
"S10_EUR_USD": {
|
|
"pair": "EUR_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 13,
|
|
"wr": 53.8,
|
|
"pf": 1.67,
|
|
"sharpe": 3.17,
|
|
"pnl_pips": 20.1,
|
|
"max_dd_pips": -13.1,
|
|
"expectancy": 1.55
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 6,
|
|
"wr": 33.3,
|
|
"pf": 1.19,
|
|
"sharpe": 0.97,
|
|
"pnl_pips": 1.5,
|
|
"max_dd_pips": -7.9,
|
|
"expectancy": 0.25
|
|
},
|
|
"generalization": {
|
|
"composite": 0.45,
|
|
"detail": {
|
|
"wr": 0.619,
|
|
"pf": 0.713,
|
|
"expectancy": 0.161,
|
|
"sharpe": 0.306
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S10_USD_JPY": {
|
|
"pair": "USD_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 20,
|
|
"wr": 50.0,
|
|
"pf": 2.08,
|
|
"sharpe": 4.18,
|
|
"pnl_pips": 51.5,
|
|
"max_dd_pips": -19.3,
|
|
"expectancy": 2.58
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 9,
|
|
"wr": 33.3,
|
|
"pf": 0.76,
|
|
"sharpe": -1.48,
|
|
"pnl_pips": -10.1,
|
|
"max_dd_pips": -9.8,
|
|
"expectancy": -1.13
|
|
},
|
|
"generalization": {
|
|
"composite": 0.258,
|
|
"detail": {
|
|
"wr": 0.666,
|
|
"pf": 0.365,
|
|
"expectancy": 0.0,
|
|
"sharpe": 0.0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S10_EUR_GBP": {
|
|
"pair": "EUR_GBP",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 15,
|
|
"wr": 33.3,
|
|
"pf": 0.98,
|
|
"sharpe": -0.14,
|
|
"pnl_pips": -0.8,
|
|
"max_dd_pips": -29.2,
|
|
"expectancy": -0.06
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 7,
|
|
"wr": 42.9,
|
|
"pf": 1.28,
|
|
"sharpe": 1.61,
|
|
"pnl_pips": 3.5,
|
|
"max_dd_pips": -9.4,
|
|
"expectancy": 0.49
|
|
},
|
|
"generalization": {
|
|
"composite": 0.649,
|
|
"detail": {
|
|
"wr": 1.288,
|
|
"pf": 1.306,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "WARN"
|
|
}
|
|
},
|
|
"S11_USD_JPY": {
|
|
"pair": "USD_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 6,
|
|
"wr": 66.7,
|
|
"pf": 0.94,
|
|
"sharpe": -0.39,
|
|
"pnl_pips": -2.2,
|
|
"max_dd_pips": -22.0,
|
|
"expectancy": -0.37
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 7,
|
|
"wr": 71.4,
|
|
"pf": 1.61,
|
|
"sharpe": 3.15,
|
|
"pnl_pips": 21.4,
|
|
"max_dd_pips": -21.7,
|
|
"expectancy": 3.06
|
|
},
|
|
"generalization": {
|
|
"composite": 0.696,
|
|
"detail": {
|
|
"wr": 1.07,
|
|
"pf": 1.713,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "WARN"
|
|
}
|
|
},
|
|
"S11_GBP_USD": {
|
|
"pair": "GBP_USD",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 5,
|
|
"wr": 40.0,
|
|
"pf": 0.56,
|
|
"sharpe": -3.87,
|
|
"pnl_pips": -18.8,
|
|
"max_dd_pips": -29.9,
|
|
"expectancy": -3.76
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 4,
|
|
"wr": 50.0,
|
|
"pf": 0.37,
|
|
"sharpe": -6.0,
|
|
"pnl_pips": -18.3,
|
|
"max_dd_pips": -29.2,
|
|
"expectancy": -4.57
|
|
},
|
|
"generalization": {
|
|
"composite": 0.478,
|
|
"detail": {
|
|
"wr": 1.25,
|
|
"pf": 0.661,
|
|
"expectancy": 0,
|
|
"sharpe": 0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
},
|
|
"S11_GBP_JPY": {
|
|
"pair": "GBP_JPY",
|
|
"timeframe": "M15",
|
|
"is_metrics": {
|
|
"trades": 13,
|
|
"wr": 61.5,
|
|
"pf": 1.61,
|
|
"sharpe": 3.13,
|
|
"pnl_pips": 45.9,
|
|
"max_dd_pips": -17.3,
|
|
"expectancy": 3.53
|
|
},
|
|
"oos_metrics": {
|
|
"trades": 3,
|
|
"wr": 0.0,
|
|
"pf": 0.0,
|
|
"sharpe": -73.56,
|
|
"pnl_pips": -61.5,
|
|
"max_dd_pips": -36.0,
|
|
"expectancy": -20.51
|
|
},
|
|
"generalization": {
|
|
"composite": 0.0,
|
|
"detail": {
|
|
"wr": 0.0,
|
|
"pf": 0.0,
|
|
"expectancy": 0.0,
|
|
"sharpe": 0.0
|
|
},
|
|
"verdict": "FAIL"
|
|
}
|
|
}
|
|
} |