Moving Averages

[[moving_average]] lisse une série afin d’en réduire les variations les plus courtes. Il sert à visualiser la tendance récente, à comparer le niveau actuel du prix à sa moyenne, ou à construire des signaux à partir de croisements et d’écarts.

Toutes les moyennes mobiles ne réagissent pas de la même manière. Selon le type choisi, la courbe suit plus ou moins rapidement les variations récentes. La longueur agit elle aussi directement sur le résultat : une moyenne plus courte reste plus proche de la série d’origine, tandis qu’une moyenne plus longue produit une courbe plus stable.

Le bloc [[moving_average]] produit une série numérique qui peut être utilisée directement dans une condition ou servir de base à d’autres calculs. Il permet aussi de comparer plusieurs types, longueurs, symboles ou timeframes dans une recherche par grille.

Ce bloc prend en charge plusieurs variantes :

CodeNomDescription
smaSimple Moving AverageMoyenne simple où chaque valeur de la période a le même poids.
emaExponential Moving AverageMoyenne exponentielle qui donne plus de poids aux valeurs récentes et réagit plus vite qu’une SMA.
wmaWeighted Moving AverageMoyenne pondérée qui accentue les valeurs récentes pour suivre plus rapidement les variations de la série.
demaDouble EMAMoyenne fondée sur une double EMA, utilisée pour réduire le retard d’une EMA classique.
temaTriple EMAMoyenne fondée sur une triple EMA, encore plus réactive qu’une DEMA.
trimaTriangular MAMoyenne triangulaire qui lisse davantage la série en donnant plus d’importance au centre de la période.
smmaSmoothed MAMoyenne lissée qui évolue plus lentement et atténue fortement les variations courtes.
zlemaZero‑Lag EMAMoyenne exponentielle corrigée pour limiter le retard du lissage et rester plus proche du mouvement en cours.
rmaRunning MAMoyenne de Wilder, plus progressive qu’une EMA classique et souvent utilisée dans d’autres indicateurs.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[moving_average]]. 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.

[[moving_average]]
id     = "ma"
type   = "ema"
length = 20

Source spécifique

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

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

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

[[moving_average]]
id     = "rsi_signal"
source = "rsi"
type   = "sma"
length = 10

Recherche de la source optimale

Ce bloc compare plusieurs sources de prix.

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

Recherche de la longueur optimale

Ce bloc explore une plage de valeurs pour length.

[[moving_average]]
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.

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

Utiliser un décalage (offset)

Ce bloc calcule une EMA et projette la série de 3 bougies vers l’avant.

[[moving_average]]
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.

[[moving_average]]
id           = "ma"
type         = "ema"
length       = 50
offset.start = 0
offset.stop  = 5

Timeframe dédié

Ce bloc calcule une EMA sur le timeframe journalier (timeframe = "D"), et non sur le timeframe principal défini dans [backtest]. Voir la page Exchanges, Symboles et Timeframes pour les règles d’alignement entre ce timeframe et le timeframe principal.

[[moving_average]]
id        = "ma"
type      = "ema"
length    = 50
timeframe = "D"

Symbole spécifique

Ce bloc lit sa série sur le symbole spécifique BINANCE:ETHUSDT. Voir la page Exchanges, Symboles et Timeframes pour l’alignement avec le symbole principal.

[[moving_average]]
id     = "ma"
type   = "ema"
length = 50
symbol = "BINANCE:ETHUSDT"

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.
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 :

[[moving_average]]
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.