Measures how recently price hit its highest high and lowest low to help describe whether a trend is present or absent.
Aroon is a trend indicator developed by Tushar Chande in 1995. It uses two lines, Aroon Up and Aroon Down, that each move between 0 and 100. Instead of measuring price or momentum directly, Aroon measures time: how many bars have passed since the most recent highest high (Aroon Up) and the most recent lowest low (Aroon Down) over a chosen lookback period. The idea is that in a strong uptrend, new highs happen often, so Aroon Up tends to stay high; in a strong downtrend, new lows happen often, so Aroon Down tends to stay high. The name comes from a Sanskrit word often translated as "dawn's early light." Nothing about Aroon is predictive; it describes what price has already done, and trading always carries risk of loss.
For a lookback period of N bars, Aroon Up = 100 × (N − number of bars since the highest high) / N, and Aroon Down = 100 × (N − number of bars since the lowest low) / N. If the highest high in the window is the current bar, "bars since" is 0 and Aroon Up = 100. If the highest high was N bars ago, Aroon Up = 0. Aroon Down works the same way using the lowest low. Both lines therefore sit between 0 and 100. A common default period is 25, though some platforms default to 14. A shorter period makes the lines react faster and flip more often; a longer period smooths them and reduces flips. Many platforms also plot an "Aroon Oscillator," which is simply Aroon Up minus Aroon Down, ranging from −100 to +100.
A common default lookback period is 25, though some platforms use 14. Shorter periods such as 14 react faster but flip more often; longer periods such as 50 smooth the lines and reduce crossovers. The 70 and 30 levels are common reference lines (30 mirrors 70 for the opposite line), and 50 is often drawn as a midline.
//@version=6
indicator("Aroon", overlay=false)
length = input.int(25, "Length", minval=1)
upper = 100 * (ta.highestbars(high, length + 1) + length) / length
lower = 100 * (ta.lowestbars(low, length + 1) + length) / length
plot(upper, "Aroon Up", color=color.orange)
plot(lower, "Aroon Down", color=color.blue)
hline(70, "Upper", color=color.gray, linestyle=hline.style_dotted)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted)
hline(30, "Lower", color=color.gray, linestyle=hline.style_dotted)Pro tip: Because Aroon can sit at 100 long after a move stalls, many traders pair it with a separate measure of price movement or volatility for context, rather than reading a high Aroon value as strength on its own. This is educational context, not a recommendation to trade.
Educational only — not financial advice, not a recommendation to trade. No indicator is predictive; trading involves substantial risk of loss.