FOREX SIGNAL ↗ Ouvrir l'app

RSI Pullback Learn — outil pédagogique M15

Outil de génération de signaux à volume élevé sur EUR/USD M15. Combine un filtre de tendance (EMA50) et un déclencheur de pullback (RSI extrême) pour produire 10-30 signaux par jour. Objectif : entraîner ton jugement "prendre/skip" sur volume réel, pas découvrir un edge.

🛑🛑 STATUT au 2026-05-12 : MÉCANIQUEMENT BROKEN — STRATÉGIE FIGÉE. Backtest 6 ans 4 mois Dukascopy : 2 trades émis sur l'ensemble de la période (1 LONG + 1 SHORT en 2022). Cause racine : les conditions LONG close > EMA50 ET RSI ≤ 35 et SHORT close < EMA50 ET RSI ≥ 65 sont mécaniquement quasi-incompatibles sur la même TF M15 (corrélation par construction entre RSI court et EMA long). La fréquence promise dans cette fiche (10-20/jour) est factuellement fausse.

Verdict détaillé : mt5/AUDIT_2026-05-12_learn_backtest.md.

Conséquence opérationnelle : l'EA RSI_Learn_v1.mq5 produirait ~1 signal tous les 2 ans s'il était attaché. Ne PAS l'attacher sur MT5 — il est inutilisable même pour le pédagogique. La fiche est conservée comme cas d'école "design naïf qui ne marche pas" (anti-pattern same-TF trend filter + same-TF momentum trigger). Toute reprise R&D doit utiliser un autre filtre tendance (slope EMA, multi-TF EMA D1) sous un nouveau nom (RSI_Learn_v2), pas amender la v1.

🛑 STATUT ORIGINEL : OUTIL PÉDAGOGIQUE — PAS D'EDGE VALIDÉ. Cette mécanique n'a fait l'objet d'aucun backtest OOS, d'aucune validation walk-forward, d'aucun gate. Les paramètres (seuils RSI, EMA50, RR=2.0) sont intentionnellement permissifs pour maximiser la fréquence des signaux, pas l'expectancy.

L'EA mt5/RSI_Learn_v1.mq5 est SIGNAL_ONLY à perpétuité par construction : il n'inclut PAS le module LonBO_Order.mqh, aucune fonction OrderSend n'est appelable depuis ce code. La seule façon d'exécuter ces signaux serait de réécrire l'EA — ce qui ne doit JAMAIS arriver sans passer le même gate backtest que LonBO (fiche → spec → backtest Dukascopy M15 5+ ans → 4 gates OOS verts).

La valeur d'apprentissage est dans le journal manuel des décisions "prendre/skip" associées à chaque signal reçu, pas dans la stratégie elle-même.

À quoi ça sert (vraiment)

Tu reçois 100-300 signaux Telegram sur 2 semaines. Pour chacun, tu prends 10 secondes pour décider mentalement :

Tu note ces décisions dans un journal léger. Au bout de 2 semaines, tu analyses :

  1. Sur quelles heuristiques de skip convergent tes décisions ? Si "je skip toujours quand le bid-ask spread dépasse 2 pips" → c'est un filtre concret.
  2. Sur quels contextes de prise ton instinct te poussait à entrer ? Si "je prends 80% des LONG quand le D1 EMA20 monte" → c'est un filtre directionnel.
  3. Quel serait le hit-rate hypothétique si tu avais effectivement pris uniquement tes "✓" ? (à comparer aux 50% par chance pure.)

Ces heuristiques sont les briques pour une stratégie validable. Si tu détectes un pattern stable, alors il vaut le travail méthodologique (spec → backtest → gate). Tant que tu n'as pas ça, ne passe rien en exécution.

Mécanique

1. Filtre tendance (EMA50 M15) :
   - Si close M15 (i=1) > EMA50 (i=1) → uptrend → seuls les LONG sont autorisés
   - Si close M15 (i=1) < EMA50 (i=1) → downtrend → seuls les SHORT sont autorisés
   - L'égalité stricte est ignorée (cas rarissime, FP)

