Stochastic Oscillator (stoch)

[[stoch]] situe la clôture courante entre le plus bas et le plus haut observés sur la fenêtre k_length. La série %K exprime cette position sur une échelle de 0 à 100 : 0 correspond au plus bas de la fenêtre, 100 à son plus haut et une valeur intermédiaire à la position proportionnelle entre ces deux bornes. Elle décrit une position dans la plage récente, pas le sens du mouvement.

Le bloc expose aussi %D, une moyenne mobile simple de %K calculée sur d_length bougies. %D évolue plus régulièrement que %K tout en restant sur la même échelle.

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.high_src
stoch_k.low_src
stoch_k.close_src
stoch_d.high_src
stoch_d.low_src
stoch_d.close_src
Texte
Noms des sources d’entrée utilisées (high, low et close) sur chaque sortie.
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é.