VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Indicators and signals

Aroon indicator: Up, Down, the 70/50 levels and an NQ backtest

Aroon counts how many bars have passed since the highest high and lowest low of a lookback window, so it measures the age of a trend, not its size. The 70 and 50 levels are statements about time. One NQ daily run of an Aroon rule is shown with its selection bias stated plainly.

By · Published · updated · Editorial policy

Contents
  1. How does the Aroon indicator detect a trend?
  2. How are Aroon Up, Aroon Down and the Aroon oscillator calculated?
  3. What do the 70 and 50 levels mean?
  4. Which Aroon crossover rules can you test?
  5. Aroon vs Donchian channel: what is the difference?
  6. What does an NQ daily backtest of an Aroon rule show?
  7. How should you test Aroon on your own market?
  8. Frequently asked questions
  9. References

How does the Aroon indicator detect a trend?

The Aroon indicator detects a trend by counting time, not price: it measures how many bars have passed since the highest high and the lowest low of a lookback window, usually 25 bars. A market that keeps making fresh highs holds Aroon Up near 100 and Aroon Down near 0, which is the signature of an uptrend.

The Aroon indicator is a pair of lines, Aroon Up and Aroon Down, that each run from 0 to 100 and report how recently the market set its highest high and its lowest low inside a fixed lookback window. Think of two stopwatches. One restarts every time price prints a new high for the window; the other restarts at every new low. Aroon Up is high when the first stopwatch was reset a moment ago, and low when it has been running for a long time. The encyclopedia page for the Aroon indicator holds the full definition, so this article spends its words on what the readings mean and how to test them.

This time logic is what separates Aroon from most of the trend tools in the guide to technical analysis tools and indicators. A moving average asks where price is relative to its recent average. A momentum line asks how far price moved. Aroon asks only one question: how old is the latest extreme? A market in a steady uptrend answers "the high is new, the low is old", so Aroon Up stays high and Aroon Down drifts toward zero. A sideways market answers "both are middle-aged", so the two lines meet in the middle and cross each other often.

A 25-bar price strip where the highest high is 3 bars ago, giving Aroon Up 88, and the lowest low is 20 bars ago, giving Aroon Down 20 Aroon counts bars, not price Lookback 25, illustration High 3 bars ago: Up = 88 Low 20 bars ago: Down = 20 New high, old low: an uptrend. So: read Aroon as age, not size.
Aroon reads the age of the latest high and the latest low inside the window. A recent high gives a high Aroon Up; an old low gives a low Aroon Down.

How are Aroon Up, Aroon Down and the Aroon oscillator calculated?

Aroon Up turns a bar count into a 0 to 100 reading with one division, Aroon Down repeats it for the lowest low, and the Aroon oscillator is simply Up minus Down. The one formula to know:

Aroon Up = (lookback − bars since the highest high) ÷ lookback × 100

Here lookback is the number of bars in the window, and bars since the highest high is how many bars ago the highest high of that window was printed, with the current bar counting as zero. Aroon Down uses the same arithmetic with the lowest low in place of the highest high. The Aroon oscillator is Aroon Up minus Aroon Down, so it runs from −100 to +100 and sits above zero when the latest high is fresher than the latest low.

Two consequences follow. A new high on the current bar gives zero bars since the high, so Aroon Up prints exactly 100. And every bar that passes without a new high lowers Aroon Up by the same step, 100 divided by the lookback, until the old high falls out of the window and Aroon Up reaches 0. With a 25-bar lookback that step is 4 points per bar.

Hypothetical example

Lookback 25. The highest high of the last 25 bars was set 3 bars ago, and the lowest low was set 20 bars ago. Aroon Up = (25 − 3) ÷ 25 × 100 = 88. Aroon Down = (25 − 20) ÷ 25 × 100 = 20. Aroon oscillator = 88 − 20 = 68. The reading says the high is recent and the low is stale, which is what an uptrend looks like in time.

With a 25-bar lookback, a high 3 bars ago and a low 20 bars ago: Aroon Up is (25 minus 3) divided by 25 times 100, which is 88; Aroon Down is 20; the oscillator is 88 minus 20, which is 68 A bar count in, 0–100 out Lookback 25, high 3 and low 20 bars ago Up (25 − 3) ÷ 25 × 100 = 88 Down (25 − 20) ÷ 25 × 100 = 20 Oscillator 88 − 20 = 68 Above 0: the high is fresher. So: count bars since each extreme.
The three calculations for the example above. A bar count goes in; a 0 to 100 reading comes out.

