Aroon Indicator
The Aroon indicator measures trend strength and direction by identifying how recently the highest high and lowest low occurred within a lookback period. Developed by Tushar Chande in 1995, it consists of three components: Aroon Up and Aroon Down (which oscillate between 0 and 100), and the Aroon Oscillator (the difference between Aroon Up and Aroon Down, ranging from -100 to +100).
Unlike momentum oscillators that measure price change velocity, the Aroon indicator focuses on the time elapsed since recent price extremes. This time-based approach helps identify trend strength early and can signal when a trend is weakening or a new trend is beginning. The indicator is particularly effective at detecting consolidation periods and trend transitions.
What It Measures
The Aroon indicator measures the elapsed time since the highest high (Aroon Up) and lowest low (Aroon Down) within the specified period. Values near 100 indicate the extreme occurred recently, suggesting strong trend momentum, while values near 0 indicate the extreme occurred long ago, suggesting trend weakness or consolidation.
When to Use
- Identify Trend Strength: High Aroon Up values (above 70) indicate strong uptrend; high Aroon Down values indicate strong downtrend
- Spot Trend Weakness: Both lines staying low (below 50) suggest consolidation or lack of clear trend
- Signal Trend Changes: Aroon Up crossing above Aroon Down may signal the start of an uptrend, and vice versa
- Confirm Breakouts: Rising Aroon values can confirm the strength of price breakouts from consolidation ranges
- Complement Other Indicators: Use with momentum oscillators or moving averages for comprehensive trend analysis
Period Selection Guidelines
The period parameter controls the lookback window for identifying price extremes:
| Period Range | Characteristics | Use Case |
|---|---|---|
| 10-15 | Very responsive, frequent crossovers | Short-term trading, quick trend changes |
| 20-25 | Balanced sensitivity (default 25) | Swing trading, general trend analysis |
| 30-40 | Smoother, fewer false signals | Position trading, stronger trend confirmation |
| 50+ | Very smooth, major trends only | Long-term investing, macro trend identification |
Interpretation
- Aroon Up Near 100: The highest high occurred very recently, indicating strong bullish momentum
- Aroon Down Near 100: The lowest low occurred very recently, indicating strong bearish momentum
- Both Lines High (Above 70): Indicates high volatility with frequent new highs and lows
- Both Lines Low (Below 30): Suggests consolidation or sideways movement with no clear trend
- Crossovers: When Aroon Up crosses above Aroon Down, it may signal the beginning of an uptrend
- Parallel Movement: Lines moving together indicate sustained directional movement
- Aroon Oscillator Above Zero: Positive values indicate bullish momentum (Aroon Up > Aroon Down)
- Aroon Oscillator Below Zero: Negative values indicate bearish momentum (Aroon Down > Aroon Up)
- Oscillator at Extremes: Values near +100 or -100 suggest strong directional movement
Default Usage
use rust_ti::trend_indicators::bulk::aroon_indicator;
pub fn main() {
// fetch the data in your preferred way
// let highs = vec![...]; // high prices
// let lows = vec![...]; // low prices
let period = 25;
let aroon = aroon_indicator(&highs, &lows, period);
// Returns Vec<(f64, f64, f64)> where each tuple is (aroon_up, aroon_down, aroon_oscillator)
println!("Aroon Indicator: {:?}", aroon);
}
import pytechnicalindicators as pti
# Aroon Indicator with default period
period = 25
aroon = pti.trend_indicators.bulk.aroon_indicator(highs, lows, period)
# Returns list of tuples (aroon_up, aroon_down, aroon_oscillator)
print("Aroon Indicator:", aroon)
import init, {
trend_bulk_aroonIndicator
} from 'https://cdn.jsdelivr.net/npm/ti-engine@latest/dist/web/ti_engine.js';
await init();
// fetch the data in your preferred way
// const highs = [...]; // high prices
// const lows = [...]; // low prices
const period = 25;
const aroon = trend_bulk_aroonIndicator(highs, lows, period);
// Returns array of arrays [[aroon_up, aroon_down, aroon_oscillator], ...]
console.log("Aroon Indicator:", aroon);
Interactive Chart
Use the interactive playground below to explore how different parameters affect the indicator's behavior.