Indicador ATR %: fórmula, ajustes y cómo leerlo
ATR % es el Average True Range de Wilder dividido por el cierre actual y expresado en porcentaje, lo que hace comparable la volatilidad barra a barra entre instrumentos que cotizan a niveles de precio muy distintos. Senzoukria lo traza en su propio panel con una media de Wilder de 14 períodos por defecto.
Senzoukria · Indicadores · Updated September 2026
ATR % — Volatilidad, en su propio panel debajo del gráfico.
Qué mide ATR %
El rango verdadero de cada barra es la mayor de tres distancias: su propio máximo menos su mínimo, el hueco entre el máximo y el cierre anterior, y el hueco entre el mínimo y el cierre anterior, así que un movimiento nocturno entre barras se cuenta en vez de ignorarse. La primerísima barra del historial cargado no tiene predecesora, así que su rango verdadero es simplemente su propia amplitud. Esos rangos verdaderos se suavizan con la recursión de Wilder, sembrada sobre la media aritmética de los primeros N valores, y luego se dividen por el cierre de la barra y se multiplican por 100. Una lectura de 0,35 significa por tanto que la barra media recorre alrededor de un tercio de un uno por ciento del precio, sea el símbolo MNQ o 6E. La serie no devuelve nada mientras la media sigue calentando, ni cuando el cierre es cero o inferior, porque un porcentaje sobre una base no positiva no es una escala.
La fórmula, tal como está implementada
No es la definición habitual en otros sitios: es lo que calcula el código que se distribuye, documentado junto a su implementación:
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.
Cómo leerlo
- Un ATR % al alza significa que cada barra recorre más terreno en relación con el precio; una línea a la baja significa que los rangos se contraen aunque el precio siga moviéndose.
- Como el valor está normalizado por el precio, el mismo número leído en dos símbolos describe una cantidad de movimiento comparable, que es lo que lo hace utilizable para dimensionar posiciones entre instrumentos.
- La medida no tiene dirección: una expansión desde una meseta baja se lee igual tanto si los rangos se ampliaron subiendo como bajando.
- Compara la lectura actual con la misma hora del día en sesiones anteriores en vez de con un umbral absoluto: la apertura y el período de rollover tienen su propio nivel normal.
- Una única barra desmesurada se reparte entre N barras por la media de Wilder, así que el escalón visible en la línea es menor que la barra que lo causó.
Parámetros y valores por defecto
El período viene por defecto a 14, la elección original de Wilder, y controla a la vez la media de siembra y el peso que recibe cada nuevo rango verdadero. Admite de 1 a 200: un ajuste corto como 5 reacciona en pocas barras y es más ruidoso, mientras que 50 o más convierte la línea en una medida lenta de régimen. En el mínimo de 1 la salida se reduce al rango verdadero en bruto sobre el cierre.
| Parámetro | Tipo | Por defecto | Rango |
|---|---|---|---|
| Period | number | 14 | 1 – 200 |
Lo que no muestra
El ATR % dice cuánto se movió una barra, nunca en qué dirección ni quién la movió: dos barras con rangos idénticos pueden llevar delta opuesto y desenlaces opuestos. El suavizado de Wilder es retraso por construcción, así que un cambio de régimen aparece de forma gradual a lo largo de unas N barras. En sesiones estrechas los rangos se encogen porque se negocia poco, lo que baja la lectura sin que el mercado se haya calmado de verdad. El denominador es el cierre de la propia barra, así que el porcentaje deriva ligeramente cuando el precio tiene tendencia aunque el rango absoluto no cambie.
Indicadores relacionados
- True Range — Volatilidad
- Std Dev — Volatilidad
- Squeeze — Volatilidad
- Chaikin Volatility — Volatilidad
- Realized Vol — Volatilidad
- Skewness — Volatilidad
Esta página en otros idiomas
Frequently asked questions
- ¿Qué diferencia hay entre el ATR y el ATR %?
- El ATR se expresa en las unidades de precio del instrumento, así que 12 puntos en un contrato no se pueden comparar con 12 puntos en otro. El ATR % divide esa misma media de Wilder por el cierre actual y la multiplica por 100, produciendo una cifra sin unidades. El suavizado y la definición de rango verdadero son idénticos; solo cambia la escala.
- ¿Por qué el ATR % está vacío al principio de mi gráfico?
- La media de Wilder se siembra con la media de los primeros N rangos verdaderos, así que no existe ningún valor antes de que se hayan cargado N barras. El indicador no devuelve nada en esas barras en vez de dibujar una media parcial a partir de una muestra incompleta. Con el período por defecto de 14, la línea empieza en la decimocuarta barra.
- ¿Se puede comparar el ATR % entre un gráfico de futuros y uno de cripto?
- La forma porcentual elimina la diferencia de nivel de precio, así que los números caen en la misma escala. Lo que no se traslada es el contexto de negociación: el horario de sesión, la liquidez y la composición de las barras difieren, y los símbolos cripto en Senzoukria son solo de análisis, sin enrutamiento de órdenes. Compara niveles en condiciones de liquidez parecidas en vez de cruzar una ventana nocturna tranquila con una apertura de sesión cash.