Indicateur ATR Stop (long) : formule, réglages et lecture
ATR Stop (long) trace une ligne de référence à un nombre fixe d'Average True Range sous la clôture de chaque barre, soit un niveau proportionné à la volatilité pour une position acheteuse. C'est une surcouche sur le prix et un simple tracé : aucun ordre n'en découle.
Senzoukria · Indicateurs · Updated September 2026
ATR Stop (long) — Volatilité, sur le graphique des prix.
Ce que mesure ATR Stop (long)
La ligne vaut la clôture moins multiplicateur × l'ATR de Wilder sur N périodes, avec 14 barres et un multiplicateur de 2 par défaut. Exprimer la distance en ATR plutôt qu'en points fixes garde une probabilité de toucher le niveau à peu près comparable entre une ouverture rapide et une session de nuit calme, où vingt points ne veulent pas du tout dire la même chose. Cette version suit la clôture dans les deux sens : elle monte quand la clôture monte et redescend quand la clôture baisse, elle n'est donc pas à cliquet. Rien n'est tracé tant que l'ATR est en phase d'initialisation, plutôt qu'un niveau partiel construit sur une moyenne incomplète.
La formule, telle qu’implémentée
Ce n'est pas la définition habituelle ailleurs : c'est ce que calcule le code livré, documenté à côté de son implémentation :
Param entier ≥ 1 (les périodes n'ont pas de sens en fractions de barre). */ function intParam( params: Record<string, unknown>, key: string, fallback: number, ): number { return Math.max(1, Math.floor(numParam(params, key, fallback))); } /** Plus haut des N dernières barres (fenêtre [i−N+1, i]). Warm-up → null : fenêtre incomplète = période mensongère (règle `donchian`). */ function rollingHigh( bars: readonly FootprintBar[], n: number, ): Array<number | null> { const out: Array<number | null> = new Array(bars.length).fill(null); for (let i = n - 1; i < bars.length; i++) { let hi = Number.NEGATIVE_INFINITY; for (let j = i - n + 1; j <= i; j++) { if (bars[j].high > hi) hi = bars[j].high; } out[i] = hi; } return out; } /** Plus bas des N dernières barres — symétrique de `rollingHigh`. */ function rollingLow( bars: readonly FootprintBar[], n: number, ): Array<number | null> { const out: Array<number | null> = new Array(bars.length).fill(null); for (let i = n - 1; i < bars.length; i++) { let lo = Number.POSITIVE_INFINITY; for (let j = i - n + 1; j <= i; j++) { if (bars[j].low < lo) lo = bars[j].low; } out[i] = lo; } return out; } /** Range COMPLET d'une session (max high − min low). Les tranches de `splitSessions` sont non vides par construction → extrêmes finis. */ function sessionRange( bars: readonly FootprintBar[], ses: SessionSlice, ): number { let hi = Number.NEGATIVE_INFINITY; let lo = Number.POSITIVE_INFINITY; for (let i = ses.start; i <= ses.end; i++) { if (bars[i].high > hi) hi = bars[i].high; if (bars[i].low < lo) lo = bars[i].low; } return hi - lo; } /** `to` d'un niveau de session : borne droite pour une session passée, null (= bord droit du chart) pour la dernière session chargée. */ function sessionTo( ses: SessionSlice, isLast: boolean, bars: readonly FootprintBar[], ): number | null { return isLast ? null : bars[ses.end].bucketTsNs; } /** Sortie ligne alignée sur un tableau de valeurs déjà calculé. */ function valuesLine( bars: readonly FootprintBar[], vals: ReadonlyArray<number | null>, ): SeriesPoint[] { return bars.map((b, i) => ({ time: b.bucketTsNs, value: vals[i] })); } // ── 1-2. Stops ATR ────────────────────────────────────────────────────────── /** ATR Stop (long) — stop suiveur THÉORIQUE d'une position longue : stop[i] = close[i] − mult × ATR_N[i] Défauts N=14 (Wilder), mult=2 : deux ATR sous le close, la distance classique pour laisser respirer un indice CME sans se faire sortir par le bruit d'une barre. POURQUOI en ATR et pas en points fixes : un stop à 20 points est serré à 09:30 et large à 03:00 — l'ATR le met à l'échelle de la volatilité de l'instant, donc la probabilité de touche reste comparable d'un régime à l'autre. ATTENTION (documenté, assumé) : cette version SUIT le close, elle ne cliquete PAS (elle peut redescendre si le close redescend). Le stop qui ne recule jamais est `volatility-stop`. Warm-up ATR → null (le renderer lève le crayon), jamais de stop partiel.
Comment le lire
- L'écart entre le prix et la ligne est le budget de volatilité actuel : quand il s'élargit, les barres couvrent plus de terrain et un stop en points fixes serait touché par le bruit ordinaire.
- Une clôture sous la ligne marque l'abandon du niveau, mais vérifiez lequel des deux a bougé : le prix peut la traverser, ou la ligne peut avoir suivi le prix à la baisse.
- Comme elle suit la clôture, un repli profond entraîne le niveau vers le bas. L'étude conçue pour ne jamais reculer est le volatility stop ; le chandelier exit prend pour ancre un plus haut de fenêtre, ce qui est encore un autre comportement.
- Augmenter le multiplicateur éloigne la ligne : moins de contacts, plus de distance ; le réduire fait l'inverse. Aucun n'est plus sûr, ils arbitrent simplement entre fréquence et distance.
- Une ligne qui tombe dans une zone de prix très traitée se trouve là où l'activité est déjà concentrée, ce que le calcul lui-même ignore totalement.
Paramètres et valeurs par défaut
La période de l'ATR vaut 14 par défaut et détermine la vitesse d'adaptation de la distance : une période courte resserre la ligne peu après une phase calme, une longue garde sa distance pendant cette phase. Le multiplicateur vaut 2 par défaut, accepte de 0,1 à 10 et fait varier l'écart de façon linéaire ; c'est lui qui décide de la part de mouvement ordinaire que le niveau tolère.
| Paramètre | Type | Par défaut | Bornes |
|---|---|---|---|
| ATR period | number | 14 | 1 – 200 |
| ATR multiplier | number | 2 | 0.1 – 10 |
Ce qu’il ne montre pas
La ligne est une étude graphique, pas un ordre ni une position : rien n'envoie, ne déplace ni n'annule un stop à partir d'elle, et le routage live dans Senzoukria passe par le parcours de trading explicite, avec son propre armement manuel. Elle ignore votre entrée, votre taille et votre compte : la distance au prix n'est pas un montant de perte. Comme elle suit la clôture, elle peut reculer pendant un drawdown, à l'opposé d'un trailing stop verrouillé. Et l'ATR ne mesure que l'amplitude : le niveau est aveugle au flux d'ordres, une absorption ou un gros bid posé à ce prix sort de ses entrées.
Indicateurs liés
- True Range — Volatilité
- Std Dev — Volatilité
- Squeeze — Volatilité
- Chaikin Volatility — Volatilité
- Realized Vol — Volatilité
- Skewness — Volatilité
Cette page dans d’autres langues
Frequently asked questions
- L'indicateur ATR Stop place-t-il un vrai ordre stop ?
- Non. Il trace une ligne sur le graphique, rien de plus. La saisie d'ordres dans Senzoukria est une action distincte qui exige un armement humain explicite, et cette étude n'y est pas reliée.
- Pourquoi ma ligne ATR Stop descend-elle ?
- Cette version s'ancre sur la clôture, pas sur un maximum courant : quand la clôture baisse, la ligne baisse avec elle. C'est un comportement documenté, pas un bug. Si vous avez besoin d'un niveau qui ne recule jamais contre une position acheteuse, utilisez le volatility stop, conçu pour fonctionner à cliquet.
- Quel multiplicateur d'ATR choisir ?
- Par défaut, 2 ATR sur une moyenne de 14 périodes, la distance habituelle pour laisser respirer un future sur indice. Un multiplicateur plus petit place le niveau dans l'amplitude d'une barre normale, qui le touchera souvent ; un plus grand tient le niveau à distance, au prix de cette distance. Aucune valeur n'est correcte indépendamment de l'instrument et du type de barre.