What do the 70 and 50 levels mean?

With a 25-bar lookback, Aroon above 70 means the extreme is at most about 7 bars old, 50 means it is 12 to 13 bars old, and below 30 means it is about 17 bars old or more, so every level is a statement about time rather than price. This is the opposite of how most traders read a bounded indicator. The 70 and 30 levels of the RSI indicator describe how one-sided recent price changes have been; the 70 and 30 levels of Aroon describe how many bars have passed since something happened.

Aroon levelAge of the extreme (25-bar lookback)What it says about the trend
100Set on this barA new high or low for the window just printed
70At most about 7 bars oldFresh: the trend renewed itself recently
5012 to 13 bars oldHalfway through the window; neither fresh nor stale
30About 17 bars oldStale: no new extreme for most of the window
0Fell out of the windowThe whole window passed without a new extreme

Reading the levels this way explains a common surprise. Aroon Up can sit at 100 while price barely moves, if each bar ticks a little above the previous high. And it can fall to 60 during a strong rally, if the rally pauses for ten bars. The level does not care how large the move was, only how long ago the last high was set. The 50 line is useful as a midpoint check: a line above 50 means the extreme sits in the newer half of the window, a line below 50 means it sits in the older half.

A 0 to 100 Aroon scale with a 25-bar lookback: 100 means the extreme is on this bar, 70 means at most 7 bars old, 50 means 12 to 13 bars old, 30 means about 17 bars old, 0 means it fell out of the window Aroon levels are ages Age of the last extreme, lookback 25 100 70 50 30 0 This bar ≤ 7 bars old 12–13 bars old ≈ 17 bars old Out of window New Fresh Halfway Stale Gone 70 means young, not strong. So: read each level in bars.
Each Aroon level maps to an age in bars. Change the lookback and the ages change, but the logic stays the same.

Which Aroon crossover rules can you test?

Three rule families cover almost every Aroon indicator strategy traders write, and on the same chart they fire at different moments and a different number of times. All three use the Up and Down lines as the only inputs; they differ in how much confirmation they wait for.

  1. The Up/Down cross. Go long when Aroon Up crosses above Aroon Down, go short or flat when it crosses below. This fires whenever the latest high becomes fresher than the latest low. It is the earliest of the three and the most frequent, because in a sideways market the two lines swap places often.
  2. The 70/30 threshold. Go long when Aroon Up is above 70 and Aroon Down is below 30; the mirror for shorts. This waits until one extreme is young and the other is old, so it fires later and less often, and it stays silent in a range where both lines sit near the middle.
  3. The oscillator zero cross. Go long when Up minus Down crosses above zero, short when it crosses below. Mathematically this is the same event as the Up/Down cross; traders use the oscillator form when they add a buffer, such as crossing above +20 rather than 0, which puts it between the first two families in speed and trade count.
Rule familySignal conditionSpeedTypical trade count
Up/Down crossAroon Up crosses above or below Aroon DownEarlyMore
70/30 thresholdOne line above 70 and the other below 30LateFewer
Oscillator cross with bufferUp minus Down crosses a level such as +20 or −20MiddleMiddle
One illustrative Aroon move: the Up/Down cross fires early, the oscillator crossing +20 fires in the middle, and the 70/30 threshold fires late; earlier rules trade more often Three rules, three bars Same move, illustration Down Up Cross Osc +20 70/30 early middle late Earlier rules trade more often. So: test all three after costs.
The same move triggers the three rule families at three different bars. Earlier rules trade more often and pay more in costs; later rules give up more of the move.

The trade count matters as much as the timing. Park and Irwin (2007), reviewing decades of studies of technical trading rules, report that profits found in early studies often shrink once transaction costs and the number of rules tried are taken into account. The Up/Down cross is the family most exposed to this, because it trades most in exactly the sideways markets where each trade is small.

Aroon vs Donchian channel: what is the difference?

Aroon and the Donchian channel are built from the same two numbers, the highest high and the lowest low of the lookback, but Donchian reads a price level and Aroon reads elapsed time. A Donchian channel is a pair of bands drawn at the highest high and the lowest low of the last N bars, and a breakout rule trades when price moves outside them. The Donchian channel page explains the bands in full.

