RSI 14 — Relative Strength Index
Oscillateur borné [0–100] qui compare la moyenne des gains à la moyenne des pertes sur N barres. Sert à détecter le surachat / la survente et la force d'une tendance.
Définition
Le RSI mesure l'amplitude relative des hausses par rapport aux baisses sur une fenêtre glissante. Un RSI proche de 100 = les hausses dominent largement. Proche de 0 = les baisses dominent.
Formule (lissage de Wilder)
Bootstrap sur les N premières variations :
avgGain[N] = somme des hausses sur les N premières barres / N
avgLoss[N] = somme des baisses sur les N premières barres / N
Récurrence pour chaque barre suivante (i > N) :
gain[i] = max(close[i] − close[i-1], 0)
loss[i] = max(close[i-1] − close[i], 0)
avgGain[i] = (avgGain[i-1] × (N-1) + gain[i]) / N
avgLoss[i] = (avgLoss[i-1] × (N-1) + loss[i]) / N
Valeur finale :
RS = avgGain / avgLoss
RSI = 100 − 100 / (1 + RS)
Si avgLoss = 0 → RSI = 100 (cas borne).
Paramètres dans le code
- Période N : 14
- Implémentation :
forex-assistant.tsx:309— fonctionrsi(prices, period = 14) - Lissage : Wilder (EMA avec α = 1/N), aligné sur TradingView, MT4/5, cTrader, Bloomberg.
- Cas dégénérés : retourne
50siprices.length < period + 1, retourne100si pas de pertes.
Interprétation
| Zone | Lecture |
|---|---|
| > 70 | Surachat — pression vendeuse probable |
| 55 – 70 | Tendance haussière confirmée |
| 45 – 55 | Range / neutre |
| 30 – 45 | Tendance baissière confirmée |
| < 30 | Survente — rebond possible |
Logique de score (forex-assistant.tsx:1400)
> 70 → score = -1.5 (max 1.5) // suracheté → biais vente
< 30 → score = +1.5 (max 1.5) // survendu → biais achat
> 55 → score = +0.7
< 45 → score = -0.7
sinon → score = 0
Lecture mean-reverting : un extrême pousse le score vers la position contraire. Avec un max = 1.5, le RSI est un des trois indicateurs les plus pondérés du panneau (avec MACD et Bollinger).
Pièges
- Tendance forte = RSI bloqué : en uptrend puissante, RSI peut rester > 70 pendant 30+ barres. Un seuil n'est pas un signal d'entrée à lui seul — il faut le confirmer avec ADX < 25 (range) ou le combiner avec une divergence.
- Mémoire infinie du lissage Wilder : chaque ancienne barre garde un poids résiduel décroissant (α = 1/14). Un gros mouvement il y a 50 barres influence encore (très faiblement) la valeur actuelle — c'est voulu, ça évite les sauts artificiels quand une vieille barre "sort" d'une fenêtre.
- Bootstrap sur les 14 premières barres : les valeurs avant la 14ᵉ barre sont remplacées par 50. Sur un dataset court ou après un changement de paire/timeframe, attendre que ~30 barres soient calculées avant de prendre les valeurs au sérieux.
- Timeframes courts : sur M5, RSI oscille rapidement et donne beaucoup de faux signaux. Combiner avec MACD ou Stochastic pour filtrer.
- Divergences : un RSI qui fait des plus bas alors que le prix fait des plus hauts (ou inverse) est souvent plus prédictif que le niveau absolu — détectable via
detectRsiDivergence(voir Patterns).
Indicateurs liés
- Stochastic — oscillateur similaire mais sur le range high/low
- StochRSI — RSI passé à travers un Stochastic (plus réactif)
- Connors RSI — composite RSI(3) + streaks + percentile
- CMO 14 — variante du RSI sur ±100 au lieu de 0–100
- DeMarker — alternative basée sur les highs/lows