ATR Oscillator Tested as a Trend Filter: 1 of 32 Filtered Runs Passed, and on All 8 Charts the Confirmed Signal Came Later

Key takeaways
- I built the ATR oscillator most guides describe, ATR(5) divided by ATR(50), and used it to confirm two trend entries: the EMA 9/21 cross and the MACD 12/26/9 cross. EURUSD and gold, M5 and M15: 5,201 signals, four oscillator filters, 32 filtered runs with the same stop, target and cost.
- 1 of 32 filtered runs passed. It was the EMA cross on EURUSD M15 with the oscillator above 1, and the same cross had already passed with no filter at all.
- On all 8 signal-and-chart pairs, the “confirmed” signal came later. With the oscillator above 1, the entry came 0.14 to 0.39 ATR further into the move, and the room left in front of it was smaller every time.
- A high reading did predict a bigger move in pips: on EURUSD M5 the next two hours spanned 15.9 pips above 1.5 against 9.3 pips below 0.8. Measured in ATR, the unit your stop is set in, the move was smaller on all four charts.
- It said nothing about direction. Across 20 reading-by-chart groups, the next 24 bars carried on in the direction of the last 12 between 44% and 55% of the time.
The ATR oscillator is sold as the missing piece of a trend system. Your moving average gives the direction, the ATR oscillator tells you whether the market has the energy to follow through. Take the cross only when volatility is expanding, the guides say, and you skip the dead, choppy signals.
That is a claim I can count. I took two common trend entries, scored every signal, and then let the oscillator decide which ones to keep.
What is the ATR oscillator?

ATR, the average true range, measures how far price travels in a bar on average. It has no direction. The full background and its settings are in ATR indicator settings for MT4.
The oscillator compares a fast ATR with a slow one. With ATR(5) over ATR(50):
- Above 1: the last 5 bars were wider than the last 50. Volatility is expanding.
- Below 1: the last 5 bars were quieter than usual. Volatility is contracting.
On my data the median reading was 0.93 to 0.95. The oscillator sat above 1 on 40% to 45% of bars and above 1.2 on 20% to 23%. The usual advice is to take a trend signal only when the reading is above 1, or above a stricter level such as 1.2, or when it is rising.
How was it tested?