The link between the two is exact on the breakout bar. When price prints a new N-bar high, the Donchian breakout fires and, on that same bar, Aroon Up jumps to 100, because the bars since the highest high reset to zero. After that bar the two tools part ways. The Donchian upper band stays flat at the new high and says nothing more until price touches it again. Aroon Up steps down by 100 ÷ N each bar and keeps reporting how long the market has gone without a fresh high. Aroon therefore adds information after the breakout that the channel alone does not show: whether the trend is still renewing itself or has stalled.

Donchian channelAroon
InputHighest high and lowest low of N barsHighest high and lowest low of N bars
What it measuresThe price level of the extremesThe age of the extremes in bars
When it signalsPrice breaks above or below a bandA line reaches 100, crosses a level, or crosses the other line
What it shows after the breakoutA flat band until the next touchA line stepping down each bar without a new extreme
On the same breakout bar the Donchian upper band steps up and then stays flat, while Aroon Up jumps to 100 and then steps down 4 points per bar with no new high Aroon keeps counting Same breakout bar, lookback 25 Donchian Aroon Up flat 100 −4 per bar Flat band, but Aroon keeps counting. So: watch if new highs keep coming.
Same lookback, same breakout bar. The channel reports a level and goes quiet; Aroon reports the age of that level bar by bar.

Neither tool adapts its window to market conditions. A 25-bar lookback is 25 bars whether the market is quiet or wild. An adaptive average such as the VIDYA indicator changes its smoothing with volatility, which is a different trade-off: it reacts faster in fast markets, but it also no longer has a fixed window you can reason about in bars.

What does an NQ daily backtest of an Aroon rule show?

One Aroon rule, used as the only entry and exit on NQ daily bars from 2019-01-02 to 2025-06-30, finished with a positive net profit over 70 trades and a maximum drawdown of about two thirds of that profit; the run is one candidate kept out of 1,024 the search tried, chosen for its return against its drawdown, and picking it after the fact flatters it. NQ is the E-mini Nasdaq-100 future. The run traded long and short, one contract, with $20 commission and $10 slippage charged on every trade, no stop, no target and no filter, so the figures are those of the Aroon rule alone after costs.

Source: AlphaPrime product engine (CPU), run 2026-10-31. NQ daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $10 slippage per trade.

NumberResult
Net profit (closed trades)$51,280
Max drawdown$34,440
Trades70
Win rate48.57%
Profit factor1.505
Average trade$732.57
Time in market6.72%
Look at where the deepest drawdown sits relative to the marked out-of-sample stretch, and whether the curve keeps the same slope on both sides of the split.
Look at where the deepest drawdown sits relative to the marked out-of-sample stretch, and whether the curve keeps the same slope on both sides of the split. NQ · daily · 2019-01-02 to 2025-06-30 · CPU engine backtest

Three things in the table deserve a plain reading. First, the net profit of $51,280 against a max drawdown of $34,440 means a trader following this exact rule would have sat through a loss of roughly two thirds of the whole period's gain at some point. Second, a win rate of 48.57% with a profit factor of 1.505 says the result came from winners being larger than losers, not from being right often, which is typical of a rule that waits for a trend to age. Third, time in market of 6.72% says the rule was flat most of the time, so most of the six and a half years contributed nothing and the result rests on a small number of days.

The selection matters more than any single number. This one survived a search of 1,024 candidates, kept on return against drawdown. Bailey, Borwein, López de Prado and Zhu (2014) show that the best result from a large search carries an inflation that grows with the number of tries, even when every candidate is noise. So the table shows what the kept candidate did on this history; it does not show what Aroon earns, and it is not a forecast of what a reader would get. The lookback range and the rule family for this search were set as constraints in AlphaPrime (Valynox) strategy generation before the first candidate was evaluated, which is the part of the process that keeps a search honest: the boundaries are written down before any result exists.

Four checks for an Aroon rule in order: 1 fix the entry, exit and lookback, 2 rerun with doubled slippage, 3 run lookbacks 5 bars above and below, 4 add one filter of a different type such as an RSI level or VIDYA slope Check in this order Filters come last 1 2 3 4 Fix the rule Exit and lookback Double slippage $20, not $10 Try neighbours Lookback ±5 bars Add one filter RSI or VIDYA slope
The headline numbers of the kept candidate in one view. Read the trade count next to the profit: 70 trades over six and a half years is a thin sample. NQ · daily · 2019-01-02 to 2025-06-30 · CPU engine backtest

How should you test Aroon on your own market?

