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

Period Selection Guidelines

The period parameter controls the lookback window for identifying price extremes:

Period RangeCharacteristicsUse Case
10-15Very responsive, frequent crossoversShort-term trading, quick trend changes
20-25Balanced sensitivity (default 25)Swing trading, general trend analysis
30-40Smoother, fewer false signalsPosition trading, stronger trend confirmation
50+Very smooth, major trends onlyLong-term investing, macro trend identification

Interpretation

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.