Stochastic RSI — stratégie Pine Script v5
Ce script applique l'oscillateur stochastique à un RSI 14 au lieu du prix. Il ouvre un achat sur un croisement %K/%D sous 20 et le clôture sur le croisement inverse au-dessus de 80.
Code complet (gratuit, à copier)
//@version=5
strategy("Stoch RSI", overlay=true)
rsi1 = ta.rsi(close, 14)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, 14), 3)
d = ta.sma(k, 3)
if (ta.crossover(k, d) and k < 20)
strategy.entry("Long", strategy.long)
if (ta.crossunder(k, d) and k > 80)
strategy.close("Long")Comment fonctionne le script
La première ligne déclare v5 et appelle strategy avec overlay=true, ce qui trace les ordres sur le graphique. rsi1 = ta.rsi(close, 14) calcule un RSI sur 14 barres de clôture. Cette série est passée trois fois dans ta.stoch de longueur 14, puis une SMA de 3 périodes forme %K. d = ta.sma(k, 3) lisse %K pour construire %D.
L'entrée est un seul bloc if. ta.crossover(k, d) n'est vrai que sur la barre où %K passe au-dessus de %D, et le bloc exige aussi k < 20. Quand les deux conditions sont réunies, strategy.entry("Long", strategy.long) envoie un ordre d'achat au marché. Aucune limite de pyramiding n'est codée et il n'y a pas de branche vendeuse.
La sortie est un second bloc if. ta.crossunder(k, d) se déclenche sur la barre où %K repasse sous %D, et le bloc exige k > 80. strategy.close("Long") ferme alors la position acheteuse. Le script ne définit ni stop loss, ni take profit, ni commission, ni slippage : une position reste ouverte jusqu'à ce croisement.
Paramètres du code
| Paramètre | Valeur | Rôle |
|---|---|---|
Déclaration de la stratégie | strategy("Stoch RSI", overlay=true) | Fixe le nom affiché dans le testeur et trace les ordres sur le graphique du prix. |
Longueur du RSI | 14 | Profondeur de ta.rsi appliqué à la clôture, qui produit la série donnée au stochastique. |
Longueur du stochastique | 14 | Profondeur passée à ta.stoch sur la série RSI avant lissage. |
Lissage de %K | 3 | ta.sma de la valeur stochastique brute, qui donne la ligne %K. |
Lissage de %D | 3 | ta.sma de %K, qui donne la ligne de signal %D. |
Seuil d'entrée | 20 | L'entrée acheteuse exige aussi k < 20 sur la barre de croisement. |
Seuil de sortie | 80 | La sortie exige aussi k > 80 sur la barre de croisement inverse. |
Sens des ordres | strategy.long | Seules les entrées acheteuses sont codées ; strategy.close("Long") gère la sortie. |
Taille d'ordre | non précisée | strategy.entry est appelé sans qty, donc la taille par défaut du testeur s'applique. |
Limites connues de cette règle
- En range, la paire %K/%D croise plusieurs fois, donc les mêmes seuils peuvent produire des entrées démenties peu après.
- En tendance forte, l'oscillateur peut rester bloqué au-delà du niveau 20 ou 80, ce qui retarde le signal d'entrée ou de sortie.
- Le script ne règle ni stop loss, ni take profit, ni commission, ni slippage : ses résultats de testeur ignorent les frais et le contrôle du risque.
Avant de lui faire confiance : testez-la sur des données jamais vues
Un backtest dans le Strategy Tester de TradingView montre un seul chemin passé, avec les réglages que vous avez choisis. Strategy Arena Lab (gratuite, Windows et Linux) rejoue ce Pine sur votre PC, compare ses trades un par un à ceux de TradingView pour le Pine pris en charge, compte les variantes essayées, puis juge la règle sur une période restée scellée pendant la recherche : résiste, mirage ou non concluant.
FAQ
Est-ce que ça marche sur les cryptos ?
Le code n'utilise que close et ta.rsi, donc il s'applique à tout symbole disponible sur votre graphique. Le comportement varie selon le marché car les seuils sont fixes. Vous pouvez le rejouer sur une période jamais vue dans Strategy Arena Lab, qui est gratuite.
Comment ajouter un stop loss ?
Ajoutez un argument loss à strategy.entry, ou appelez strategy.exit avec un prix stop dans le bloc de sortie. Le code livré ne clôture que sur le croisement %K/%D à la baisse au-dessus de 80.
Autres stratégies Pine Script v5 gratuites
Autres parcours TradingView
Code pédagogique sur données passées. Aucun conseil d’investissement, aucun résultat promis.