Decide the test before you see any result: fix the lookback range, the costs and the session, write the pass rule and the out-of-sample split date, then run all three rule families and judge them once. The order protects you from the trap in the previous section, where a result that happens to look good quietly becomes the reason the settings were chosen. Pardo (2008) makes the same point about optimization in general: the evaluation standard has to exist before the optimizer does.

  1. Fix the lookback range, costs and session. A range such as 10 to 40 bars covers the common settings. Use your broker's commission and at least one tick of slippage per side. Decide whether the test uses the day session only or the full session, because the highest high of 25 bars changes with the session.
  2. Write the pass rule and the split date. For example: the out-of-sample average trade after costs must stay above zero and above a third of the in-sample figure, with the last 20 percent of the history held back. Write it down before the run.
  3. Run all three rule families with next-bar execution. Next-bar execution is the rule that a signal computed on a bar's close is filled at the open of the following bar, which is the earliest price you could really have traded. Run the Up/Down cross, the 70/30 threshold and the buffered oscillator cross side by side, each across the whole lookback range.
  4. Check neighbouring lookbacks for a plateau. If lookback 24 and 26 behave very differently from 25, the result is a lucky spike. The methods in parameter stability: plateau or lucky spike show how to read the surface.
  5. Read the out-of-sample stretch once against the written rule. Accept or reject. A second look after a change turns that data into part of the tuning.
Five test steps in order: fix the lookback range and costs, write the pass rule, run all three rule families, check neighbouring lookbacks, and read the out-of-sample stretch once; the first two are decided before any result exists Decide the test first Five steps, in this order 1 2 3 4 5 Fix lookback, costs Write the pass rule Run all three rules Check neighbours Read OOS once Decided first Rules exist before results. So: read out-of-sample only once.
The test is decided before the result is seen. Every box to the left of the run is a decision you make while you still know nothing about the outcome.

Bar size changes what Aroon measures. On daily bars a 25-bar lookback is five trading weeks; on 5-minute bars it is about two hours, and the "age of the extreme" is measured in minutes. The trade count rises sharply and so does the share of each trade eaten by costs. Before moving an Aroon rule to intraday bars, the trade-by-trade cost comparison in what testing shows about intraday indicators is the first number to check.

A concrete first run: load your own daily bars, set the lookback range to 10 to 40, enter your commission and one tick of slippage per side, hold back the most recent 20 percent of the history, and run the Up/Down cross first. Count the trades the out-of-sample stretch holds before you read any profit figure; if it holds fewer than about 30, widen the history or move to a smaller bar size before you draw any conclusion.

Frequently asked questions

What is a good setting for the Aroon indicator?

The most common lookback is 25 bars, and 14 is also widely used. There is no setting that is good on every market, because the lookback is a window in bars and a bar means different amounts of time on different charts. Test a range such as 10 to 40 and look for a region where neighbouring values behave alike, rather than one value that stands out.

What does it mean when Aroon Up and Aroon Down cross?

A cross means the latest high and the latest low have swapped order of age. When Aroon Up crosses above Aroon Down, the most recent N-bar high is now fresher than the most recent N-bar low, which is the earliest sign of an upward shift. The cross happens often in sideways markets, so a crossover rule trades more than a threshold rule and pays more in costs.

Is the Aroon indicator the same as a Donchian channel?

They use the same inputs, the highest high and lowest low of the lookback, but they report different things. A Donchian channel draws those two prices as bands and signals when price breaks them. Aroon reports how many bars ago each of those prices was set. Aroon Up reaches 100 on the bar a Donchian breakout occurs, then steps down every bar without a new high.

What is the Aroon oscillator and why use it instead of the two lines?

The Aroon oscillator is Aroon Up minus Aroon Down, so it runs from −100 to +100 and is positive when the latest high is fresher than the latest low. A zero cross of the oscillator is the same event as a cross of the two lines. Traders use the oscillator when they want a single line to apply a buffer to, such as entering only above +20, which trades less often than the plain cross.

Does Aroon work on intraday charts?

The calculation is the same on any bar size, but the meaning of the lookback changes: 25 five-minute bars is about two hours, so Aroon then reports the age of a two-hour high. Intraday rules fire far more often than daily ones, and each trade is smaller, so the share of profit eaten by commission and slippage rises. Test the intraday version with realistic costs before trusting any result from it.

References

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • Park, C.-H., & Irwin, S. H. (2007). What Do We Know About the Profitability of Technical Analysis? Journal of Economic Surveys, 21(4), 786–826.
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.