Optimize EUR/USD M5 signals: 1:1 RR, vol/agreement filters, disable XAU

Tune EUR/USD M5 trade setup for balanced profitability (78% WR, 1.68 PF,
+26.5R over 365d) under a 4-hour max hold constraint. Key changes:
- Raise min RR from 0.5 to 1.0 and TP multiplier from 1.0x to 1.2x ATR
- Tighten SL floor (0.8→0.7 ATR) and swing lookback (50→20 bars)
- Add volatility regime filter (block "high" vol) and min 6 indicator
  agreement gate in signal_aggregator
- Raise BE trigger 0.2→0.3R, buffer 0.05→0.15R to let winners run
- Block weak hours (06, 09, 11 UTC) on M5
- Disable XAU strategy checks by default; XAU pair config re-enables

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
harwinder
2026-05-21 19:12:58 -04:00
parent 9a2b1f7b1e
commit 25791fefa3
5 changed files with 38 additions and 11 deletions
+21
View File
@@ -474,6 +474,27 @@ class SignalAggregator:
f"EUR CONF FILTER: {report.final_confidence} < {eur.min_entry_confidence}"
)
report.signal_quality = "F"
if (report.signal_quality != "F"
and eur.blocked_vol_regimes
and report.volatility_regime):
if report.volatility_regime in eur.blocked_vol_regimes:
report.warnings.append(
f"EUR VOL FILTER: {report.volatility_regime} volatility blocked"
)
report.signal_quality = "F"
if (report.signal_quality != "F"
and eur.min_indicator_agreement > 0
and report.primary_analysis):
agree_count = sum(
1 for ind in report.primary_analysis.indicators.values()
if ind.signal.value != 0
and (ind.signal.value > 0) == (report.final_score > 0)
)
if agree_count < eur.min_indicator_agreement:
report.warnings.append(
f"EUR AGREE FILTER: {agree_count} < {eur.min_indicator_agreement}"
)
report.signal_quality = "F"
if (report.signal_quality != "F"
and eur.block_rsi_extended
and report.primary_analysis):