Average True Range (atr)
L’Average True Range (ATR) mesure l’amplitude typique des variations récentes d’un marché, sans en indiquer la direction. Il produit une série non négative exprimée dans l’unité du prix. Une valeur élevée correspond à des mouvements récents de grande amplitude ; une valeur faible à des mouvements plus resserrés. La série peut atteindre zéro, mais ne devient jamais négative.
L’amplitude de chaque bougie est mesurée par le True Range, qui tient compte à la fois de l’écart entre high et low et des éventuels sauts par rapport à la clôture précédente. Ces amplitudes sont ensuite lissées récursivement selon la méthode de Wilder ; length règle la vitesse à laquelle les nouvelles valeurs influencent la série. L’ATR exprime ainsi une distance de prix caractéristique à chaque bougie, à lire dans l’unité et à l’échelle du marché étudié.
Déclaration du bloc
Une stratégie peut contenir plusieurs blocs [[atr]]. Chaque bloc [[atr]] produit une série d’ATR distincte, identifiée par la valeur de son champ id.
Le bloc [[atr]] ne possède pas de paramètre source car l’ATR est toujours calculé à partir des prix high, low et close des bougies.
Exemples
Configuration minimale
Ce bloc utilise la longueur ATR par défaut 14 et s’appuie sur les prix high, low et close du symbole et du timeframe principaux définis dans [backtest].
[[atr]]
id = "atr"Configuration fixe personnalisée
Ce bloc utilise une valeur personnalisée pour length.
[[atr]]
id = "atr"
length = 18Recherche de la longueur optimale
Ce bloc explore une plage de valeurs pour length afin d’identifier la longueur la plus performante.
[[atr]]
id = "atr"
length.start = 10
length.stop = 20Filtre de volatilité adaptatif
Cet exemple compare l’ATR courant à sa propre moyenne récente pour repérer les moments où la volatilité dépasse son niveau habituel. atr_baseline est une moyenne mobile simple de atr sur 100 bougies : elle représente la volatilité de référence des dernières bougies. atr_ratio_min fixe de combien l’ATR doit dépasser cette référence pour que la condition se déclenche.
La condition atr / atr_baseline > atr_ratio_min est donc vraie lorsque l’ATR vaut plus de atr_ratio_min fois sa référence : avec 1.1, l’ATR doit être au moins 10 % au-dessus de sa moyenne ; avec 1.8, au moins 80 % au-dessus. La grille 1.1 à 1.8 explore ces seuils. Un seuil proche de 1.0 laisse passer la plupart des bougies ; un seuil plus élevé ne retient que les phases nettement plus volatiles que la moyenne récente.
[[constant]]
id = "atr_ratio_min"
start = 1.1
stop = 1.8
step = 0.1
[[atr]]
id = "atr"
[[ma]]
id = "atr_baseline"
source = "atr"
type = "sma"
length = 100
[[condition]]
id = "volatility_filter"
condition = "atr / atr_baseline > atr_ratio_min"
next_block_id = "..."Symbole et timeframe dédiés
Ce bloc ATR utilise les bougies journalières de BINANCE:ETHUSDT. Les prix high, low et close sont extraits de ce symbole et de ce timeframe, 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.
[[atr]]
id = "atr"
symbol = "BINANCE:ETHUSDT"
timeframe = "D"Paramètres
| Paramètre | Description |
|---|---|
idTexte Obligatoire | Nom unique utilisé pour identifier la série ATR. |
lengthEntier Optionnel | Période de calcul de l’ATR, doit être ≥ 1 lorsqu’elle est renseignée. Si length est omis, la valeur par défaut est 14.Usage : • Fixe : length = valeur• Grille : – length.start = valeur_minimale– length.stop = valeur_maximale– length.step = valeur (optionnel, par défaut 1) |
symbolTexte ou Tableau Optionnel | Symbole de marché à partir duquel l’ATR lit les bougies (prix high, low, close). Pour le format et les règles d’alignement, voir le guide 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 ATR expose une série numérique et sa longueur, ainsi que les sources d’entrée, le symbole et le timeframe.
Supposons le bloc configuré ainsi :
[[atr]]
id = "atr"Alors :
| Variable | Description |
|---|---|
atr ou atr[0]Décimal | Valeur actuelle de l’ATR. |
atr[n]Décimal | Valeur de l’ATR il y a n bougies. |
atr.lengthDécimal | Longueur utilisée. |
atr.high_sourceatr.low_sourceatr.close_sourceTexte | Nom de la série d’entrée high. Nom de la série d’entrée low. Nom de la série d’entrée close. |
atr.symbolTexte | Symbole de marché utilisé. |
atr.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.