- Data: EURUSD M5 from June 3 to August 26, 2026, 16,926 bars; gold M5 from June 16 to August 26, 13,736 bars. M15 built from the same bars: 5,642 and 4,577.
- Signals: the EMA 9/21 cross and the MACD 12/26/9 signal-line cross, entry at the close of the signal bar. 5,201 signals in total.
- Oscillator filters: above 1, above 1.2, below 1 (the opposite, as a control), and rising compared with 5 bars earlier.
- Exit: stop 1.5 ATR, target 3 ATR, 48 bars at most, one trade at a time.
- Cost: 1 pip on EURUSD, $0.30 an ounce on gold.
- Pass: profit after cost, profit in both halves (split July 15) and above the 95th percentile of 200 random-entry runs with the same exit. The same three checks as in forex trading systems tested.
Did any oscillator filter pass?
| EMA 9/21 cross | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| No filter | -1.68 (606) | +0.33 (173) | +1.16 (366) | +0.60 (118) |
| Oscillator above 1 | -1.71 (361) | +1.08 (90) | +0.98 (210) | +1.13 (60) |
| Oscillator above 1.2 | -1.67 (220) | -0.64 (51) | +1.84 (114) | +4.26 (32) |
| Oscillator below 1 | -1.35 (319) | -1.20 (100) | -0.04 (209) | +1.31 (75) |
| Oscillator rising | -1.56 (406) | -1.00 (112) | -0.70 (268) | +2.66 (82) |
| MACD 12/26/9 cross | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| No filter | -1.38 (854) | -1.25 (238) | -0.39 (557) | +0.82 (173) |
| Oscillator above 1 | -1.59 (512) | -0.72 (144) | -0.15 (332) | +0.60 (98) |
| Oscillator above 1.2 | -1.63 (320) | -0.26 (96) | +0.80 (186) | -0.45 (55) |
| Oscillator below 1 | -1.15 (451) | -1.73 (127) | -0.73 (323) | +0.25 (121) |
| Oscillator rising | -1.45 (536) | -0.51 (154) | -1.66 (345) | +2.24 (108) |
Profit per trade after cost: pips on EURUSD, dollars an ounce on gold. Trades in brackets. Bold means the run passed all three checks.
Only one filtered line passed: the EMA cross on EURUSD M15 with the oscillator above 1, +1.08 pips over 90 trades and positive in both halves. It is a real improvement on the unfiltered +0.33, but the unfiltered cross had passed already. The oscillator did not turn a losing system into a winning one anywhere.
On EURUSD M5 all 10 lines lost between 1.15 and 1.71 pips a trade. On gold M15 several lines look large, +$2.24 to +$4.26, but none cleared the random-entry bar: on 32 to 108 trades the 95th percentile of random entries was between +$3.3 and +$6.6. The stricter level of 1.2 was the best line in 4 of the 8 signal-and-chart columns and the worst in 2.
Did the oscillator pick better signals, or just fewer?
Every filter trades less, and trading less means paying the spread less. To separate selection from that, I scored every signal as its own trade and asked where the filter landed among 1,000 random subsets of the same size.
| Percentile among random cuts | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| EMA cross, above 1 | 43 | 90 | 91 | 68 |
| EMA cross, above 1.2 | 55 | 46 | 96 | 78 |
| EMA cross, rising | 42 | 17 | 4 | 86 |
| MACD cross, above 1 | 36 | 91 | 70 | 17 |
| MACD cross, above 1.2 | 38 | 92 | 84 | 8 |
| MACD cross, rising | 52 | 94.6 | 6 | 82 |
50 is what a coin-flip filter scores. 95 or above would mean it picked better than 95% of random cuts.
One of 24 cells reached 96: the EMA cross on gold M5 above 1.2, and its system still failed the first half. The rising rule swung from the 4th percentile on gold M5 to the 94.6th on EURUSD M15. When I compared kept and dropped signals directly, 2 of 32 gaps were bigger than noise, and they pointed in opposite directions: rising kept the worse EMA crosses on gold M5 by $1.77 and the better MACD crosses on EURUSD M15 by 1.65 pips.
The “below 1” control is the useful part of this table. If expanding volatility were the key, contracting volatility should have been clearly worse. On EURUSD M5 it was the better side for both signals.
Why did the confirmed signals come later?
Because ATR rises after price has moved. A fast ATR above the slow one means the last few bars were large, and a trend cross arrives after large bars in its direction.
| Median, in ATR | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| EMA cross, all: already moved | 3.63 | 3.26 | 3.04 | 2.98 |
| EMA cross, above 1: already moved | 3.86 | 3.59 | 3.18 | 3.37 |
| EMA cross, all: room left | 2.18 | 2.62 | 2.24 | 2.18 |
| EMA cross, above 1: room left | 1.85 | 2.61 | 2.22 | 1.84 |
| MACD cross, all: already moved | 2.98 | 2.76 | 2.42 | 2.41 |
| MACD cross, above 1: already moved | 3.19 | 3.05 | 2.71 | 2.70 |
“Already moved” is the distance from the extreme of the last 24 bars to the signal. “Room left” is the furthest price went in the trade’s direction over the next 24 bars.
On all 8 pairs the confirmed signal came later, and on all 8 its room left was smaller. Signals during contracting volatility came earlier on all 8. The oscillator is a confirmation in the literal sense: it confirms a move that has already happened. The same timing problem shows up in bar close vs live signal.
What does a high ATR reading actually predict?
I went past the trade signals and checked every bar: how wide the next 24 bars were, and whether price carried on in the direction of the last 12.
| Next 24 bars | Below 0.8 | 0.8 to 1 | 1 to 1.2 | 1.2 to 1.5 | Above 1.5 |
|---|---|---|---|---|---|
| EURUSD M5, range in pips | 9.3 | 10.7 | 13.0 | 13.6 | 15.9 |
| EURUSD M5, range in ATR | 5.86 | 5.73 | 5.86 | 5.56 | 5.35 |
| Gold M15, range in dollars | 44.7 | 45.0 | 40.0 | 41.9 | 46.7 |
| Gold M15, range in ATR | 5.95 | 5.45 | 4.39 | 3.86 | 3.25 |
| EURUSD M5, carried on | 47.9% | 48.7% | 49.9% | 48.5% | 49.1% |
| Gold M15, carried on | 52.1% | 50.6% | 50.1% | 44.2% | 48.1% |
Medians. EURUSD M5 and gold M15 shown; the other two charts sit between them.
In pips the oscillator works: on EURUSD M5 the next two hours were 71% wider when the reading was above 1.5. But the stop and target in almost every ATR system are set in ATR, and in ATR the next move was smaller after a high reading on all four charts. On gold M15 it fell from 5.95 ATR to 3.25. A volatility burst inflates the ATR, so your stop gets wider, and then the market calms down.
Direction was a coin. Across all 20 groups on four charts, price carried on 44% to 55% of the time. A high reading does not tell you the trend will continue, only that the last few bars were big. The same lesson came out of the ATR volatility breakout strategy.
So is the ATR oscillator worth adding?
- Not as a trend confirmation. 1 of 32 filtered runs passed, and that one passed without the filter too.
- It makes entries later. 0.14 to 0.39 ATR later on every chart, with less room in front of the trade.
- It predicts size, not direction, and size only in pips. Useful for position sizing or for avoiding a fixed pip stop. That use is measured in fixed vs ATR stop.
- Do not trust a single good chart. Above 1.2 made +$4.26 a trade on the gold M15 EMA cross and lost 0.64 pips on the EURUSD M15 one, where the plain cross made money.
How the oscillator compares with ADX, the other common “is there a trend” filter, is in ATR oscillator vs ADX. How to build it in MetaTrader and what happened across 24 settings is in ATR oscillator settings for MT4.
Frequently asked questions
Does the ATR oscillator confirm a trend?
Not on this data. With the oscillator above 1, the EMA and MACD crosses came later and had less room left on all 8 chart pairs, and only 1 of 32 filtered runs passed.
What does an ATR oscillator above 1 mean?
The fast ATR is above the slow ATR, so recent bars were wider than usual. It describes the last few bars, not the next ones.
Does high volatility mean the trend will continue?
No. In every reading group on every chart price carried on in the same direction 44% to 55% of the time, which is a coin toss.
Is ATR(5)/ATR(50) the best setting?
No setting held up. Across 24 fast, slow and threshold settings the best on the first half finished last in the second half on 3 of 4 charts. The details are in the settings guide.
Should I trade only when volatility is low then?
The “below 1” control was not reliably better either. It was the better side on EURUSD M5 and the worse side on EURUSD M15. The oscillator did not sort signals in a stable way.
Want a trend line that does not wait for volatility to prove itself?
It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

