From 23d8288fa335e18a8dca37eadaca4b675d86cf55 Mon Sep 17 00:00:00 2001 From: Brent Neale Date: Fri, 20 Feb 2026 23:02:12 +1000 Subject: [PATCH] Update param sweep results with S8_OB grid (27 combos) S8_OB PASS: best params DISP_ATR=2.5, TP1=2.0, Window=40 (IS PF=1.39, OOS PF=1.59, Gen=1.382). S9_Filtered also PASS. Co-Authored-By: Claude Opus 4.6 --- results/phase2/param_sweep.json | 633 ++++++++++++++++---------------- 1 file changed, 326 insertions(+), 307 deletions(-) diff --git a/results/phase2/param_sweep.json b/results/phase2/param_sweep.json index 35f1dbd..5670a56 100644 --- a/results/phase2/param_sweep.json +++ b/results/phase2/param_sweep.json @@ -918,444 +918,463 @@ } ] }, - "S10_EUR_USD": { - "pair": "EUR_USD", - "combos_tested": 18, + "S8_OB": { + "pair": "GBP_USD", + "combos_tested": 27, "best_params": { - "VWAP_SD_ENTRY": 2.5, - "MAX_ADX": 30, - "MAX_BARS": 6 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 40 }, "is_best_metrics": { - "trades": 11, - "wr": 63.6, - "pf": 2.87, - "sharpe": 5.84, - "pnl_pips": 29.8, - "expectancy": 2.71 + "trades": 67, + "wr": 37.3, + "pf": 1.39, + "sharpe": 2.05, + "pnl_pips": 223.4, + "expectancy": 3.33 }, "oos_validation": { - "trades": 5, - "wr": 40.0, - "pf": 3.0, - "sharpe": 5.28, - "pnl_pips": 6.3, - "expectancy": 1.25 + "trades": 17, + "wr": 52.9, + "pf": 1.59, + "sharpe": 2.96, + "pnl_pips": 89.6, + "expectancy": 5.27 }, - "generalization_score": 0.712, - "verdict": "WARN", + "generalization_score": 1.382, + "verdict": "PASS", "is_results_ranked": [ { "rank": 1, "params": { - "VWAP_SD_ENTRY": 2.5, - "MAX_ADX": 30, - "MAX_BARS": 6 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 40 }, "metrics": { - "trades": 11, - "wr": 63.6, - "pf": 2.87, - "sharpe": 5.84, - "pnl_pips": 29.8, - "expectancy": 2.71 + "trades": 67, + "wr": 37.3, + "pf": 1.39, + "sharpe": 2.05, + "pnl_pips": 223.4, + "expectancy": 3.33 } }, { "rank": 2, "params": { - "VWAP_SD_ENTRY": 2.5, - "MAX_ADX": 30, - "MAX_BARS": 8 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 30 }, "metrics": { - "trades": 11, - "wr": 63.6, - "pf": 2.75, - "sharpe": 5.98, - "pnl_pips": 31.8, - "expectancy": 2.89 + "trades": 59, + "wr": 37.3, + "pf": 1.33, + "sharpe": 1.78, + "pnl_pips": 168.0, + "expectancy": 2.85 } }, { "rank": 3, "params": { - "VWAP_SD_ENTRY": 1.5, - "MAX_ADX": 30, - "MAX_BARS": 6 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 40 }, "metrics": { - "trades": 13, - "wr": 61.5, - "pf": 2.43, - "sharpe": 5.16, - "pnl_pips": 30.0, - "expectancy": 2.31 + "trades": 64, + "wr": 42.2, + "pf": 1.3, + "sharpe": 1.61, + "pnl_pips": 143.9, + "expectancy": 2.25 } }, { "rank": 4, "params": { - "VWAP_SD_ENTRY": 2.0, - "MAX_ADX": 30, - "MAX_BARS": 6 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 50 }, "metrics": { - "trades": 13, - "wr": 61.5, - "pf": 2.43, - "sharpe": 5.16, - "pnl_pips": 30.0, - "expectancy": 2.31 + "trades": 69, + "wr": 36.2, + "pf": 1.26, + "sharpe": 1.44, + "pnl_pips": 163.8, + "expectancy": 2.37 } }, { "rank": 5, "params": { - "VWAP_SD_ENTRY": 1.5, - "MAX_ADX": 30, - "MAX_BARS": 8 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 30 }, "metrics": { - "trades": 13, - "wr": 53.8, - "pf": 1.67, - "sharpe": 3.17, - "pnl_pips": 20.1, - "expectancy": 1.55 + "trades": 57, + "wr": 42.1, + "pf": 1.25, + "sharpe": 1.36, + "pnl_pips": 105.1, + "expectancy": 1.84 } }, { "rank": 6, "params": { - "VWAP_SD_ENTRY": 2.0, - "MAX_ADX": 30, - "MAX_BARS": 8 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 50 }, "metrics": { - "trades": 13, - "wr": 53.8, - "pf": 1.67, - "sharpe": 3.17, - "pnl_pips": 20.1, - "expectancy": 1.55 - } - } - ] - }, - "S11_GBP_JPY": { - "pair": "GBP_JPY", - "combos_tested": 18, - "best_params": { - "MIN_ADX": 35, - "EMA_PROXIMITY_ATR": 0.3, - "TP_RR_MULT": 1.8 - }, - "is_best_metrics": { - "trades": 9, - "wr": 77.8, - "pf": 5.67, - "sharpe": 10.25, - "pnl_pips": 89.0, - "expectancy": 9.89 - }, - "oos_validation": { - "trades": 2, - "wr": 0.0, - "pf": 0.0, - "sharpe": -58.86, - "pnl_pips": -43.0, - "expectancy": -21.48 - }, - "generalization_score": 0.0, - "verdict": "FAIL", - "is_results_ranked": [ - { - "rank": 1, - "params": { - "MIN_ADX": 35, - "EMA_PROXIMITY_ATR": 0.3, - "TP_RR_MULT": 1.8 - }, - "metrics": { - "trades": 9, - "wr": 77.8, - "pf": 5.67, - "sharpe": 10.25, - "pnl_pips": 89.0, - "expectancy": 9.89 - } - }, - { - "rank": 2, - "params": { - "MIN_ADX": 35, - "EMA_PROXIMITY_ATR": 0.3, - "TP_RR_MULT": 1.5 - }, - "metrics": { - "trades": 9, - "wr": 77.8, - "pf": 5.35, - "sharpe": 10.65, - "pnl_pips": 83.0, - "expectancy": 9.22 - } - }, - { - "rank": 3, - "params": { - "MIN_ADX": 35, - "EMA_PROXIMITY_ATR": 0.5, - "TP_RR_MULT": 1.8 - }, - "metrics": { - "trades": 11, - "wr": 63.6, - "pf": 4.14, - "sharpe": 8.03, - "pnl_pips": 82.0, - "expectancy": 7.45 - } - }, - { - "rank": 4, - "params": { - "MIN_ADX": 35, - "EMA_PROXIMITY_ATR": 0.5, - "TP_RR_MULT": 1.5 - }, - "metrics": { - "trades": 11, - "wr": 63.6, - "pf": 3.91, - "sharpe": 8.22, - "pnl_pips": 75.9, - "expectancy": 6.9 - } - }, - { - "rank": 5, - "params": { - "MIN_ADX": 35, - "EMA_PROXIMITY_ATR": 0.2, - "TP_RR_MULT": 1.5 - }, - "metrics": { - "trades": 5, - "wr": 80.0, - "pf": 2.83, - "sharpe": 6.74, - "pnl_pips": 29.8, - "expectancy": 5.95 - } - }, - { - "rank": 6, - "params": { - "MIN_ADX": 35, - "EMA_PROXIMITY_ATR": 0.2, - "TP_RR_MULT": 1.8 - }, - "metrics": { - "trades": 5, - "wr": 80.0, - "pf": 2.79, - "sharpe": 6.11, - "pnl_pips": 29.1, - "expectancy": 5.81 + "trades": 66, + "wr": 42.4, + "pf": 1.22, + "sharpe": 1.23, + "pnl_pips": 114.6, + "expectancy": 1.74 } }, { "rank": 7, "params": { - "MIN_ADX": 30, - "EMA_PROXIMITY_ATR": 0.5, - "TP_RR_MULT": 1.8 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 40 }, "metrics": { - "trades": 16, - "wr": 56.2, - "pf": 1.68, - "sharpe": 3.33, - "pnl_pips": 55.8, - "expectancy": 3.49 + "trades": 56, + "wr": 46.4, + "pf": 1.21, + "sharpe": 1.17, + "pnl_pips": 69.1, + "expectancy": 1.23 } }, { "rank": 8, "params": { - "MIN_ADX": 30, - "EMA_PROXIMITY_ATR": 0.3, - "TP_RR_MULT": 1.8 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 50 }, "metrics": { - "trades": 13, - "wr": 61.5, - "pf": 1.61, - "sharpe": 3.13, - "pnl_pips": 45.9, - "expectancy": 3.53 + "trades": 58, + "wr": 46.6, + "pf": 1.1, + "sharpe": 0.58, + "pnl_pips": 36.5, + "expectancy": 0.63 } }, { "rank": 9, "params": { - "MIN_ADX": 30, - "EMA_PROXIMITY_ATR": 0.5, - "TP_RR_MULT": 1.5 + "DISPLACEMENT_ATR": 2.5, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 30 }, "metrics": { - "trades": 16, - "wr": 56.2, - "pf": 1.56, - "sharpe": 2.94, - "pnl_pips": 45.9, - "expectancy": 2.87 + "trades": 50, + "wr": 44.0, + "pf": 1.06, + "sharpe": 0.34, + "pnl_pips": 17.4, + "expectancy": 0.35 } }, { "rank": 10, "params": { - "MIN_ADX": 30, - "EMA_PROXIMITY_ATR": 0.3, - "TP_RR_MULT": 1.5 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 40 }, "metrics": { - "trades": 13, - "wr": 61.5, - "pf": 1.51, - "sharpe": 2.77, - "pnl_pips": 38.1, - "expectancy": 2.93 + "trades": 107, + "wr": 46.7, + "pf": 1.02, + "sharpe": 0.15, + "pnl_pips": 16.4, + "expectancy": 0.15 } }, { "rank": 11, "params": { - "MIN_ADX": 25, - "EMA_PROXIMITY_ATR": 0.3, - "TP_RR_MULT": 1.8 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 40 }, "metrics": { - "trades": 18, - "wr": 55.6, - "pf": 1.39, - "sharpe": 2.15, - "pnl_pips": 41.4, - "expectancy": 2.3 + "trades": 129, + "wr": 41.9, + "pf": 0.93, + "sharpe": -0.44, + "pnl_pips": -74.3, + "expectancy": -0.58 } }, { "rank": 12, "params": { - "MIN_ADX": 25, - "EMA_PROXIMITY_ATR": 0.5, - "TP_RR_MULT": 1.8 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 40 }, "metrics": { - "trades": 25, - "wr": 52.0, - "pf": 1.37, - "sharpe": 2.02, - "pnl_pips": 52.6, - "expectancy": 2.11 + "trades": 132, + "wr": 35.6, + "pf": 0.92, + "sharpe": -0.54, + "pnl_pips": -113.7, + "expectancy": -0.86 } }, { "rank": 13, "params": { - "MIN_ADX": 25, - "EMA_PROXIMITY_ATR": 0.3, - "TP_RR_MULT": 1.5 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 50 }, "metrics": { - "trades": 18, - "wr": 55.6, - "pf": 1.3, - "sharpe": 1.72, - "pnl_pips": 31.1, - "expectancy": 1.73 + "trades": 112, + "wr": 45.5, + "pf": 0.9, + "sharpe": -0.64, + "pnl_pips": -76.3, + "expectancy": -0.68 } }, { "rank": 14, "params": { - "MIN_ADX": 25, - "EMA_PROXIMITY_ATR": 0.5, - "TP_RR_MULT": 1.5 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 30 }, "metrics": { - "trades": 25, - "wr": 52.0, - "pf": 1.26, - "sharpe": 1.53, - "pnl_pips": 37.4, - "expectancy": 1.5 + "trades": 116, + "wr": 40.5, + "pf": 0.88, + "sharpe": -0.79, + "pnl_pips": -117.3, + "expectancy": -1.01 } }, { "rank": 15, "params": { - "MIN_ADX": 25, - "EMA_PROXIMITY_ATR": 0.2, - "TP_RR_MULT": 1.8 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 50 }, "metrics": { - "trades": 13, - "wr": 46.2, - "pf": 0.69, - "sharpe": -2.43, - "pnl_pips": -31.9, - "expectancy": -2.45 + "trades": 135, + "wr": 41.5, + "pf": 0.87, + "sharpe": -0.89, + "pnl_pips": -158.0, + "expectancy": -1.17 } }, { "rank": 16, "params": { - "MIN_ADX": 25, - "EMA_PROXIMITY_ATR": 0.2, - "TP_RR_MULT": 1.5 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 30 }, "metrics": { - "trades": 13, - "wr": 46.2, - "pf": 0.67, - "sharpe": -2.67, - "pnl_pips": -33.7, - "expectancy": -2.59 + "trades": 95, + "wr": 43.2, + "pf": 0.87, + "sharpe": -0.89, + "pnl_pips": -85.9, + "expectancy": -0.9 } }, { "rank": 17, "params": { - "MIN_ADX": 30, - "EMA_PROXIMITY_ATR": 0.2, - "TP_RR_MULT": 1.5 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 30 }, "metrics": { - "trades": 8, - "wr": 50.0, - "pf": 0.63, - "sharpe": -3.16, - "pnl_pips": -26.7, - "expectancy": -3.33 + "trades": 119, + "wr": 34.5, + "pf": 0.86, + "sharpe": -0.93, + "pnl_pips": -174.8, + "expectancy": -1.47 } }, { "rank": 18, "params": { - "MIN_ADX": 30, - "EMA_PROXIMITY_ATR": 0.2, - "TP_RR_MULT": 1.8 + "DISPLACEMENT_ATR": 2.0, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 50 }, "metrics": { - "trades": 8, - "wr": 50.0, - "pf": 0.62, - "sharpe": -3.16, - "pnl_pips": -27.4, - "expectancy": -3.42 + "trades": 139, + "wr": 34.5, + "pf": 0.83, + "sharpe": -1.13, + "pnl_pips": -250.2, + "expectancy": -1.8 + } + }, + { + "rank": 19, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 40 + }, + "metrics": { + "trades": 320, + "wr": 33.4, + "pf": 0.82, + "sharpe": -1.29, + "pnl_pips": -561.3, + "expectancy": -1.75 + } + }, + { + "rank": 20, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 40 + }, + "metrics": { + "trades": 319, + "wr": 38.9, + "pf": 0.8, + "sharpe": -1.47, + "pnl_pips": -535.9, + "expectancy": -1.68 + } + }, + { + "rank": 21, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 30 + }, + "metrics": { + "trades": 273, + "wr": 39.2, + "pf": 0.8, + "sharpe": -1.5, + "pnl_pips": -459.6, + "expectancy": -1.68 + } + }, + { + "rank": 22, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 30 + }, + "metrics": { + "trades": 273, + "wr": 33.3, + "pf": 0.8, + "sharpe": -1.4, + "pnl_pips": -517.0, + "expectancy": -1.89 + } + }, + { + "rank": 23, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 40 + }, + "metrics": { + "trades": 271, + "wr": 44.3, + "pf": 0.79, + "sharpe": -1.46, + "pnl_pips": -355.9, + "expectancy": -1.31 + } + }, + { + "rank": 24, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 2.0, + "OB_RETEST_WINDOW": 50 + }, + "metrics": { + "trades": 329, + "wr": 33.4, + "pf": 0.78, + "sharpe": -1.62, + "pnl_pips": -724.8, + "expectancy": -2.2 + } + }, + { + "rank": 25, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 30 + }, + "metrics": { + "trades": 226, + "wr": 44.2, + "pf": 0.78, + "sharpe": -1.63, + "pnl_pips": -321.4, + "expectancy": -1.42 + } + }, + { + "rank": 26, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 1.5, + "OB_RETEST_WINDOW": 50 + }, + "metrics": { + "trades": 327, + "wr": 39.1, + "pf": 0.77, + "sharpe": -1.69, + "pnl_pips": -633.6, + "expectancy": -1.94 + } + }, + { + "rank": 27, + "params": { + "DISPLACEMENT_ATR": 1.5, + "TP1_ATR_MULT": 1.0, + "OB_RETEST_WINDOW": 50 + }, + "metrics": { + "trades": 277, + "wr": 44.0, + "pf": 0.75, + "sharpe": -1.8, + "pnl_pips": -458.7, + "expectancy": -1.66 } } ]