FOREX SIGNAL ↗ Ouvrir l'app

NY Reversal H1 — fader l'extension du move London à l'ouverture NY

Stratégie reversal session-aware candidate. Mesurer le move directionnel London 08:00-12:00 UTC, puis fader la première H1 NY (13:00-14:00 UTC) si elle prolonge le move avant de clôturer en sens inverse. Setup conçu en miroir méthodologique de LonBO #12 (seule stratégie validée du repo) : contrainte temporelle forte + contexte session = filtre du bruit.

🛑🛑 STATUT au 2026-05-12 : REJETÉ OOS — pas d'EA livré. Backtest 8 ans 4 mois Dukascopy : 231 trades, expectancy IS −0.023 R / OOS +0.047 R (sous gate +0.20), hit rate 13.4% (très sous break-even RR=2.0 = 33.3%), max DD OOS −5.7 R. 2/4 gates échouent. Verdict détaillé : mt5/AUDIT_2026-05-12_ny_reversal.md.

Particularité vs les 4 rejets précédents : asymétrie LONG/SHORT révélée. SHORT seul a OOS +0.119 R (33 trades, hit 15.2%), LONG seul OOS −0.026 R. Pas suffisant pour atteindre le gate (toujours sous +0.20 R) mais signale un biais structurel EUR/USD intéressant.

Aucun EA MQL5 livré. La fiche reste comme référence méthodologique + point de départ pour d'éventuelles variantes v2 (SHORT-only, RR=1.5, filtre D1, exclusion 2018-2019). Chaque variante = nouveau cycle complet.

🛑 STATUT ORIGINEL : CANDIDATE — backtest gate à passer avant tout EA. Cette fiche décrit une stratégie candidate au registry Hermes V2+ (hors scope V1.5 strict qui fixe 4 stratégies actives). Aucune ligne d'EA MQL5 ne sera écrite avant que le backtest Dukascopy 2018-2026 passe les 4 gates OOS : expectancy ≥ +0.20 R, max DD < 20 R, n ≥ 30 trades, ratio OOS/IS ≥ 0.6. Si rejet → archivage comme BCMR / RSI Learn / Alligator / MACD Zone Cross (script de backtest conservé, EA non livré).

Méthodologie stricte (cf. KANBAN root, anti-patterns) : pas de tuning post-hoc. Les paramètres ci-dessous sont fixés AVANT le backtest selon une logique structurelle (fenêtres session standards, seuils ATR raisonnables). Toute variation nécessite une justification ex-ante et un commit sous nouveau nom (v2).

Pourquoi cette candidate après 4 rejets consécutifs

Bilan des stratégies candidates testées en mai 2026 :

Strat TF Mécanique dominante Verdict OOS
BCMR M5 Bollinger mean-reversion ❌ −0.21 R
RSI Pullback Learn M15 EMA trend + RSI oversold same-TF ❌ broken (2 trades / 6 ans)
Alligator Learn M15 SMMA trend follow ❌ −0.10 R
MACD Zone Cross H1 MACD cross + zone filter ❌ +0.011 R (bruit)

Le pattern commun : aucun contexte structurel fort, ces 4 stratégies se contentent d'un signal d'indicateur sans contrainte temporelle ou session. LonBO #12 (validée +0.342 R OOS sur 23 ans) en a au contraire un très fort : range Asian défini + fenêtre NY overlap stricte + 1 trade max/jour.

NY Reversal applique le même principe :

Si cette hypothèse est fausse (4/4 rejets de strats sans contexte = donnée statistique), au moins on aura testé la version la plus défendable méthodologiquement.

Mécanique

Bars H1 EUR/USD, timestamps UTC.

Notation : "bar à HH:00 UTC" = bar qui ouvre à HH:00 et ferme à HH+1:00.

1. Définir la fenêtre London (4 bars H1, 08:00-12:00 UTC) :
   - london_open  = open  du bar 08:00 UTC (jour courant)
   - london_close = close du bar 11:00 UTC (jour courant)
   - london_high  = max(high) sur bars 08-11 UTC
   - london_low   = min(low)  sur bars 08-11 UTC
   - london_move  = london_close - london_open

