ATR Breakout — stratégie Pine Script v5
Cette stratégie achète quand la clôture dépasse le plus haut des 20 barres précédentes alors que l'ATR est au-dessus de sa propre moyenne sur 20 barres. Une fois en position, elle place un ordre stop à 2 ATR sous la clôture de la barre de signal.
Code complet (gratuit, à copier)
//@version=5
strategy("ATR Breakout", overlay=true)
atr = ta.atr(14)
upper = ta.highest(high, 20)
if (close > upper[1] and atr > ta.sma(atr, 20))
strategy.entry("Long", strategy.long)
strategy.exit("Exit", "Long", stop=close - atr * 2)Comment fonctionne le script
Le script déclare la version 5 puis strategy() avec overlay=true, donc il s'affiche sur le graphique des prix. ta.atr(14) calcule l'Average True Range sur 14 barres. ta.highest(high, 20) renvoie le plus haut des 20 dernières barres, barre courante comprise ; upper[1] lit cette même série une barre en arrière, la cassure ne teste donc jamais la barre en cours.
Le test d'entrée s'exécute à chaque barre : la clôture doit dépasser upper[1] et l'ATR sur 14 barres doit être supérieur à sa propre moyenne mobile simple sur 20 barres. Si les deux conditions sont réunies, strategy.entry("Long", strategy.long) envoie un ordre au marché à l'achat. Le code ne gère qu'un seul sens et n'ouvre jamais de position courte.
Dans le même bloc, strategy.exit("Exit", "Long", stop=close - atr * 2) attache un ordre stop à la position longue, à deux ATR sous la clôture de cette barre. Comme l'appel est placé dans le bloc if, le niveau de stop n'est soumis que sur les barres où la condition d'entrée est vraie aussi ; il n'y a ni take profit, ni stop suiveur, ni sortie temporelle.
Paramètres du code
| Paramètre | Valeur | Rôle |
|---|---|---|
Longueur ATR | 14 | ta.atr(14) fixe la période de l'Average True Range, utilisée pour le filtre de volatilité et pour la distance du stop. |
Profondeur de cassure | 20 | ta.highest(high, 20) construit le niveau haut à partir des 20 derniers plus hauts. |
Décalage de la cassure | upper[1] | L'entrée compare la clôture à la valeur du niveau sur la barre précédente, pas à celle de la barre en cours. |
Longueur du filtre ATR | 20 | ta.sma(atr, 20) moyenne l'ATR sur 20 barres ; l'ATR doit être au-dessus de cette moyenne. |
Multiplicateur de stop | 2 | strategy.exit utilise stop = close - atr * 2. |
Sens de position | strategy.long | strategy.entry n'envoie que des ordres acheteurs ; aucune branche vendeuse n'existe dans le code. |
Overlay | true | strategy("ATR Breakout", overlay=true) affiche la stratégie sur le panneau des prix. |
Type d'ordre de sortie | stop | strategy.exit est appelée avec le seul argument stop, sans limite ni trailing. |
Limites connues de cette règle
- L'entrée se déclenche sur le franchissement d'un plus haut fixe, donc un marché en range produit des signaux répétés autour du même niveau et le stop peut être touché avant tout prolongement.
- L'appel à strategy() ne règle ni commission, ni glissement, ni coût de financement : le code ignore donc les frais de trading.
- L'appel de sortie est placé dans le bloc if, le stop n'est donc réactualisé que sur les barres où la condition d'entrée est vraie ; sans take profit ni stop suiveur, une position peut rester ouverte longtemps.
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 ne suppose rien sur l'instrument, il lui faut seulement des bougies avec high, low et close. Sur un marché ouvert 24 heures sur 24, les fenêtres de 14 et 20 barres couvrent une durée différente de celle d'une séance boursière. Vous pouvez le rejouer sur une période jamais vue dans Strategy Arena Lab, qui est gratuite.
Comment ajouter un take profit ?
Un stop existe déjà, fixé par stop=close - atr * 2 dans strategy.exit. Pour ajouter un objectif, passez un argument limit au même appel strategy.exit, et pour changer la distance du stop modifiez le 2 ou la longueur ATR de 14. Vous pouvez rejouer la version modifiée sur une période jamais vue dans Strategy Arena Lab, qui est gratuite.
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.