Awesome Oscillator (ao)

L’Awesome Oscillator compare le niveau récent d’une série à son niveau de plus long terme. Il calcule l’écart entre deux moyennes mobiles simples de la même source : une moyenne rapide, plus sensible aux dernières valeurs, et une moyenne lente, qui évolue plus progressivement. Il fournit ainsi une mesure du momentum fondée sur la séparation entre ces deux rythmes.

La sortie est une série non bornée centrée sur zéro. Elle est positive lorsque la moyenne rapide se trouve au-dessus de la moyenne lente, négative lorsqu’elle se trouve en dessous et nulle lorsqu’elles coïncident. Plus sa valeur absolue est grande, plus les deux moyennes sont éloignées. Les paramètres fast et slow déterminent les horizons comparés sans changer cette lecture.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[ao]]. Chaque bloc génère une série numérique unique, identifiée par son champ id.

Exemples

Configuration minimale

Ce bloc calcule l’AO à partir de la source par défaut hl2. Comme fast et slow sont omis, le bloc utilise les longueurs par défaut 5 et 34.

[[ao]]
id = "ao"

Configuration fixe personnalisée

Ce bloc utilise la clôture comme source et des longueurs personnalisées.

[[ao]]
id     = "ao"
source = "close"
fast   = 3
slow   = 10

Recherche des longueurs optimales

Ce bloc explore plusieurs couples fast / slow. Les combinaisons où fast n’est pas strictement inférieur à slow sont ignorées par la grille.

[[ao]]
id         = "ao"
fast.start = 3
fast.stop  = 15
slow.start = 20
slow.stop  = 50
slow.step  = 5

Filtre de momentum

Cet exemple utilise l’AO comme filtre de confirmation. La condition devient vraie uniquement lorsque l’oscillateur reste au-dessus de zéro.

[[ao]]
id = "ao"

[[condition]]
id            = "positive_momentum"
condition     = "ao > 0"
next_block_id = "..."

Paramètres

ParamètreDescription
id
 Texte
 Obligatoire
Nom unique pour la série AO.
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 : "hl2"
fast
 Entier
 Optionnel
Longueur de la moyenne rapide ; doit être ≥ 1.
Valeur par défaut : 5.

Usage :
• Fixe : fast = valeur
• Grille :
 – fast.start = valeur_minimale
 – fast.stop = valeur_maximale
 – fast.step = valeur (optionnel, par défaut 1)
slow
 Entier
 Optionnel
Longueur de la moyenne lente ; doit être ≥ 1 et supérieure à fast pour au moins une combinaison générée.
Valeur par défaut : 34.

Usage :
• Fixe : slow = valeur
• Grille :
 – slow.start = valeur_minimale
 – slow.stop = valeur_maximale
 – slow.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.

Pour les plages fast et slow, la configuration doit générer au moins un couple où fast < slow. Il n’est pas nécessaire que tous les couples possibles respectent cette relation : les combinaisons invalides sont simplement exclues de la grille.

Variables disponibles

Vous pouvez utiliser directement les identifiants ci-dessous dans vos expressions. Le bloc AO expose une série numérique, les deux longueurs utilisées, ainsi que la source d’entrée, le symbole et le timeframe.

Supposons le bloc configuré ainsi :

[[ao]]
id = "ao"

Alors :

VariableDescription
ao ou ao[0]
Décimal
Valeur actuelle de l’AO.
ao[n]
Décimal
Valeur de l’AO il y a n bougies.
ao.fast
Décimal
Longueur de la moyenne rapide.
ao.slow
Décimal
Longueur de la moyenne lente.
ao.source
Texte
Nom de la série d’entrée.
ao.symbol
Texte
Symbole de marché utilisé.
ao.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.