Keltner Channels Width (kcw)
[[kcw]] condense l’enveloppe des Keltner Channels en une seule série : la distance entre la bande supérieure et la bande inférieure, divisée par leur ligne médiane. Lorsque cette ligne médiane et l’amplitude des bandes utilisent des unités compatibles, typiquement avec une source de prix positive, une valeur élevée décrit un canal large relativement à son niveau central, tandis qu’une valeur faible décrit un canal resserré. La série mesure donc l’écartement de l’enveloppe, et non la position du prix à l’intérieur du canal.
Dans ce cas, la valeur produite se lit comme un ratio, pas comme un pourcentage affiché : 0.025 signifie que la largeur du canal représente 2.5 % de la ligne médiane. Cette lecture relative retire l’effet du niveau absolu de la série de prix. Lorsque source utilise une autre unité, le quotient ne possède plus cette interprétation relative habituelle.
Déclaration du bloc
Une stratégie peut contenir plusieurs blocs [[kcw]]. Chaque bloc produit une seule série numérique, identifiée par id.
Le bloc lit source pour calculer la ligne médiane. Il lit aussi high, low et close pour calculer le range des Keltner Channels. Lorsque use_true_range = false, close reste exposé comme source interne, mais le range utilisé est high - low.
Exemples
Configuration minimale
Ce bloc calcule la largeur des Keltner Channels avec les valeurs par défaut du bloc, soit source = "close", length = 20, multiplier = 2.0 et use_true_range = true.
[[kcw]]
id = "kcw"Configuration fixe personnalisée
Ce bloc utilise hl2 pour la ligne médiane, une fenêtre de 14 bougies, un multiplicateur de 1.5, et le range simple high - low au lieu du True Range.
[[kcw]]
id = "kcw"
source = "hl2"
length = 14
multiplier = 1.5
use_true_range = falseRecherche de la période et du multiplicateur optimaux
Ce bloc explore des plages de valeurs pour length et multiplier afin d’identifier la combinaison la plus pertinente pour mesurer les phases d’expansion ou de contraction du canal.
[[kcw]]
id = "kcw"
length.start = 10
length.stop = 30
length.step = 1
multiplier.start = 1.0
multiplier.stop = 3.0
multiplier.step = 0.25Filtre de volatilité
Cet exemple utilise kcw comme filtre de volatilité. Le bloc [[constant]] définit un seuil nommé kcw_threshold, dont la valeur varie de 0.01 à 0.04 pendant le grid search. A chaque bougie, le bloc [[condition]] ne laisse la stratégie passer au bloc suivant que lorsque kcw > kcw_threshold, c’est-à-dire lorsque le canal est suffisamment large par rapport à sa ligne médiane.
[[kcw]]
id = "kcw"
[[constant]]
id = "kcw_threshold"
start = 0.01
stop = 0.04
step = 0.005
[[condition]]
id = "volatility_filter"
condition = "kcw > kcw_threshold"
next_block_id = "..."Symbole et timeframe dédiés
Ce bloc Keltner Channels Width utilise les bougies journalières de BINANCE:ETHUSDT. La ligne médiane et les prix high, low et close nécessaires au range 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.
[[kcw]]
id = "kcw"
symbol = "BINANCE:ETHUSDT"
timeframe = "D"Paramètres
| Paramètre | Description |
|---|---|
idTexte Obligatoire | Nom unique identifiant la série Keltner Channels Width ; le bloc expose une série numérique portant cet identifiant. |
sourceTexte ou Tableau Optionnel | Série d’entrée utilisée pour calculer la ligne médiane EMA. 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" |
lengthEntier Optionnel | Période utilisée pour l’EMA de la ligne médiane et l’EMA du range ; doit être supérieure ou égale à 1. Valeur par défaut : 20.Usage : • Fixe : length = valeur avec valeur >= 1• Grille : – length.start = valeur_minimale avec valeur_minimale >= 1– length.stop = valeur_maximale– length.step = valeur (optionnel, par défaut 1) |
multiplierDécimal Optionnel | Multiplicateur appliqué à l’EMA du range avant de calculer la largeur du canal ; doit être strictement supérieur à 0. Valeur par défaut : 2.0.Usage : • Fixe : multiplier = 2.0• Grille : – multiplier.start = valeur_minimale avec valeur_minimale > 0– multiplier.stop = valeur_maximale– multiplier.step = valeur (optionnel, par défaut 1) |
use_true_rangeBooléen Optionnel | Choix du range utilisé pour l’écartement du canal. Si true, le bloc utilise le True Range. Si false, il utilise high - low.Valeur par défaut : true |
symbolTexte ou Tableau Optionnel | Symbole(s) de marché utilisé(s) pour les prix high, low et close nécessaires au range, et pour source lorsque source contient des prix standard.Si source référence un autre indicateur, symbol ne remplace pas cette série source ; il continue toutefois à s’appliquer aux prix high, low et close utilisés pour l’écartement du canal.S’il est omis, le bloc hérite du symbole défini dans [backtest].Pour le format, les tableaux et l’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
Le bloc Keltner Channels Width expose une série numérique, ses paramètres, la série d’entrée de la ligne médiane, les sources de prix utilisées pour le range, le symbole et le timeframe.
Supposons le bloc configuré ainsi :
[[kcw]]
id = "kcw"Alors :
| Variable | Description |
|---|---|
kcw ou kcw[0]Décimal | Valeur actuelle de la largeur relative des Keltner Channels. |
kcw[n]Décimal | Valeur de la largeur relative il y a n bougies. |
kcw.lengthDécimal | Période utilisée pour l’EMA de la ligne médiane et l’EMA du range. |
kcw.multiplierDécimal | Multiplicateur appliqué à l’EMA du range. |
kcw.use_true_rangeDécimal | Mode de calcul du range : 1 lorsque le True Range est utilisé, 0 lorsque le bloc utilise high - low. |
kcw.sourceTexte | Nom de la série utilisée pour la ligne médiane EMA. |
kcw.high_sourceTexte | Nom de la série high utilisée pour calculer le range. |
kcw.low_sourceTexte | Nom de la série low utilisée pour calculer le range. |
kcw.close_sourceTexte | Nom de la série close utilisée pour calculer le True Range lorsque use_true_range = true. |
kcw.symbolTexte | Symbole de marché utilisé pour cette sortie. |
kcw.timeframeTexte | Timeframe utilisé pour cette sortie. |
Notes
- La largeur relative est calculée par
(canal supérieur - canal inférieur) / ligne médiane. - Lorsque la ligne médiane vaut
0, la valeur de la série n’est pas disponible (NaN). - Lorsque la ligne médiane est négative, le ratio est négatif et la lecture habituelle d’une largeur positive ne s’applique pas directement.
- L’amplitude des bandes provient des prix
highetlow, ainsi que decloselorsqueuse_true_range = true, tandis que la ligne médiane provient desource. Sisourceest le volume ou un autre indicateur exprimé dans une unité différente, le quotient mélange des unités incompatibles et ne peut pas être interprété comme une largeur relative sans dimension ni comme un pourcentage. - 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.