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 Soren Huang · Published · updated · Editorial policy
Contents
- How does the Aroon indicator detect a trend?
- How are Aroon Up, Aroon Down and the Aroon oscillator calculated?
- What do the 70 and 50 levels mean?
- Which Aroon crossover rules can you test?
- Aroon vs Donchian channel: what is the difference?
- What does an NQ daily backtest of an Aroon rule show?
- How should you test Aroon on your own market?
- Frequently asked questions
- 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.
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.
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 level | Age of the extreme (25-bar lookback) | What it says about the trend |
|---|---|---|
| 100 | Set on this bar | A new high or low for the window just printed |
| 70 | At most about 7 bars old | Fresh: the trend renewed itself recently |
| 50 | 12 to 13 bars old | Halfway through the window; neither fresh nor stale |
| 30 | About 17 bars old | Stale: no new extreme for most of the window |
| 0 | Fell out of the window | The 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.
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.
- 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.
- 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.
- 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 family | Signal condition | Speed | Typical trade count |
|---|---|---|---|
| Up/Down cross | Aroon Up crosses above or below Aroon Down | Early | More |
| 70/30 threshold | One line above 70 and the other below 30 | Late | Fewer |
| Oscillator cross with buffer | Up minus Down crosses a level such as +20 or −20 | Middle | Middle |
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 channel | Aroon | |
|---|---|---|
| Input | Highest high and lowest low of N bars | Highest high and lowest low of N bars |
| What it measures | The price level of the extremes | The age of the extremes in bars |
| When it signals | Price breaks above or below a band | A line reaches 100, crosses a level, or crosses the other line |
| What it shows after the breakout | A flat band until the next touch | A line stepping down each bar without a new extreme |
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.
| Number | Result |
|---|---|
| Net profit (closed trades) | $51,280 |
| Max drawdown | $34,440 |
| Trades | 70 |
| Win rate | 48.57% |
| Profit factor | 1.505 |
| Average trade | $732.57 |
| Time in market | 6.72% |

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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.