2. Déclencheur (RSI 14 M15, calcul Wilder) :
   - LONG  si RSI ≤ RSILongMax (35 par défaut) ET tendance haussière
   - SHORT si RSI ≥ RSIShortMin (65 par défaut) ET tendance baissière

3. Évaluation : 1 fois au close de chaque bar M15 (i=1).

4. Cooldown global : 15 min minimum entre 2 signaux (toutes directions
   confondues). Évite l'avalanche quand RSI traîne plusieurs bars sous le
   seuil dans une consolidation.

5. Filtre coût : skip si spread courant > MaxSpreadPoints (10 = 1 pip
   sur 5-digit). Loggé en CSV avec event "skip_spread".

6. Pas de filtre session : actif 24/5 (du lundi 00:00 au vendredi 23:59
   UTC). Le but est précisément de voir comment les signaux se comportent
   selon les sessions — l'apprentissage inclut cette observation.

7. Stop / Take Profit : fixes, en pips, indépendants de l'ATR.
   - SL = entry − 15 pips (LONG) / entry + 15 pips (SHORT)
   - TP = entry + 30 pips (LONG) / entry − 30 pips (SHORT)
   - RR théorique = 2.0 (informatif, non exécuté).

8. Pas de cap journalier. Pas de drawdown stop (signal-only n'expose à aucun
   capital). Le killswitch existe quand même pour pouvoir arrêter le flux de
   notifications sans détacher l'EA.

Paramètres par défaut

Paramètre Valeur Rôle
EMAPeriod 50 Période EMA filtre tendance (M15)
RSIPeriod 14 Période RSI Wilder (M15)
RSILongMax 35.0 RSI ≤ X → candidat LONG (vs 30 classique : plus permissif)
RSIShortMin 65.0 RSI ≥ X → candidat SHORT
SLPips 15.0 Stop fixe en pips
TPPips 30.0 Take profit fixe en pips (RR théorique 2.0)
CooldownMinutes 15 Cooldown global post-signal
MaxSpreadPoints 10 Spread max (1 pip sur 5-digit)
MagicNumber 50505050 Identifiant logs (jamais utilisé pour OrderSend)

Pourquoi RSI 35/65 et non 30/70 : à 30/70, on observerait ~3 signaux/jour sur EUR/USD M15 — pas assez pour entraîner le jugement en 2 semaines. À 35/65, on monte à 10-20 signaux/jour, soit 100-300 décisions de jugement sur la période d'observation. C'est un compromis pédagogique assumé, pas une décision optimisée.

Fréquence attendue

Estimation rough sur EUR/USD M15 :

Plage attendue : 5-20 signaux/jour, médiane 10-12. Sur 2 semaines ouvrées : 100-200 signaux au total.

Pièges connus

1. Marché en range serré (faux positifs garantis)

Si EUR/USD oscille dans 30 pips sur la journée, le RSI(14) M15 saute entre 30 et 70 toutes les 4-6 bars. Tu vas recevoir LONG/SHORT/LONG/SHORT en alternance, tous perdants si pris. Apprends à reconnaître ce contexte (visuellement sur le chart, ou en regardant l'ADX si tu l'as installé). C'est un cas où tu dois systématiquement "✗ skip" — note-le.

2. News rouge dans 30 min

Aucun filtre news n'est intégré. Si tu reçois un signal à 12:25 et qu'à 12:30 sort un CPI US, le SL/TP théoriques n'ont aucun sens. Toujours consulter Forex Factory (déjà intégré dans le pilier A) avant de décider mentalement "prendre/skip".

3. Walk-the-band (tendance forte unidirectionnelle)

