Indicators/probuilder · probacktest · proorder · proscreener

AroonDown

AroonDown in ProBuilder measures how many bars have passed since the lowest low of the last N periods, scaled 0 to 100. Syntax, formula, worked examples.

Syntax

probuilder
AroonDown[N]

Parameters

NameTypeDefaultDescription
Ninteger25Number of bars scanned for the most recent lowest low. Shorter values react faster but flip more often; 25 is the common textbook setting.

Formula

code
AroonDown = 100 * (N - BarsSinceLowestLow) / N

BarsSinceLowestLow counts how many bars have elapsed since the lowest low within the last N bars. A fresh low on the current bar gives 100. A low that occurred exactly N bars ago gives 0.

How it works

AroonDown answers a single question on every bar: how fresh is the most recent significant low. It scans the last N bars, locates the lowest low, and converts the elapsed time since that low into a percentage of the window.

The logic is time-based rather than price-based. It does not matter how deep the low was, only when it happened. A market grinding out new lows every few bars keeps AroonDown pinned near 100 even if each new low undercuts the previous one by a single tick.

The indicator is one half of the Aroon system. Its counterpart, AroonUp, applies the same measurement to the highest high. The two lines are usually read together: whichever line is dominant identifies the prevailing pressure, and crossovers between them mark potential changes in trend direction.

Examples

Example 1, Threshold signal from AroonDown (Indicator)

probuilder
// Flag bars where downward pressure dominates the 20-bar window
N = 20
myAroonDown = AroonDown[N]
IF (myAroonDown > 50) THEN
  SIGNAL = 1
ELSE
  SIGNAL = -1
ENDIF
RETURN SIGNAL

Returns 1 while the lowest low of the last 20 bars occurred in the more recent half of the window, and -1 otherwise. A minimal building block for regime classification.

Example 2, Screening for fresh downtrends (ProScreener)

probuilder
// Instruments making recent lows while highs grow stale
ad = AroonDown[25]
au = AroonUp[25]
SCREENER[ad > 70 AND au < 30](ad AS "AroonDown")

Returns instruments where the 25-bar low is recent and the 25-bar high is old, the standard Aroon definition of an established downtrend.

Example 3, Short entry on Aroon crossover (ProOrder)

probuilder
// Sell short when downward pressure overtakes upward pressure
ad = AroonDown[25]
au = AroonUp[25]

IF NOT ShortOnMarket AND ad CROSSES OVER au AND ad > 70 THEN
  SELLSHORT 1 CONTRACT AT MARKET
ENDIF

IF ShortOnMarket AND au CROSSES OVER ad THEN
  EXITSHORT AT MARKET
ENDIF

Opens a short when AroonDown crosses above AroonUp with a strong reading, and covers when the relationship inverts. The threshold on ad filters weak crossovers that occur mid-range.

Interpretation

RangeReading
70 to 100The lowest low is recent. Downward pressure is active.
30 to 70Mixed. The last significant low is aging without being replaced.
0 to 30No new low for most of the window, downward pressure has faded.

Readings are most useful relative to AroonUp. AroonDown above 70 while AroonUp sits below 30 is the classic downtrend signature. Both lines high at the same time indicates a volatile range where both a recent high and a recent low exist inside the window.

Common errors and gotchas

  • No price argument. AroonDown takes only a period in square brackets. AroonDown[20](close) is invalid syntax, the calculation is always based on the low price series.
  • High value means down, not up. The naming trips up new users. AroonDown near 100 is a bearish reading, it reports fresh lows. Reading it like an oscillator where high values are bullish inverts every signal.
  • Time-based, not magnitude-based. One marginal new low resets the line to 100 regardless of how shallow the undercut was. In quiet markets this overstates the strength of a drift lower. Pairing with a volatility or trend-strength measure such as ADX gives context.
  • Stair-step behaviour. Between new lows, the line declines in fixed increments of 100/N per bar. Crossover logic on very short periods generates dense clusters of signals because the line jumps in large steps.
  • AroonUp, the companion line measuring bars since the highest high.
  • ADX, trend-strength measure often combined with Aroon readings.
  • DIminus, directional movement component for downward moves.
  • DIplus, directional movement component for upward moves.
  • LowestBars, returns the number of bars since the lowest value directly.
  • HighestBars, returns the number of bars since the highest value.
  • Lowest, the lowest value over a lookback window.
  • Supertrend, trend-following level often used with directional indicators.