FOREX SIGNAL ↗ Ouvrir l'app

Bollinger Confluence Mean-Reversion — scalping multi-TF

Stratégie scalping mean-reversion intraday sur EUR/USD avec triple confluence M30 → M15 → M5. Le marché s'écarte statistiquement (touche bande Bollinger), un indicateur extrême confirme (RSI), un chandelier valide le retournement — on parie sur le retour à la médiane mobile.

🛑 Statut au 2026-05-11 : baseline OOS failed — stratégie rejetée. Backtest 6 ans 4 mois Dukascopy EUR/USD M5 → OOS expectancy −0.167 R (sous le seuil de rejet +0.10 R), sous deux variantes TP. Verdict : mt5/AUDIT_2026-05-11_bcmr_baseline_failed.md. Toute reprise doit recommencer par tester les 7 variantes pré-listées plus bas, avec IS/OOS strict, et passer les 4 gates avant tout nouvel EA. La fiche ci-dessous reste valable comme spec descriptive ; elle ne décrit pas une stratégie validée à mettre en production.

🎓 La version pédagogique avec analogies n'aura pas lieu — la stratégie n'a pas survécu au gate OOS, et la méthode du repo refuse de pédagogiser une stratégie non validée.

Mécanique

Idée : 3 timeframes en cascade pour filtrer les faux signaux mean-reversion.
       M30 = régime (range only). M15 = setup (extrême BB). M5 = trigger (RSI + chandelier).

1. Filtre régime M30 (sur dernier bar M30 fermé, i=1) :
   - ADX(14) M30 < 20            → marché en range (pas de tendance)
   - |close M30 − SMA20 M30| < ATR(14) M30   → pas de walk-the-band (le prix
                                                n'est pas en train de tirer
                                                continûment sur une bande M30)
   Si l'une des deux conditions échoue → SKIP la journée jusqu'au prochain
   bar M30 fermé.

2. Setup M15 (sur dernier bar M15 fermé, i=1) :
   - LONG  candidate : close M15 ≤ BB_lower(20, 2.0) M15
   - SHORT candidate : close M15 ≥ BB_upper(20, 2.0) M15
   La touche/pénétration de la bande 2σ est le signe statistique de
   l'écart vs médiane mobile.

3. Trigger M5 (sur dernier bar M5 fermé, i=1) :
   - LONG  trigger :
     · RSI(14) M5 ≤ 30                       (survente)
     · close M5 > open M5                     (chandelier haussier)
     · low M5 ≤ low M5 du bar précédent (i=2) (rejection wick : new low fait
                                               puis rebond intra-bar)
   - SHORT trigger : conditions symétriques (RSI ≥ 70, close < open,
                                              high ≥ high i=2)

4. Entrée : close du bar M5 i=1 si toutes les conditions des étapes 1-2-3
   sont satisfaites simultanément au close.

5. Stop / Take profit (cf. section dédiée plus bas) :
   - SL = min(low i=1, low i=2) − 1.5 × ATR(14) M5  (LONG ; symétrique SHORT)
   - TP1 = SMA20 M15 (médiane mobile = target conservateur)
       → 50% de la position fermée à TP1
       → SL remonté à breakeven sur les 50% restants
   - TP2 = bande opposée BB M15 (target full mean-reversion)
       → 50% restants fermés à TP2

6. Cooldown :
   - 1 position simultanée maximum
   - Re-entry par direction interdite < 30 min après dernier exit (TP ou SL)
   - 5 trades / jour calendaire UTC max

Paramètres baseline candidats

