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 = 3Longueurs 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 = 4Recherche 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 = 6Recherche 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ètre | Description |
|---|---|
k_idd_idTexte Obligatoire | Identifiants uniques pour les lignes %K et %D. |
k_lengthEntier 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_lengthEntier 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) |
symbolTexte 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. |
timeframeTexte 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 :
| Variable | Description |
|---|---|
stoch_k oustoch_k[0]Décimal | Valeur actuelle de %K. |
stoch_d oustoch_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_lengthDécimal | Longueur utilisée pour calculer %K (fenêtre stochastique). |
stoch_k.d_lengthDécimal | Longueur utilisée pour lisser %K et produire %D. |
stoch_k.high_srcstoch_k.low_srcstoch_k.close_srcstoch_d.high_srcstoch_d.low_srcstoch_d.close_srcTexte | Noms des sources d’entrée utilisées (high, low et close) sur chaque sortie. |
stoch_k.symbolTexte | Symbole de marché utilisé pour %K. |
stoch_d.symbolTexte | Symbole de marché utilisé pour %D. |
stoch_k.timeframeTexte | Timeframe utilisé pour %K. |
stoch_d.timeframeTexte | 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é.