Commodity Channel Index (cci)
Le Commodity Channel Index (CCI) situe la valeur courante d’une série par rapport à sa moyenne récente, en tenant compte de la dispersion habituelle de cette série sur la même fenêtre. Il produit un oscillateur non borné centré sur zéro. Une valeur positive signifie que la source est au-dessus de sa moyenne ; une valeur négative, qu’elle est en dessous.
L’amplitude du CCI exprime la taille de cet écart relativement à la dispersion récente. Un même écart absolu produit donc une valeur plus forte lorsque la série est habituellement stable, et plus faible lorsqu’elle est habituellement dispersée. length définit la fenêtre commune utilisée pour la moyenne et la dispersion. Le CCI décrit ainsi un écart normalisé, et non une distance exprimée dans l’unité de la source.
Déclaration du bloc
Une stratégie peut contenir plusieurs blocs [[cci]]. Chaque bloc produit une série numérique : la valeur du CCI.
Exemples
Configuration minimale
Ce bloc calcule le CCI à partir de la source par défaut hlc3. Comme length est omis, le bloc utilise la longueur par défaut 20.
[[cci]]
id = "cci"Configuration fixe personnalisée
Ce bloc utilise une valeur personnalisée pour length.
[[cci]]
id = "cci"
length = 30Recherche de la longueur optimale
Ce bloc explore une plage de valeurs pour length afin d’identifier la longueur la plus performante. Comme source est omise, le bloc utilise la source par défaut hlc3.
[[cci]]
id = "cci"
length.start = 10
length.stop = 30Filtre de momentum avec seuil
Cet exemple utilise le CCI comme filtre de momentum. cci_threshold définit le niveau minimal à dépasser pour que la condition devienne vraie. Des seuils plus faibles rendent le filtre plus permissif, tandis que des seuils plus élevés ne retiennent que des phases où l’écart à la dynamique récente est plus marqué.
[[constant]]
id = "cci_threshold"
start = 50
stop = 150
step = 10
[[cci]]
id = "cci"
length = 20
[[condition]]
id = "cci_filter"
condition = "cci > cci_threshold"
next_block_id = "..."Symbole et timeframe dédiés
Ce bloc CCI utilise la série de prix journalière de BINANCE:ETHUSDT, 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.
[[cci]]
id = "cci"
symbol = "BINANCE:ETHUSDT"
timeframe = "D"
length = 20Paramètres
| Paramètre | Description |
|---|---|
idChaîne Obligatoire | Nom unique de la série CCI. |
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 : "hlc3" |
lengthEntier Optionnel | Fenêtre d’observation, doit être ≥ 2 lorsqu’elle est renseignée. Si length est omis, la valeur par défaut est 20.Usage : • Fixe : length = valeur• Grille : – length.start = valeur_minimale– length.stop = valeur_maximale– length.step = valeur (optionnel, par défaut 1) |
symbolChaîne 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).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 l’alignement, voir Exchanges, Symboles et Timeframes. |
timeframeChaîne 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
Référencez directement l’identifiant ci‑dessous dans vos expressions. Le bloc CCI expose une série numérique et ses paramètres (length, source, symbol, timeframe).
Supposons le bloc configuré ainsi :
[[cci]]
id = "cci"Alors :
| Variable | Description |
|---|---|
cci ou cci[0]Décimal | Valeur courante du CCI. |
cci[n]Décimal | Valeur du CCI il y a n bougies. |
cci.lengthDécimal | Longueur de fenêtre courante (fixe ou issue d’une plage). |
cci.sourceChaîne | Nom de la source (ex. hlc3, close, ou l’id d’un autre indicateur). |
cci.symbolChaîne | Symbole utilisé (format d’affichage). |
cci.timeframeChaîne | Unité de temps utilisée pour ce CCI. |
Notes
- La série retourne
natant que l’historique disponible ne permet pas encore de calculer le CCI, ainsi que dans certaines fenêtres où l’écart mesuré devient nul.