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 :

CodeNomDescription
smaSimple Moving AverageMoyenne arithmétique des valeurs de la période, avec un poids identique pour chaque observation.
emaExponential Moving AverageMoyenne à lissage exponentiel, dans laquelle le poids des valeurs diminue progressivement avec leur ancienneté.
wmaWeighted Moving AverageMoyenne pondérée dans laquelle chaque valeur reçoit un poids déterminé par sa position dans la période.
hmaHull Moving AverageMoyenne de Hull construite à partir de WMA successives afin de réduire le retard tout en conservant une courbe lissée.
demaDouble EMAMoyenne construite à partir de deux niveaux de lissage exponentiel appliqués à la même série.
temaTriple EMAMoyenne construite à partir de trois niveaux de lissage exponentiel successifs appliqués à la même série.
trimaTriangular MAMoyenne triangulaire dont la pondération est concentrée autour du centre de la période de calcul.
smmaSmoothed MAMoyenne lissée récursive, calculée en prolongeant la valeur précédente avec la nouvelle observation.
zlemaZero-Lag EMAMoyenne exponentielle appliquée à une série corrigée du décalage lié à la période de calcul.
rmaRunning MAMoyenne 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 = 20

Source spécifique

Ce bloc calcule une WMA de 34 périodes sur la source hl2.

[[ma]]
id     = "ma"
source = "hl2"
type   = "wma"
length = 34

Hull 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 = 55

Source 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 = 10

Recherche de la source optimale

Ce bloc compare plusieurs sources de prix.

[[ma]]
id     = "ma"
source = ["close", "hl2", "ohlc4"]
type   = "ema"
length = 21

Recherche 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  = 5

Recherche du type optimal

Ce bloc compare plusieurs types de moyenne mobile.

[[ma]]
id     = "ma"
type   = ["sma", "ema", "wma", "hma"]
length = 20

Utiliser 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 = 3

Recherche 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  = 5

Symbole 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ètreDescription
id
 Texte
 Obligatoire
Nom unique pour la série de moyenne mobile.
source
 Texte
 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"
type
 Texte
 ou Tableau
 Obligatoire
Type de moyenne (voir tableau des codes ci‑dessus).
length
 Entier
 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)
offset
 Entier
 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
symbol
 Texte
 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.
timeframe
 Texte
 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 = 20

Alors :

VariableDescription
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.type
Texte
Type de moyenne ("ema", "sma"…).
ma.length
Décimal
Longueur utilisée.
ma.offset
Décimal
Décalage appliqué.
ma.source
Texte
Nom de la série d’entrée (ex. close, hlc3 ou l’id d’un autre indicateur).
ma.symbol
Texte
Symbole de marché utilisé.
ma.timeframe
Texte
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.