Moving Average Convergence Divergence (macd)
[[macd]] mesure l’écart entre deux moyennes mobiles calculées sur une même série de prix. La ligne MACD correspond à la différence entre une moyenne rapide et une moyenne lente. La ligne Signal est une moyenne mobile appliquée à la ligne MACD. L’histogramme représente l’écart entre la ligne MACD et la ligne Signal.
Le MACD sert à suivre l’évolution du momentum, c’est-à-dire la manière dont un mouvement gagne ou perd en intensité. Une ligne MACD au-dessus de zéro indique que la moyenne rapide reste au-dessus de la moyenne lente. Une ligne MACD sous zéro indique l’inverse. Quand la ligne MACD s’éloigne de la ligne Signal, cela traduit un écart plus marqué entre les deux lectures. Quand elle s’en rapproche, cela traduit un ralentissement de cet écart.
Le MACD ne mesure ni la volatilité ni le niveau de prix en lui-même. Il ne définit pas non plus de zone fixe de surachat ou de survente. Il s’utilise surtout pour repérer des croisements, suivre le renforcement ou l’affaiblissement d’un mouvement, ou comparer plusieurs réglages dans une recherche par grille.
Déclaration du bloc
Une stratégie peut contenir plusieurs blocs [[macd]].
Chaque bloc génère une à trois séries numériques : la ligne MACD, la ligne Signal et, si demandée, l’histogramme.
Exemples
Configuration minimale
Ce bloc n’indique aucune source et expose uniquement la ligne MACD. La série close est utilisée par défaut, avec les longueurs classiques 12 pour fast et 26 pour slow.
[[macd]]
macd_id = "macd_line"Longueurs fixes personnalisées
Ce bloc utilise des valeurs personnalisées pour fast, slow et signal.
[[macd]]
macd_id = "macd_line"
signal_id = "macd_signal"
hist_id = "macd_hist"
fast = 8
slow = 21
signal = 7Recherche des longueurs optimales
Ce bloc explore des plages de valeurs pour fast, slow et signal afin d’identifier la combinaison la plus performante.
[[macd]]
macd_id = "macd_line"
signal_id = "macd_signal"
hist_id = "macd_hist"
fast.start = 6
fast.stop = 30
slow.start = 6
slow.stop = 30
signal.start = 6
signal.stop = 12Source et type de moyenne
Ce bloc illustre l’utilisation d’une autre source que close ainsi que le choix explicite du type de moyenne mobile (SMA) pour la ligne MACD et pour la ligne Signal.
[[macd]]
macd_id = "macd_line"
signal_id = "macd_signal"
hist_id = "macd_hist"
source = "hlc3"
macd_type = "sma"
signal_type = "sma"Filtre de momentum haussier
Cet exemple utilise le MACD comme filtre de confirmation. La condition ne devient vraie que si la ligne MACD reste au-dessus de zéro et si l’histogramme est positif. Cela permet de ne laisser passer un signal d’entrée que lorsque le momentum reste orienté à la hausse.
[[macd]]
macd_id = "macd_line"
signal_id = "macd_signal"
hist_id = "macd_hist"
[[condition]]
id = "bullish_momentum_filter"
condition = "macd_line > 0 and macd_hist > 0"
next_block_id = "..."Paramètres
| Paramètre | Description |
|---|---|
macd_idTexte Obligatoire | Identifiant de la série MACD. |
signal_idTexte Optionnel | Identifiant de la série Signal. Si cette clé est définie, la longueur signal devient optionnelle et prend la valeur par défaut 9 si elle est omise. |
hist_idTexte Optionnel | Identifiant de la série Histogramme (nécessite signal_id). |
sourceTexte ou Tableau Optionnel | Série d’entrée utilisée pour le calcul. Formats acceptés : source = "hl2" ou source = ["close", "hl2"].Chaque valeur peut être soit une source de prix standard ( open, close, high, low, hl2, hlc3, ohlc4, hlcc4, volume), soit l’id d’un autre indicateur.Valeur par défaut : "close" |
fastEntier Optionnel | Longueur de la moyenne rapide ; doit être ≥ 2. Valeur par défaut : 12.Usage : • Fixe : fast = valeur• Grille : – fast.start = valeur_minimale– fast.stop = valeur_maximale– fast.step = valeur (optionnel, par défaut 1) |
slowEntier Optionnel | Longueur de la moyenne lente (doit être > fast).Valeur par défaut : 26.Usage : • Fixe : slow = valeur• Grille : – slow.start = valeur_minimale– slow.stop = valeur_maximale– slow.step = valeur (optionnel, par défaut 1) |
signalEntier Conditionnel | Longueur de la moyenne appliquée à la ligne MACD ; doit être ≥ 1. Cette clé est autorisée uniquement si signal_id est défini. Si elle est omise dans ce cas, la valeur par défaut 9 est utilisée.Usage : • Fixe : signal = valeur• Grille : – signal.start = valeur_minimale– signal.stop = valeur_maximale– signal.step = valeur (optionnel, par défaut 1) |
macd_typeTexte ou Tableau Optionnel | Type(s) de moyenne utilisés pour la ligne MACD (fast et slow). Valeurs possibles : "sma", "ema", "wma", "dema", "tema", "trima", "smma", "zlema", "rma". Accepte soit une chaîne, soit un tableau pour la recherche par grille. Valeur par défaut : "ema". |
signal_typeTexte ou Tableau Conditionnel | Type(s) de moyenne utilisés pour la ligne Signal. Même liste de valeurs que macd_type. Accepte une chaîne ou un tableau pour la recherche par grille. Valeur par défaut : "ema". Cette clé est autorisée uniquement si signal_id est défini. |
symbolTexte ou Tableau Optionnel | Symbole(s) de marché utilisé(s) lorsque source ne contient que des prix standard (open, close, high, low, hl2, hlc3, ohlc4, hlcc4, volume).Si source mélange des prix standard et des identifiants d’indicateurs, symbol s’applique uniquement aux combinaisons basées sur des prix standard.Si source ne contient que des identifiants d’indicateurs, symbol est ignoré.Si symbol est omis, le bloc hérite du symbole principal défini dans [backtest].Pour le format, les tableaux et l’alignement, voir Exchanges, Symboles et Timeframes. |
timeframeTexte ou Tableau Optionnel | Timeframe sur lequel cet indicateur est calculé. Si timeframe est omis, le calcul se fait sur le timeframe principal de la grille défini dans [backtest].Pour les formats acceptés et les règles d’alignement entre timeframes, voir Exchanges, Symboles et Timeframes. |
Variables disponibles
Vous pouvez utiliser directement les identifiants ci‑dessous dans vos expressions. Le bloc MACD expose jusqu’à trois séries numériques (ligne MACD, ligne Signal, Histogramme), leurs longueurs et types de moyennes, ainsi que la source d’entrée, le symbole et le timeframe.
Supposons le bloc configuré ainsi :
[[macd]]
macd_id = "macd_line"
signal_id = "macd_signal"
hist_id = "macd_hist"Alors :
| Variable | Description |
|---|---|
macd_line oumacd_line[0]Décimal | Valeur actuelle de la ligne MACD. |
macd_line[n]Décimal | Valeur de la MACD il y a n bougies. |
macd_signal oumacd_signal[0]Décimal | Valeur actuelle de la ligne Signal. |
macd_signal[n]Décimal | Valeur du Signal il y a n bougies. |
macd_hist oumacd_hist[0]Décimal | Valeur actuelle de l’Histogramme. |
macd_hist[n]Décimal | Valeur de l’Histogramme il y a n bougies. |
macd_line.fast_lenDécimal | Longueur de la moyenne rapide. |
macd_line.slow_lenDécimal | Longueur de la moyenne lente. |
macd_line.signal_lenDécimal | Longueur de la moyenne utilisée pour le signal (disponible si une série Signal est définie). |
macd_line.typeTexte | Type de moyenne utilisé pour la ligne MACD ("ema", "sma", etc.). |
macd_signal.typeTexte | Type de moyenne utilisé pour la ligne Signal (si signal_id est défini). |
macd_line.sourcemacd_signal.sourcemacd_hist.sourceTexte | Nom de la série d’entrée. |
macd_line.symbolmacd_signal.symbolmacd_hist.symbolTexte | Symbole de marché utilisé. |
macd_line.timeframemacd_signal.timeframemacd_hist.timeframeTexte | Timeframe utilisé. |
Notes
- Les variables numériques se combinent librement (arithmétique, comparaisons, opérateurs logiques).
- Les variables textuelles sont des chaînes destinées aux comparaisons d’égalité/inégalité uniquement.