Paramètre Valeur Rôle
BBPeriod 20 Période Bollinger M15
BBStdDev 2.0 Écart-type Bollinger (95% normal)
RSIPeriod 14 Période RSI M5 (Wilder)
RSILongMax 30 Seuil survente
RSIShortMin 70 Seuil surachat
ADXPeriod 14 Période ADX M30 (Wilder)
ADXMaxRange 20 ADX < 20 = range autorisé
WalkBandATRMult 1.0 Largeur zone "pas de walk-the-band"
ATRPeriodM5 14 Période ATR M5 (Wilder)
SLATRMult 1.5 Multiplicateur ATR pour buffer SL
RiskPctEquity 0.5 % equity risqué par trade (vs 1.0 LonBO)
MaxDailyLossPct 3.0 Killswitch DD jour
MaxSpreadPoints 15 Spread max 1.5 pip (vs 30 LonBO)
CooldownMinutes 30 Cooldown post-exit par direction
MaxTradesPerDay 5 Cap quotidien
SessionStartUTC 7 Début London (skip Asian)
SessionEndUTC 21 Fin NY

Ces valeurs doivent être verrouillées par le backtest avant tout .mq5. Conformément à la méthode LonBO : sans chiffres OOS sur 5+ ans, ce sont des hypothèses, pas des paramètres.

Conditions favorables

Stop / Take Profit

R:R effectif attendu (à vérifier OOS) :

Avec un hit-rate de mean-reversion classique (55-65%), expectancy théorique baseline = hit × R̄_win − (1 − hit) × 1R. Cible minimale : +0.20R net pour valider la stratégie OOS.

Indicateurs utilisés

TF privilégiés

M5 / M15 / M30 simultanés requis — c'est le cœur de la stratégie. Aucun TF seul ne marche :

Pas de version H1 ou H4 envisagée — la stratégie est délibérément intraday scalping.

Pièges

Hit-rate / R:R cible (à valider OOS)

⚠️ Chiffres espérés, pas mesurés. Le backtest 5+ ans Dukascopy doit confirmer ou réfuter.

Si le backtest OOS ressort < +0.10R ou DD > 20%, la stratégie est jetée. Pas de tuning post-hoc — c'est exactement le pattern qui a fait échouer 90% des EA Bollinger publics.

Variantes à backtester (avant gel des paramètres)

Variante Param touché Hypothèse
BB(14, 2.0) BBPeriod=14 Plus de signaux, hit-rate inférieur ?
RSI 25/75 RSILongMax=25, RSIShortMin=75 Moins de signaux mais plus extrêmes
ADX < 25 ADXMaxRange=25 Inclure régimes "weakly trending"
Pas de filtre walk-the-band WalkBandATRMult=∞ Mesurer son apport réel
TP single = middle TP2=None Plus simple, tester perf
Sessions London-only SessionEndUTC=12 Mesurer apport NY
SL = swing pur (sans buffer ATR) SLATRMult=0 Mesurer apport buffer

L'objectif du sweep n'est pas de trouver le combo le plus rentable IS (overfit), mais d'identifier un plateau OOS robuste comme pour LonBO #12.

Comment exécuter en pratique

🛑 Rejetée OOS au 2026-05-11. État final de la chaîne :

  1. ✅ Fiche pédagogique (ce document)
  2. ✅ Spec exécutable Python (mt5/tests/test_bollinger_spec.py) — gel des propriétés métier
  3. ✅ Backtest Hermes Python sur 6 ans 4 mois Dukascopy (hermes/scripts/backtest_bollinger_confluence.py)
  4. GATE OOS échoué sous variante A (TP unique) et variante B (partial TP1+BE+TP2). Pas de champion sélectionné.
  5. 🟡 EA MQL5 mt5/Bollinger_Confluence_v1.mq5 livré au commit 2026-05-09 — reste en EnableTrading=false à perpétuité tant qu'aucune variante ne passe le gate OOS.
  6. ✅ Audit statique pré-rejet (mt5/AUDIT_2026-05-09_bollinger.md) + audit rejet (mt5/AUDIT_2026-05-11_bcmr_baseline_failed.md)
  7. ⛔ Cross-val Python ↔ MT5 et forward signal-only : ANNULÉES (pas d'edge à cross-valider).

Pour reprendre la stratégie : recommencer par exécuter les 7 variantes ci-dessous avec IS/OOS strict, et seulement passer en cross-val si l'une d'elles franchit les 4 gates de la section précédente.

Liens