Quantitative Finance & Trading
Aroon Up, Aroon Down & Aroon Oscillator Formula: Time-Since-Extreme Trend Gauge
Measure trend freshness on a [0, 100] scale using Tushar Chande’s Aroon-Up = 100 * (N - Bars_Since_High) / N, Aroon-Down, and bounded [-100, +100] Aroon Oscillator.
Quantify how recently N-period highs and lows occurred!
Unlike momentum oscillators that measure vertical price velocity, Tushar Chande’s (1995) Aroon ("Dawn’s Early Light" in Sanskrit) measures elapsed time since the most recent N-period high and low! Over a lookback window of N intervals (typically N = 25, spanning 26 bars inclusive of bar 0 today): Aroon_Up = 100 * (N - Bars_Since_High) / N and Aroon_Down = 100 * (N - Bars_Since_Low) / N.
A fresh N-bar high today (Bars_Since_High = 0) scores Aroon_Up = 100, whereas a high 25 bars ago scores 0. Subtracting the two gives the Aroon Oscillator = Aroon_Up - Aroon_Down in [-100, +100], where readings above +50 confirm sustained bullish leadership!
| Lookback Scenario (N = 25) | Bars Since High / Low | Aroon-Up / Aroon-Down | Aroon Oscillator |
|---|---|---|---|
| Active Uptrend | 3 bars / 20 bars | 88.00 / 20.00 | +68.00 (Bullish leadership) |
| Fresh Breakout High Today | 0 bars / 25 bars | 100.00 / 0.00 | +100.00 (Maximum Dawn) |
| Trend Reversal Down | 22 bars / 2 bars | 12.00 / 92.00 | -80.00 (Bearish control) |
Aroon-Up Score [0, 100] from Elapsed Bars Since N-Period High
Evaluates 100 * (N - Bars_Since_High) / N while validating 0 <= Bars_Since_High <= N.
=IF(OR(B2 <= 0, B3 < 0, B3 > B2, B4 < 0, B4 > B2), "Bars Since Extreme Must Lie in [0, N]", ROUND(100 * (B2 - B3) / B2, 2))Aroon Oscillator (Aroon_Up - Aroon_Down) in [-100, +100]
Simplifies algebraically to 100 * (Bars_Since_Low - Bars_Since_High) / N.
=IF(OR(B2 <= 0, B3 < 0, B3 > B2, B4 < 0, B4 > B2), 0, ROUND(100 * (B4 - B3) / B2, 2))Try the example
Use the original values or change them to test your understanding.