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.

ATR % — parametri disponibili nell’applicazione, con i valori predefiniti.
ParametroTipoPredefinitoIntervallo
Periodnumber141 – 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.

Vedi tutti gli indicatori

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.

Keep reading