Average Directional Index (adx)
L’Average Directional Index (ADX) mesure à quel point une direction domine les mouvements récents, sans indiquer si cette direction est haussière ou baissière. Il produit une série comprise entre 0 et 100. Une valeur élevée correspond à une nette dominance directionnelle ; une valeur faible à des mouvements haussiers et baissiers qui se compensent davantage. Un même niveau d’ADX peut donc décrire aussi bien une hausse qu’une baisse.
L’indicateur compare une composante haussière (+DI) et une composante baissière (-DI), toutes deux rapportées à l’amplitude réelle des mouvements. di_length définit l’horizon sur lequel ces composantes sont lissées, puis adx_length lisse leur contraste relatif pour former l’ADX. La sortie exprime ainsi le degré de structure directionnelle du mouvement, indépendamment de son sens.
Déclaration du bloc
Une stratégie peut contenir plusieurs blocs [[adx]]. Chaque bloc produit une série numérique qui est la valeur de l’ADX.
Le bloc [[adx]] ne possède pas de paramètre source car l’ADX est toujours calculé à partir des prix high, low et close des bougies.
Exemples
Configuration minimale
Ce bloc utilise les longueurs par défaut de l’ADX : 14 pour di_length et 14 pour adx_length.
[[adx]]
id = "adx"Configuration fixe personnalisée
Ce bloc utilise des valeurs personnalisées pour di_length et adx_length.
[[adx]]
id = "adx"
di_length = 15
adx_length = 16Recherche des longueurs optimales
Ce bloc explore des plages de valeurs pour di_length et adx_length afin d’identifier la combinaison la plus performante.
[[adx]]
id = "adx"
di_length.start = 10
di_length.stop = 20
adx_length.start = 10
adx_length.stop = 20Filtre de tendance avec seuil
Cet exemple utilise l’ADX comme filtre d’entrée. Le bloc [[constant]] définit un seuil nommé adx_threshold, dont la valeur varie de 20.0 à 30.0 pendant le grid search : un backtest est exécuté pour chaque valeur de la plage. A chaque bougie, le bloc [[condition]] compare l’ADX à ce seuil et ne laisse la stratégie passer au bloc suivant que lorsque adx > adx_threshold, c’est-à-dire lorsque le marché est suffisamment en tendance. Le classement des résultats montre ensuite quelle valeur de seuil donne les meilleures performances.
[[adx]]
id = "adx"
[[constant]]
id = "adx_threshold"
start = 20.0
stop = 30.0
[[condition]]
id = "trend_filter"
condition = "adx > adx_threshold"
next_block_id = "..."Symbole et timeframe dédiés
Ce bloc ADX 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.
[[adx]]
id = "adx"
symbol = "BINANCE:ETHUSDT"
timeframe = "D"Paramètres
| Paramètre | Description |
|---|---|
idTexte Obligatoire | Nom unique identifiant la série ADX ; le bloc expose une série numérique portant cet identifiant. |
di_lengthEntier Optionnel | Nombre de bougies sur lequel les poussées haussières et baissières sont moyennées pour obtenir +DI et -DI ; doit être ≥ 1 lorsqu’il est renseigné. Si di_length est omis, la valeur par défaut est 14.Usage : • Fixe : di_length = valeur• Grille : – di_length.start = valeur_minimale– di_length.stop = valeur_maximale– di_length.step = valeur (optionnel, par défaut 1) |
adx_lengthEntier Optionnel | Nombre de bougies sur lequel l’écart entre +DI et -DI est lissé pour donner la valeur de l’ADX ; doit être ≥ 1 lorsqu’il est renseigné. Si adx_length est omis, la valeur par défaut est 14.Usage : • Fixe : adx_length = valeur• Grille : – adx_length.start = valeur_minimale– adx_length.stop = valeur_maximale– adx_length.step = valeur (optionnel, par défaut 1) |
symbolTexte ou Tableau Optionnel | Symbole de marché à partir duquel l’ADX 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
Le bloc ADX expose la série ADX et, en lecture seule, ses longueurs de calcul, ses sources d’entrée, son symbole et son timeframe.
Supposons le bloc configuré ainsi :
[[adx]]
id = "adx"Alors :
| Variable | Description |
|---|---|
adx ou adx[0]Décimal | Valeur actuelle de l’ADX. |
adx[n]Décimal | Valeur de l’ADX il y a n bougies. |
adx.di_lengthDécimal | Fenêtre de calcul DI utilisée pour adx. |
adx.adx_lengthDécimal | Fenêtre de lissage de l’ADX utilisée pour adx. |
adx.high_sourceadx.low_sourceadx.close_sourceTexte | Nom des séries d’entrée high, low et close utilisées par la série ADX. |
adx.symbolTexte | Symbole de marché utilisé pour la série ADX. |
adx.timeframeTexte | Timeframe utilisé pour la série ADX. |
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.