2. NY first H1 = bar 13:00 UTC (jour courant)
   Évaluation au close de ce bar = à 14:00 UTC.
   - ny_open  = open  du bar 13:00 UTC
   - ny_close = close du bar 13:00 UTC
   - ny_high  = high  du bar 13:00 UTC
   - ny_low   = low   du bar 13:00 UTC
   - ny_move  = ny_close - ny_open

3. Filtre "London a bougé" (magnitude ATR) :
   - ATR(14) calculé sur la série H1 jusqu'au bar 13:00 inclus
   - london_strength = |london_move| / ATR
   - SKIP si london_strength < 0.8   (London flat = pas de move à fader)
   - SKIP si london_strength > 3.0   (trend-day = fader = se faire écraser)

4. Trigger reversal :

   Cas A — London bullish (london_move > 0) :
     - Extension required : ny_high > london_high
       (NY a fait un nouveau plus haut au-dessus du sommet London)
     - Reversal required  : ny_close < ny_open
       (NY first H1 clôture bearish malgré l'extension)
     → Entry SHORT au close du bar 13:00 UTC

   Cas B — London bearish (london_move < 0) :
     - Extension required : ny_low < london_low
     - Reversal required  : ny_close > ny_open
     → Entry LONG au close du bar 13:00 UTC

   Aucun trigger si London neutre (move == 0) — éliminé par le filtre
   magnitude qui exige london_strength ≥ 0.8.

5. SL / TP ATR-based :
   - Calcul ATR(14) au bar 13:00 (déjà calculé pour le filtre)
   - SHORT : SL = ny_high + 0.3 × ATR
             entry = ny_close
             sl_distance = SL - entry
             TP = entry - 2.0 × sl_distance
   - LONG  : SL = ny_low - 0.3 × ATR
             entry = ny_close
             sl_distance = entry - SL
             TP = entry + 2.0 × sl_distance
   - RR théorique fixe = 2.0

6. Filtre coût (live) :
   - Skip si spread courant > 30 points (3 pips 5-digit, aligné LonBO)

7. Cooldown : trade évalué uniquement au close du bar 13:00 UTC,
   1 fois par jour calendaire UTC. Cas symétriques exclusifs (pas de
   double signal LONG+SHORT le même jour).

8. Timeout : exit forcé à clôture du bar 21:00 UTC (= 8 bars H1 après
   l'entry) si ni SL ni TP touché. NY session fermée, on n'attend pas
   le lendemain.

Pourquoi 08:00-12:00 UTC pour London

Pourquoi NY first H1 = 13:00 UTC bar

Pourquoi extension + reversal (les deux)

Tester chaque condition seule :

Pourquoi SL = extrême NY + 0.3 × ATR

Pourquoi RR = 2.0 et pas 2.5 (comme LonBO)

Pourquoi cooldown = 1 trade/jour (1 bar fixe)

Paramètres baseline

Paramètre Valeur Justification
LondonOpenUTC 8 Standard London cash open
LondonCloseUTC 12 Fin window London (= NY first commence à 13)
NYFirstHourUTC 13 Bar pre-market US, close à 14:00
ATRPeriod 14 Wilder standard
MinLondonStrength 0.8 London ≥ 0.8 × ATR pour qualifier
MaxLondonStrength 3.0 London ≤ 3.0 × ATR pour exclure trend-day
SLBufferATRMult 0.3 Buffer au-delà du high/low NY first
RRMultiple 2.0 TP = 2 × distance SL
TimeoutBars 8 Exit forcé 21:00 UTC si pendant
MaxSpreadPoints 30 3 pips 5-digit (live uniquement, aligné LonBO)
MagicNumber 80808080 Identifiant EA (TBD si livraison)

Aucune optimisation post-backtest. Si l'edge n'apparaît pas avec ces paramètres standards, l'hypothèse de stop-hunt structurel sur NY open EUR/USD est invalidée — pas qu'il faut "ajuster les seuils".

Fréquence attendue

Sur 8 ans 4 mois (2018-01 → 2026-05) ≈ 2100 jours ouvrés, on attend ~400-800 signaux. Largement au-dessus du gate n ≥ 30 trades OOS.

Gates OOS (méthodologie BCMR, non négociables)

# Gate Cible Action si raté
1 OOS expectancy ≥ +0.20 R / trade edge réel après random walk + frais rejet définitif
2 OOS max DD < 20 R gestion risque acceptable rejet (~10% capital à 0.5%/trade)
3 OOS n ≥ 30 trades significativité statistique rejet (sample trop petit)
4 Ratio OOS/IS expectancy ≥ 0.6 robustesse / pas d'effondrement OOS rejet (sur-fit IS)

Découpage IS/OOS : 2018-01-01 → 2023-12-31 = IS (6 ans), 2024-01-01 → 2026-05-11 = OOS (~2.4 ans), soit ~72/28.

Performance attendue (à confirmer)

Métrique Cible Acceptable Rejet
Hit rate à RR=2.0 ≥ 40% ≥ 33.3% (BE) < 30%
Expectancy R ≥ +0.30 ≥ +0.20 < +0.10
Profit factor ≥ 1.5 ≥ 1.2 < 1.0
Max DD OOS < 12 R < 20 R ≥ 25 R

Conditions favorables

Pièges connus

1. Trend-day non détecté

Si London fait un move 2.5×ATR (proche du plafond 3.0×) et NY continue dans la même direction puis fade légèrement, le pattern se déclenche mais le contre-mouvement n'est qu'une pause avant continuation. Risque d'être pris en SHORT pendant un trend bullish strong.

Mitigation possible v2 : filtre D1 (skip si D1 fait un nouveau plus haut/bas hebdomadaire), ou réduire plafond à 2.5×ATR.

2. News rouge 14:30 UTC

NFP/CPI/FOMC sortent dans la fenêtre. Le bar 13:00 UTC fini, l'entry est validée, puis la news fait spike ±50 pips. SL ATR-based atténue mais ne résout pas. Pas de filtre news en v1.

Mitigation possible v2 : skip si news rouge USD prévue dans 30 min post-entry. À implémenter via le pilier A Forex Factory XML.

3. NY first H1 = doji

Si ny_high > london_high (extension validée) mais ny_close ≈ ny_open (doji), la condition ny_close < ny_open peut être validée par 0.1 pip de différence. Trigger valide mais signal faible.

Mitigation possible v2 : exiger |ny_close - ny_open| ≥ 0.2 × ATR. Pas en v1 pour éviter le tuning.

4. Bias direction (long vs short)

EUR/USD sur 8 ans = bias structurel selon la phase EUR/USD. Décompo LONG/SHORT obligatoire dans le backtest — si LONG seul a un edge, c'est acceptable (variante v2 LONG-only).

5. Conflit avec LonBO

Les deux stratégies peuvent trigger le même jour (LonBO breakout entre 12-17 UTC, NY Reversal au close 13:00 UTC). En live, prioriser LonBO (stratégie validée). En backtest, considérer indépendamment — ce sont des tests de mécaniques distinctes.

6. DST UTC drift

Les heures NY/London glissent en mars/novembre via DST. Le strategy définit en UTC fixe : pas de glissement, mais l'interprétation session varie de 1h en hiver vs été. Acceptable car pattern intra-day basé sur structure prix, pas sur clock retail.

Variantes envisagées (non implémentées en v1)

Variante Modification Rationale
LONG-only Skip cas A (SHORT) Si bias structurel EUR/USD
Multi-TF D1 align Skip si D1 fait HHH/LLL hebdo Évite contre-trend D1
Magnitude reversal Exiger ny_close vs ny_open ≥ 0.2 × ATR Évite dojis
Filtre news rouge USD Skip si news ±30 min post-entry Évite spike news
Cooldown post-loss Skip lendemain si loss aujourd'hui Évite séries baissières
Plafond réduit MaxLondonStrength = 2.5 Évite trend-days plus tôt
TF M30 trigger Bar 13:30 UTC en plus du 13:00 2 chances/jour

Toutes attendent que la baseline passe le gate avant d'être considérées.

Couplage piliers A↔B↔C (CLAUDE.md root)

Pilier Fichier
A (docs) docs/strategies/mean-reversion/ny-reversal.md (cette fiche)
C (spec) mt5/tests/test_ny_reversal_spec.py
B (R&D) hermes/scripts/backtest_ny_reversal.py
C (EA) mt5/NY_Reversal_v1.mq5 + includes — uniquement si gates OOS verts

Pas d'EA tant que le backtest n'a pas validé l'edge.

Liens