Quand EUR/USD trend fort en M15, le RSI reste collé à 70+ pendant 10-20 bars. La condition SHORT (RSI ≥ 65 + downtrend) ne se déclenche jamais (car uptrend), mais tu peux avoir des LONG en série lors des micro-pullbacks RSI vers 35. C'est bien, c'est ce que veut la mécanique. Mais le RR fixe 15/30 ne capture pas vraiment la tendance (TP atteint vite, manque les trends de 50+ pips).

4. Spread spike en news

Le filtre MaxSpreadPoints = 10 skip si spread > 1 pip. Pendant un NFP ou CPI, le spread IC Markets peut monter à 30-50 points pendant 1-2 minutes. Ces bars seront skipped — c'est cohérent. Si tu vois beaucoup de skip_spread dans le CSV log, c'est un signal indirect que tu trades juste après une news majeure.

5. Cooldown de 15 min vs bar M15

Bars M15 closent toutes les 15 min. Cooldown 15 min = au mieux 1 signal par bar M15 dans une consolidation où le RSI reste sous le seuil plusieurs bars. C'est volontaire — sinon tu reçois le même signal répété.

6. Aucune validation pédagogique du SL/TP fixe

SL=15 / TP=30 sont des nombres ronds choisis pour leur simplicité, pas pour leur edge. Sur EUR/USD M15, l'ATR(14) typique tourne autour de 8-15 pips ; un SL fixe à 15 = ~1 ATR, raisonnable mais pas adapté aux régimes de volatilité. Un TP à 30 pips = ~2-4 ATR selon le contexte. Ne pas transférer ces chiffres vers une stratégie production sans backtest.

Variantes envisagées (non testées, ne pas implémenter sans gate)

Variante Modification Effet probable
RSI 30/70 Seuils classiques Moins de signaux (~3/jour), plus de qualité
EMA200 M15 Trend filter plus long Plus de skip en consolidation
SL/TP ATR-based SL=1.5×ATR(14) M5, TP=3×ATR Adapte à la volatilité
Filtre session [07-21) UTC Ferme la phase Asia -30% signaux, possiblement +qualité
Filtre D1 alignment EMA50 D1 même sens Forte réduction du volume, possiblement edge

Toutes ces variantes sont hors scope de cet outil pédagogique. Si une d'elles te semble prometteuse après l'observation 2 semaines, le bon chemin est : nouvelle fiche → nouvelle spec → backtest Dukascopy → 4 gates OOS comme LonBO et BCMR. Pas de raccourci.

Format des messages Telegram

Chaque signal envoie un message structuré :

🟢 RSI Learn LONG EURUSD [SIGNAL ONLY]
Entry: 1.08750
SL:    1.08600 (-15 pips)
TP:    1.09050 (+30 pips, RR=2.0)
RSI M15: 33.2 | EMA50 M15: 1.08620
Trend: UP (close > EMA50)
Cooldown next: 15 min

Le bandeau [SIGNAL ONLY] est en dur dans le code — l'EA ne sait pas afficher autre chose.

Couplage avec piliers A et B

Méthode de journal pédagogique recommandée

Crée un Google Sheets simple (ou CSV local) avec ces colonnes :

ts_utc direction rsi trend decision raison_skip contexte_pris hit_hypothétique
2026-05-12 13:15 long 33.2 up "structure clean" TP / SL / breakeven
2026-05-12 13:30 long 34.1 up "news USD 14:30"
2026-05-12 14:45 short 67.5 down "déjà LONG dans la journée"

Au bout de 2 semaines, agrège :

Cette analyse, et pas la performance théorique du bot, est le seul livrable d'apprentissage.

Désinstallation / archivage

Quand tu auras fini les 2 semaines :

  1. Détache l'EA du chart
  2. Optionnel : supprime MQL5\Experts\RSI_Learn\ côté MT5
  3. Garde le CSV log (MQL5\Files\RSI_Learn_v1_log.csv) — il complète ton journal manuel avec les timestamps précis et les valeurs RSI/EMA exactes
  4. Rédige une note de bilan (3-5 lignes) dans ton journal général.

Référence croisée