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 :
| Code | Nom | Description |
|---|---|---|
sma | Simple Moving Average | Moyenne simple où chaque valeur de la période a le même poids. |
ema | Exponential Moving Average | Moyenne exponentielle qui donne plus de poids aux valeurs récentes et réagit plus vite qu’une SMA. |
wma | Weighted Moving Average | Moyenne pondérée qui accentue les valeurs récentes pour suivre plus rapidement les variations de la série. |
dema | Double EMA | Moyenne fondée sur une double EMA, utilisée pour réduire le retard d’une EMA classique. |
tema | Triple EMA | Moyenne fondée sur une triple EMA, encore plus réactive qu’une DEMA. |
trima | Triangular MA | Moyenne triangulaire qui lisse davantage la série en donnant plus d’importance au centre de la période. |
smma | Smoothed MA | Moyenne lissée qui évolue plus lentement et atténue fortement les variations courtes. |
zlema | Zero‑Lag EMA | Moyenne exponentielle corrigée pour limiter le retard du lissage et rester plus proche du mouvement en cours. |
rma | Running MA | Moyenne 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 = 20Source spécifique
Ce bloc calcule une WMA de 34 périodes sur la source hl2.
[[moving_average]]
id = "ma"
source = "hl2"
type = "wma"
length = 34Source 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 = 10Recherche de la source optimale
Ce bloc compare plusieurs sources de prix.
[[moving_average]]
id = "ma"
source = ["close", "hl2", "ohlc4"]
type = "ema"
length = 21Recherche 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 = 5Recherche du type optimal
Ce bloc compare plusieurs types de moyenne mobile.
[[moving_average]]
id = "ma"
type = ["sma", "ema", "wma"]
length = 20Utiliser 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 = 3Recherche 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 = 5Timeframe 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è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. 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 :
[[moving_average]]
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.