Stochastic Oscillator (stoch)

[[stoch]] vous indique où se situe la clôture actuelle à l’intérieur du range récent défini par les plus hauts et les plus bas. Il vous aide à lire le rythme du marché lorsque le prix se rapproche des extrêmes de sa fenêtre de calcul.

Le bloc expose deux séries numériques sur une échelle de 0 à 100. La série %K est la ligne principale de l’oscillateur. La série %D est une moyenne mobile simple de %K, qui lisse la lecture.

Les zones de surachat et de survente ne sont pas figées. Vous définissez ces seuils dans votre stratégie, puis vous pouvez les explorer via la recherche par grille. Les niveaux 80 et 20 servent souvent de point de départ, mais ils restent des paramètres à ajuster selon votre logique.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[stoch]]. Chaque bloc génère deux séries numériques représentant %K et %D.

Le bloc [[stoch]] n’accepte pas de clé source et utilise toujours les séries de prix standards high, low et close.

Exemples

Configuration minimale

[[stoch]]
k_id = "stoch_k"
d_id = "stoch_d"
# k_length = 14
# d_length = 3

Longueurs fixes personnalisées

Ce bloc utilise des valeurs personnalisées pour k_length et d_length.

[[stoch]]
k_id     = "stoch_k"
d_id     = "stoch_d"
k_length = 12
d_length = 4

Recherche des longueurs optimales

Ce bloc explore les combinaisons possibles de k_length et d_length afin d’identifier la configuration la plus performante.

[[stoch]]
k_id           = "stoch_k"
d_id           = "stoch_d"
k_length.start = 10
k_length.stop  = 20
d_length.start = 2
d_length.stop  = 6

Recherche des zones de surachat et de survente

Cet exemple combine le bloc [[stoch]] avec deux blocs [[constant]] pour optimiser les seuils de surachat et de survente. La contrainte oversold < overbought garantit des combinaisons cohérentes, et les conditions utilisent %K et %D pour limiter le bruit.

[[constant]]
id    = "overbought"
start = 70
stop  = 90
step  = 5

[[constant]]
id    = "oversold"
start = 10
stop  = 30
step  = 5

[[stoch]]
k_id = "stoch_k"
d_id = "stoch_d"
# k_length = 14
# d_length = 3

[constraints]
condition = "oversold < overbought"

[[condition]]
id            = "stoch_overbought"
condition     = "stoch_k > overbought and stoch_d > overbought"
next_block_id = "..."

[[condition]]
id            = "stoch_oversold"
condition     = "stoch_k < oversold and stoch_d < oversold"
next_block_id = "..."

Paramètres

ParamètreDescription
k_id
d_id
 Texte
 Obligatoire
Identifiants uniques pour les lignes %K et %D.
k_length
 Entier ou Table
 Optionnel
Fenêtre utilisée pour calculer %K (nombre de bougies) ; doit être ≥ 1 lorsqu’elle est renseignée.
Si k_length est omis, la valeur par défaut est 14.

Usage :
• Fixe : k_length = 14
• Grille :
 – k_length.start = valeur_minimale
 – k_length.stop = valeur_maximale
 – k_length.step = valeur (optionnel, par défaut 1)
d_length
 Entier ou Table
 Optionnel
Longueur de la moyenne mobile de %K (nombre de bougies) ; doit être ≥ 1 lorsqu’elle est renseignée.
Si d_length est omis, la valeur par défaut est 3.

Usage :
• Fixe : d_length = 3
• Grille :
 – d_length.start = valeur_minimale
 – d_length.stop = valeur_maximale
 – d_length.step = valeur (optionnel, par défaut 1)
symbol
 Texte
 ou Tableau
 Optionnel
Symbole(s) de marché depuis lequel ce bloc lit ses bougies (high, low, close). Si symbol est omis, le bloc utilise le symbole principal défini dans [backtest]. Pour le format des symboles, l’utilisation de tableaux et les règles d’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.

La clé source n’est pas acceptée dans le bloc [[stoch]].
L’oscillateur utilise toujours les séries de prix high, low et close du marché et du timeframe choisis.

Variables disponibles

Le bloc stoch expose deux séries numériques (%K et %D), les longueurs utilisées pour le calcul, ainsi que le symbole et le timeframe.

Supposons le bloc configuré ainsi :

[[stoch]]
k_id = "stoch_k"
d_id = "stoch_d"

Alors :

VariableDescription
stoch_k ou
stoch_k[0]
Décimal
Valeur actuelle de %K.
stoch_d ou
stoch_d[0]
Décimal
Valeur actuelle de %D.
stoch_k[n]
Décimal
Valeur de %K il y a n bougies.
stoch_d[n]
Décimal
Valeur de %D il y a n bougies.
stoch_k.k_length
Décimal
Longueur utilisée pour calculer %K (fenêtre stochastique).
stoch_k.d_length
Décimal
Longueur utilisée pour lisser %K et produire %D.
stoch_k.symbol
Texte
Symbole de marché utilisé pour %K.
stoch_d.symbol
Texte
Symbole de marché utilisé pour %D.
stoch_k.timeframe
Texte
Timeframe utilisé pour %K.
stoch_d.timeframe
Texte
Timeframe utilisé pour %D.

Notes :

  • Les variables numériques se combinent librement dans les expressions (arithmétique, comparaisons, opérateurs logiques).
  • Les variables textuelles sont des chaînes destinées aux comparaisons d’égalité et d’inégalité.