Chande Momentum Oscillator (cmo)

[[cmo]] mesure l’équilibre entre les hausses et les baisses récentes sur une échelle de -100 à +100. Vous l’utilisez pour lire l’intensité du momentum, filtrer des signaux ou comparer plusieurs réglages dans une recherche par grille.

Une valeur positive signifie que les variations haussières dominent sur la fenêtre observée. Une valeur négative signifie que les variations baissières dominent. Plus le CMO se rapproche des extrêmes, plus le déséquilibre entre pression haussière et pression baissière est marqué. Une valeur proche de 0 indique au contraire un marché plus partagé, sans dominance nette sur la période.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[cmo]]. Chaque bloc génère une série numérique représentant la valeur du CMO.

Exemples

Configuration minimale

Ce bloc calcule le CMO à partir de la source par défaut close. Comme length est omis, le bloc utilise la longueur par défaut 20.

[[cmo]]
id = "cmo"

Configuration fixe personnalisée

Ce bloc utilise une valeur personnalisée pour length.

[[cmo]]
id     = "cmo"
length = 18

Recherche de la longueur optimale

Ce bloc explore une plage de valeurs pour length afin d’identifier la longueur la plus performante.

[[cmo]]
id           = "cmo"
length.start = 10
length.stop  = 30

Recherche des zones de surachat et de survente

Cet exemple combine le bloc [[cmo]] avec deux blocs [[constant]] pour optimiser les seuils de surachat et de survente. La condition devient vraie lorsque le CMO passe au-dessus du seuil overbought ou en dessous du seuil oversold.

[[cmo]]
id = "cmo"

[[constant]]
id    = "overbought"
start = 50
stop  = 70

[[constant]]
id    = "oversold"
start = -70
stop  = -50

[[condition]]
id            = "momentum_extreme"
condition     = "cmo > overbought or cmo < oversold"
next_block_id = "..."

Paramètres

ParamètreDescription
id
 Texte
 Obligatoire
Nom unique pour la série CMO.
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 : "close"
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
 Texte
 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
 Texte
 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 CMO expose une série numérique et sa longueur, ainsi que la source d’entrée, le symbole et le timeframe.

Supposons le bloc configuré ainsi :

[[cmo]]
id = "cmo"

Alors :

VariableDescription
cmo ou cmo[0]
Décimal
Valeur actuelle du CMO.
cmo[n]
Décimal
Valeur du CMO il y a n bougies.
cmo.length
Décimal
Longueur utilisée.
cmo.source
Texte
Nom de la série d’entrée.
cmo.symbol
Texte
Symbole de marché utilisé.
cmo.timeframe
Texte
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.