MACD — Moving Average Convergence Divergence
Indicateur de momentum basé sur la différence entre deux EMA de longueurs différentes. Capture l'accélération ou le ralentissement d'une tendance.
Définition
MACD se compose de trois éléments :
- MACD line = EMA(12) − EMA(26) — mesure l'écart entre l'élan court et l'élan long.
- Signal line = EMA(9) appliquée à la MACD line — version lissée.
- Histogramme = MACD − signal — distance entre les deux courbes.
Formule
EMA(prices, n) // EMA standard avec α = 2/(n+1)
MACD line = EMA(prices, 12) − EMA(prices, 26)
Signal = EMA(MACD_line_series, 9)
Histogram = MACD line − Signal
Paramètres dans le code
- EMA courte : 12
- EMA longue : 26
- Signal : 9
- Implémentation :
forex-assistant.tsx:356— fonctionmacd(prices)retournant{ macd, signal, histogram } - Cas dégénéré : si
prices.length < 26→ tout à 0.
Interprétation
L'histogramme est ce qui parle le plus :
| Configuration | Lecture |
|---|---|
| MACD > 0 et Histogramme > 0 | Momentum haussier confirmé |
| MACD < 0 et Histogramme < 0 | Momentum baissier confirmé |
| MACD > 0 mais Histogramme < 0 | Élan haussier qui s'essouffle |
| MACD < 0 mais Histogramme > 0 | Élan baissier qui s'essouffle |
Une inversion d'histogramme (passage de négatif à positif ou inverse) est le signal classique. Un cross zero de la MACD line confirme un changement de régime plus durable.
Logique de score (forex-assistant.tsx:1407)
hist > 0 ET macd > 0 → score = +1.5 (max 1.5)
hist < 0 ET macd < 0 → score = -1.5 (max 1.5)
sinon → score = 0
Logique stricte : il faut alignement entre la MACD line et son histogramme pour que le score se déclenche. C'est volontaire — toute autre combinaison est jugée "indécise" et n'apporte aucune contribution.
Pièges
- Lag intrinsèque : EMA(26) introduit un retard structurel. MACD est un suivi de tendance, pas un détecteur de retournement précoce.
- Ne fonctionne pas en range : en marché plat, MACD donne des cross fréquents et trompeurs. Filtrer avec ADX > 20 ou Choppiness < 60.
- Divergences : un cours qui fait un nouveau plus haut sans que MACD le fasse est un signal de retournement classique — non-détecté par notre scoring actuel, mais visible à l'œil.
- Notre seuil ignore l'amplitude : un histogramme à 0.00001 est traité comme un histogramme à 0.001. Pour un signal "fort", on pourrait pondérer par
|hist|.