Индикатор ATR Stop (long): формула, настройки и чтение
ATR Stop (long) рисует опорную линию на фиксированное число средних истинных диапазонов ниже закрытия каждого бара — масштабированный по волатильности уровень для длинной позиции. Это наложение на цену и только рисунок: никакой ордер по нему не выставляется.
Senzoukria · Индикаторы · Updated September 2026
ATR Stop (long) — Волатильность, на ценовом графике.
Что измеряет ATR Stop (long)
Линия — закрытие минус множитель × ATR Уайлдера за N периодов, по умолчанию 14 баров и множитель 2. Выражение расстояния в ATR, а не в фиксированных пунктах, сохраняет вероятность касания уровня примерно сопоставимой на быстром открытии и в спокойную ночную сессию, где двадцать пунктов означают совсем разное. Эта версия следует за закрытием в обе стороны: растёт, когда растёт закрытие, и опускается, когда оно падает, то есть не работает как храповик. Пока ATR разогревается, ничего не рисуется — вместо частичного уровня по неполной средней.
Формула — так, как она реализована
Это не привычное определение из других источников, а то, что вычисляет поставляемый код, задокументированное рядом с реализацией:
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.
Как его читать
- Расстояние между ценой и линией — текущий бюджет волатильности: когда оно растёт, бары проходят больше, и стоп в фиксированных пунктах выбивался бы обычным шумом.
- Закрытие ниже линии означает сдачу уровня, но проверьте, что именно сдвинулось: цена могла пробить линию, а линия могла опуститься вслед за ценой.
- Поскольку линия следует за закрытием, глубокий откат тянет уровень вниз. Индикатор, построенный так, чтобы никогда не отступать, — volatility stop; Chandelier Exit привязывает уровень к максимуму окна, и это снова другое поведение.
- Увеличение множителя отодвигает линию — меньше касаний, больше расстояние; уменьшение делает обратное. Ни то ни другое не безопаснее: вы просто обмениваете частоту на расстояние.
- Линия, попавшая в сильно проторгованную ценовую зону, стоит там, где активность уже сосредоточена, — сам расчёт об этом ничего не знает.
Параметры и значения по умолчанию
Период ATR по умолчанию — 14; он определяет, как быстро подстраивается расстояние: короткий период сужает линию вскоре после спокойного отрезка, длинный сохраняет дистанцию. Множитель по умолчанию — 2, допустимо от 0,1 до 10, он линейно масштабирует отступ; именно этот параметр решает, сколько обычного движения уровень выдерживает.
| Параметр | Тип | По умолчанию | Диапазон |
|---|---|---|---|
| ATR period | number | 14 | 1 – 200 |
| ATR multiplier | number | 2 | 0.1 – 10 |
Чего он не показывает
Линия — графический индикатор, а не ордер и не позиция: ничто по ней не выставляет, не переносит и не отменяет стоп, а реальная маршрутизация в Senzoukria идёт через явный торговый путь со своим ручным взведением. Индикатор ничего не знает о вашем входе, объёме или счёте, поэтому расстояние до цены — не сумма убытка. Поскольку он следует за закрытием, в просадке он может отступать, что противоположно зафиксированному трейлинг-стопу. И ATR измеряет только диапазон, поэтому уровень слеп к потоку ордеров: поглощение или крупный лимитный бид на этой цене не входят в его данные.
Похожие индикаторы
- True Range — Волатильность
- Std Dev — Волатильность
- Squeeze — Волатильность
- Chaikin Volatility — Волатильность
- Realized Vol — Волатильность
- Skewness — Волатильность
Эта страница на других языках
Frequently asked questions
- Выставляет ли индикатор ATR Stop настоящий стоп-ордер?
- Нет. Он рисует линию на графике, и только. Ввод ордеров в Senzoukria — отдельное действие, требующее явного взведения человеком, и этот индикатор с ним не связан.
- Почему моя линия ATR-стопа опускается?
- Эта версия привязана к закрытию, а не к текущему максимуму, поэтому при падении закрытия линия падает вместе с ним. Это задокументированное поведение, а не ошибка. Если вам нужен уровень, который никогда не двигается против длинной позиции, используйте volatility stop — он построен как храповик.
- Какой множитель ATR выбрать?
- По умолчанию — 2 ATR при средней за 14 периодов, привычное расстояние, чтобы дать индексному фьючерсу «дышать». Меньший множитель ставит уровень внутрь диапазона обычного бара, и его будут часто задевать; больший держит уровень дальше ценой большего расстояния. Значения, верного независимо от инструмента и типа баров, нет.