Moving Averages (ma)
[[ma]] transforme une série en une ligne lissée qui atténue ses variations les plus courtes et fait ressortir son évolution générale. Chaque valeur résume les observations récentes de source sur la période définie par length. Une longueur courte suit la série de plus près, tandis qu’une longueur élevée produit une ligne plus lente et plus régulière.
Le type de moyenne détermine la manière dont les observations sont pondérées ou combinées. Deux moyennes de même longueur peuvent donc réagir différemment aux mêmes données. Le bloc produit une seule série numérique. Une valeur positive de offset décale cette série vers la droite sur l’axe temporel : sur une bougie donnée, la valeur obtenue est celle qui avait été calculée offset bougies plus tôt. Ce décalage ne constitue pas une prévision.
Types de moyenne mobile
Le bloc prend en charge les variantes suivantes :
| Code | Nom | Description |
|---|---|---|
sma | Simple Moving Average | Moyenne arithmétique des valeurs de la période, avec un poids identique pour chaque observation. |
ema | Exponential Moving Average | Moyenne à lissage exponentiel, dans laquelle le poids des valeurs diminue progressivement avec leur ancienneté. |
wma | Weighted Moving Average | Moyenne pondérée dans laquelle chaque valeur reçoit un poids déterminé par sa position dans la période. |
hma | Hull Moving Average | Moyenne de Hull construite à partir de WMA successives afin de réduire le retard tout en conservant une courbe lissée. |
dema | Double EMA | Moyenne construite à partir de deux niveaux de lissage exponentiel appliqués à la même série. |
tema | Triple EMA | Moyenne construite à partir de trois niveaux de lissage exponentiel successifs appliqués à la même série. |
trima | Triangular MA | Moyenne triangulaire dont la pondération est concentrée autour du centre de la période de calcul. |
smma | Smoothed MA | Moyenne lissée récursive, calculée en prolongeant la valeur précédente avec la nouvelle observation. |
zlema | Zero-Lag EMA | Moyenne exponentielle appliquée à une série corrigée du décalage lié à la période de calcul. |
rma | Running MA | Moyenne récursive de Wilder, fondée sur un facteur de lissage lié à la longueur de la période. |
Déclaration du bloc
Une stratégie peut contenir plusieurs blocs [[ma]]. Chaque bloc génère une série numérique correspondant à la moyenne mobile.
Exemples
Configuration minimale
Ce bloc calcule une EMA de 20 périodes sur la série close.
[[ma]]
id = "ma"
type = "ema"
length = 20Source spécifique
Ce bloc calcule une WMA de 34 périodes sur la source hl2.
[[ma]]
id = "ma"
source = "hl2"
type = "wma"
length = 34Hull Moving Average
Ce bloc calcule une HMA de 55 périodes sur la série close.
[[ma]]
id = "hma_close"
source = "close"
type = "hma"
length = 55Source issue d’un autre indicateur
Ce bloc calcule une SMA de 10 périodes sur la série produite par le bloc rsi.
[[rsi]]
id = "rsi"
length = 14
[[ma]]
id = "rsi_signal"
source = "rsi"
type = "sma"
length = 10Recherche de la source optimale
Ce bloc compare plusieurs sources de prix.
[[ma]]
id = "ma"
source = ["close", "hl2", "ohlc4"]
type = "ema"
length = 21Recherche de la longueur optimale
Ce bloc explore une plage de valeurs pour length.
[[ma]]
id = "ma"
type = "ema"
length.start = 10
length.stop = 50
length.step = 5Recherche du type optimal
Ce bloc compare plusieurs types de moyenne mobile.
[[ma]]
id = "ma"
type = ["sma", "ema", "wma", "hma"]
length = 20Utiliser un décalage (offset)
Ce bloc calcule une EMA et retarde ses valeurs de 3 bougies. Sur chaque bougie, la série contient donc la valeur de l’EMA calculée 3 bougies plus tôt.
[[ma]]
id = "ma"
type = "ema"
length = 50
offset = 3Recherche du décalage optimal
Ce bloc explore plusieurs valeurs pour offset afin d’identifier le décalage le plus pertinent.
[[ma]]
id = "ma"
type = "ema"
length = 50
offset.start = 0
offset.stop = 5Symbole et timeframe dédiés
Ce bloc calcule une EMA sur la série journalière de BINANCE:ETHUSDT, indépendamment du symbole et du timeframe principaux définis dans [backtest]. Voir la page Exchanges, Symboles et Timeframes pour les règles d’alignement.
[[ma]]
id = "ma"
type = "ema"
length = 50
symbol = "BINANCE:ETHUSDT"
timeframe = "D"Paramètres
| Paramètre | Description |
|---|---|
idTexte Obligatoire | Nom unique pour la série de moyenne mobile. |
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" |
typeTexte ou Tableau Obligatoire | Type de moyenne (voir tableau des codes ci‑dessus). |
lengthEntier Obligatoire | Fenêtre de calcul, doit être ≥ 1. Usage : • Fixe : length = valeur• Grille : – length.start = valeur_minimale– length.stop = valeur_maximale– length.step = valeur (optionnel, par défaut 1) |
offsetEntier Optionnel | Décalage horizontal de la série, doit être ≥ 0. Une valeur positive retarde la moyenne mobile d’autant de bougies : avec offset = n, la valeur disponible sur la bougie courante est celle calculée n bougies plus tôt. Ce décalage n’utilise aucune donnée future.Valeur par défaut : 0 |
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).Les symboles doivent inclure le préfixe d’exchange au format EXCHANGE:SYMBOL (par exemple "KUCOIN:BTCUSDT").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 défini dans [backtest].Pour le format, les tableaux et les règles d’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 de moyenne mobile expose une série numérique et ses paramètres (type, longueur, décalage), ainsi que la source d’entrée, le symbole et le timeframe.
Supposons le bloc configuré ainsi :
[[ma]]
id = "ma"
type = "ema"
length = 20Alors :
| Variable | Description |
|---|---|
ma ou ma[0]Décimal | Valeur actuelle de la moyenne mobile. |
ma[n]Décimal | Valeur de la moyenne mobile il y a n bougies. |
ma.typeTexte | Type de moyenne ("ema", "sma"…). |
ma.lengthDécimal | Longueur utilisée. |
ma.offsetDécimal | Décalage appliqué. |
ma.sourceTexte | Nom de la série d’entrée (ex. close, hlc3 ou l’id d’un autre indicateur). |
ma.symbolTexte | Symbole de marché utilisé. |
ma.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.