MACD : 3 formules

Bonjour à tous,

 

Dans cet article, je réponds à une question souvent posée :

Pourquoi l’indicateur MACD est différent sur certaines plateformes de trading ?

Je prend l’exemple sur Metatrader et ProRealTime.

.

En fait, la vidéo vous montre que l’un des deux indicateurs ne répond pas tout à fait à la véritable définition du MACD. Nous allons en effet distinguer :

  • le MACD
  • l’OsMA

.

Je vous livre les codes pour ProRealTime.

Pensez évidemment à faire basculer l’affichage de l’indicateur en histogrammes.

.

Voici le code de l’indicateur MACD (idem à Metatrader) :

// Paramètres
C = 12
L = 26

MMC = exponentialAverage[C](close)
MML = exponentialAverage[L](close)

MACDHisto = MMC - MML

RETURN MACDHisto as "MACD Histogramme"

.

Voici le code de l’indicateur OsMA (proche du MACD de ProRealTime) :

// Paramètres
C = 12
L = 26
S = 9

MMC = exponentialAverage[C](close)
MML = exponentialAverage[L](close)

MACDligne = MMC - MML
ligne = Average[S](MACDHisto)

RETURN MACDligne - ligne as "MACD Histogramme"

.

MISE A JOUR : 24 mars 2019

Voici le code du MACD de ProRealTime :

Merci à un ami lecteur de m’avoir signalé que le code de MACD pour ProRealTime est simplement le même que plus haut… mais avec une moyenne mobile EXPONENTIELLE pour la « ligne ».

Pour les deux lignes, c’est cela : la ligne rouge pour le Signal (calcul = ligne) et la ligne bleue pour le MACD mais représenté en ligne et non pas en histogramme (calcul = MACDligne).

// Paramètres
C = 12
L = 26
S = 9

MMC = exponentialAverage[C](close)
MML = exponentialAverage[L](close)

MACDligne = MMC - MML
ligne = exponentialAverage[S](MACDHisto)

RETURN MACDligne - ligne as "MACD Histogramme", MACDhisto COLOURED(0,0,250) as "ligne", ligne coloured(250,0,0) as "Signal"

.

MISE A JOUR : 20 AOÛT 2019

Petit ajout à ce code « MACD ProRealTime », pour faire figurer le MACD sous formes de couleurs aux changements de tendance :

.

MACD version Metatrader :

// Paramètres
C = 12
L = 26

MMC = exponentialAverage[C](close)
MML = exponentialAverage[L](close)

MACDligne = MMC - MML

IF MACDligne >= MACDligne [1] THEN
 r = 0
 g = 255
 b = 0
ELSIF MACDligne < MACDligne [1] THEN
 r = 255
 g = 0
 b = 0
ENDIF

RETURN MACDligne coloured(r,g,b) as "MACD Histogramme"

.

MACD version Prorealtime :

// Paramètres
C = 12
L = 26

MMC = exponentialAverage[C](close)
MML = exponentialAverage[L](close)

MACDligne = MMC - MML
ligne = exponentialAverage[9](MACDligne)

MACDHisto = MACDligne - ligne

IF MACDHisto >= MACDHisto [1] THEN
r = 0
g = 255
b = 0
ELSIF MACDHisto < MACDHisto [1] THEN
r = 255
g = 0
b = 0
ENDIF

RETURN MACDHisto coloured(r,g,b) as "MACD Histogramme"

.

.

.

 

Share Button