Indicatore ATR %: formula, impostazioni e lettura
ATR % è l'Average True Range di Wilder diviso per la chiusura corrente ed espresso in percentuale, il che rende confrontabile la volatilità barra per barra tra strumenti quotati a livelli di prezzo molto diversi. Senzoukria lo traccia in un pannello dedicato con una media di Wilder a 14 periodi di default.
Senzoukria · Indicatori · Updated September 2026
ATR % — Volatilità, in un pannello separato sotto il grafico.
Che cosa misura ATR %
Il true range di ogni barra è la maggiore di tre distanze: il suo massimo meno il suo minimo, lo scarto tra il massimo e la chiusura precedente e lo scarto tra il minimo e la chiusura precedente, così un movimento overnight tra due barre viene conteggiato anziché ignorato. La primissima barra dello storico caricato non ha predecessore, quindi il suo true range è semplicemente la sua escursione. Questi true range vengono smussati con la ricorsione di Wilder, inizializzata sulla media aritmetica dei primi N valori, poi divisi per la chiusura della barra e moltiplicati per 100. Una lettura di 0,35 significa quindi che la barra media copre circa un terzo di punto percentuale del prezzo, che il simbolo sia MNQ o 6E. La serie non restituisce nulla finché la media è in fase di riscaldamento, né quando la chiusura è pari o inferiore a zero, perché una percentuale di una base non positiva non è una scala.
La formula, così come è implementata
Non è la definizione consueta altrove: è ciò che calcola il codice distribuito, documentato accanto alla sua implementazione:
True Range de Wilder : TR[0] = high − low ; TR[i] = max(high − low, |high − closeₚ|, |low − closeₚ|). */ function trueRanges(bars: readonly FootprintBar[]): number[] { const tr: number[] = new Array(bars.length); for (let i = 0; i < bars.length; i++) { const b = bars[i]; if (i === 0) { tr[i] = b.high - b.low; } else { const pc = bars[i - 1].close; tr[i] = Math.max( b.high - b.low, Math.abs(b.high - pc), Math.abs(b.low - pc), ); } } return tr; } /** ATR de Wilder (1978) : graine = moyenne des N premiers TR, puis ATR[i] = (ATR[i−1]·(N−1) + TR[i]) / N. Warm-up (< N barres) → null. Même récurrence que `atrSeries` d'averages.ts — recopiée pour que la famille reste autonome pendant la migration (cf. note d'en-tête). */ function wilderAtr( bars: readonly FootprintBar[], period: number, ): Array<number | null> { const n = Math.max(1, Math.floor(period)); const out: Array<number | null> = new Array(bars.length).fill(null); if (bars.length < n) return out; const tr = trueRanges(bars); let atr = 0; for (let i = 0; i < n; i++) atr += tr[i]; atr /= n; out[n - 1] = atr; for (let i = n; i < bars.length; i++) { atr = (atr * (n - 1) + tr[i]) / n; out[i] = atr; } return out; } /** σ de POPULATION fenêtré (÷N — la convention Bollinger, parité TradingView/ATAS). Two-pass autour de la moyenne de fenêtre (stabilité numérique, cf. en-tête). Warm-up (< N échantillons) → null. */ function stdPopSeries( values: readonly number[], period: number, ): Array<number | null> { const n = Math.max(1, Math.floor(period)); const means = smaSeries(values, n); const out: Array<number | null> = new Array(values.length).fill(null); for (let i = n - 1; i < values.length; i++) { const m = means[i]; if (m === null) continue; let acc = 0; for (let j = i - n + 1; j <= i; j++) { const d = values[j] - m; acc += d * d; } out[i] = Math.sqrt(acc / n); } return out; } // ── Defs ──────────────────────────────────────────────────────────────────── /** ATR % : ATR_N / close × 100 — l'ATR normalisé par le prix, comparable d'un instrument à l'autre (MNQ vs 6E). Même lissage Wilder que `atr`, défaut N=14. close ≤ 0 → null (pas d'échelle honnête) ; warm-up → null.
Come leggerlo
- Un ATR % in salita significa che ogni barra copre più terreno rispetto al prezzo; una linea in discesa significa che i range si stanno contraendo anche se il prezzo continua a muoversi.
- Poiché il valore è normalizzato sul prezzo, lo stesso numero letto su due simboli descrive una quantità di movimento comparabile: è questo che lo rende utilizzabile per dimensionare le posizioni tra strumenti diversi.
- La misura non ha direzione: un'espansione da un plateau basso si legge allo stesso modo sia che i range si siano allargati in salita sia in discesa.
- Confronta la lettura attuale con la stessa ora delle sessioni precedenti anziché con una soglia assoluta: l'apertura e il periodo di rollover hanno un proprio livello normale.
- Una singola barra fuori scala viene distribuita su N barre dalla media di Wilder, quindi il gradino visibile sulla linea è più piccolo della barra che lo ha causato.
Parametri e valori predefiniti
Il periodo è impostato di default a 14, la scelta originale di Wilder, e controlla sia la media iniziale sia il peso dato a ogni nuovo true range. Accetta da 1 a 200: un valore corto come 5 reagisce in poche barre ed è più rumoroso, mentre 50 o più trasforma la linea in una misura lenta del regime. Al minimo di 1 l'output si riduce al true range grezzo rapportato alla chiusura.
| Parametro | Tipo | Predefinito | Intervallo |
|---|---|---|---|
| Period | number | 14 | 1 – 200 |
Ciò che non mostra
ATR % dice quanto si è mossa una barra, mai in quale direzione né chi l'ha mossa: due barre con range identico possono avere delta opposto ed esiti opposti. Lo smoothing di Wilder è ritardo per costruzione, quindi un cambio di regime compare gradualmente nell'arco di circa N barre. Nelle sessioni sottili i range si restringono perché si scambia poco, il che abbassa la lettura senza che il mercato si sia davvero calmato. Il denominatore è la chiusura della barra stessa, quindi la percentuale deriva leggermente quando il prezzo è in trend anche se il range assoluto non cambia.
Indicatori correlati
- True Range — Volatilità
- Std Dev — Volatilità
- Squeeze — Volatilità
- Chaikin Volatility — Volatilità
- Realized Vol — Volatilità
- Skewness — Volatilità
Questa pagina in altre lingue
Frequently asked questions
- Qual è la differenza tra ATR e ATR %?
- L'ATR è espresso nelle unità di prezzo dello strumento, quindi 12 punti su un contratto non si possono confrontare con 12 punti su un altro. L'ATR % divide la stessa media di Wilder per la chiusura corrente e moltiplica per 100, producendo un valore adimensionale. Lo smoothing e la definizione di true range sono identici; cambia solo la scala.
- Perché l'ATR % è vuoto all'inizio del grafico?
- La media di Wilder viene inizializzata sulla media dei primi N true range, quindi non esiste alcun valore prima che siano state caricate N barre. L'indicatore non restituisce nulla per quelle barre anziché disegnare una media parziale su un campione incompleto. Con il periodo predefinito di 14, la linea inizia sulla quattordicesima barra.
- Si può confrontare l'ATR % tra un grafico futures e un grafico crypto?
- La forma percentuale elimina la differenza di livello di prezzo, quindi i numeri finiscono sulla stessa scala. Ciò che non si trasferisce è il contesto di trading: orari di sessione, liquidità e composizione delle barre sono diversi, e in Senzoukria i simboli crypto sono solo di analisi, senza invio di ordini. Confronta i livelli in condizioni di liquidità simili, non tra una finestra notturna tranquilla e l'apertura della sessione cash.