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 = 30

Recherche 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  = 30

Filtre 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    = 20

Paramètres

ParamètreDescription
id
 Chaîne
 Obligatoire
Nom unique de la série CCI.
source
 Texte
 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"
length
 Entier
 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)
symbol
 Chaî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.
timeframe
 Chaî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 :

VariableDescription
cci ou cci[0]
Décimal
Valeur courante du CCI.
cci[n]
Décimal
Valeur du CCI il y a n bougies.
cci.length
Décimal
Longueur de fenêtre courante (fixe ou issue d’une plage).
cci.source
Chaîne
Nom de la source (ex. hlc3, close, ou l’id d’un autre indicateur).
cci.symbol
Chaîne
Symbole utilisé (format d’affichage).
cci.timeframe
Chaîne
Unité de temps utilisée pour ce CCI.

Notes

  • La série retourne na tant que l’historique disponible ne permet pas encore de calculer le CCI, ainsi que dans certaines fenêtres où l’écart mesuré devient nul.