Moving Average Convergence Divergence (macd)
[[macd]] compare une moyenne rapide et une moyenne lente calculées sur la même série. La ligne MACD correspond à la différence entre ces moyennes : elle est positive lorsque la moyenne rapide se situe au-dessus de la moyenne lente, négative lorsqu’elle se situe en dessous et nulle lorsqu’elles sont égales. Sa distance à zéro représente ainsi l’ampleur de l’écart entre ces deux lectures de la série.
La ligne Signal est une moyenne mobile de la ligne MACD : elle représente une lecture moyennée de cet écart. L’histogramme correspond à MACD - Signal. Il est positif lorsque la ligne MACD se situe au-dessus de la ligne Signal, négatif lorsqu’elle se situe en dessous et nul lorsqu’elles sont égales. Sa valeur absolue mesure la distance entre les deux lignes : elle augmente lorsqu’elles s’écartent et diminue lorsqu’elles se rapprochent.
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 devient vraie uniquement lorsque la ligne MACD reste au-dessus de zéro et que l’histogramme est positif. Le signal d’entrée ne passe donc 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", "hma", "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.