The average daily range adr indicator puts the session’s usual distance on the chart. It shows the current day open as a dotted silver line. Two purple lines then sit one average daily range above and below that open. Intraday traders use them as plain targets and stretch markers.
This build ships as average-daily-range-adr-indicator-mt5-indicator-forexmt4systems.ex4 for MT4 and average-daily-range-adr-indicator-mt5-indicator-forexmt4systems.ex5 for MT5; the screenshots below come from XAUUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 3: Day open, ADR upper, ADR lower |
| Alerts | popup, push notification, email, sound |
| Inputs | 7 |
What the Average Daily Range Adr Indicator draws on the chart
Day open shows as the dotted silver line. It holds the opening price of whichever session each bar belongs to, so it steps at every new day. ADR upper runs one average range above that open, and ADR lower runs the same distance below. Both purple lines draw at two pixels wide.
All three lines sit over the candles. Together they form a channel that resets each session. Inside the channel price still has room by the average measure. Outside it the day has already gone further than the recent norm.
The lines run flat across a session. They only jump at the day boundary. A fresh open then takes over and the whole band recentres around it.
- Day open: line, silver, width 1
- ADR upper: line, medium purple, width 2
- ADR lower: line, medium purple, width 2

How the Average Daily Range Adr Indicator calculates its values
Measuring past sessions
The scan works from chart bars, not from daily candles. It groups bars by calendar day and tracks the high and low of each one. Bars from today drop out of the sample. It keeps going until it has AdrDays complete sessions. Then it averages those ranges into one number.
Finding the session open
Each bar needs its own opening price. The code walks back through nearby bars until the calendar day changes. The open of that first bar becomes the reference. Every bar in the same session shares it. So the silver line stays flat until the next rollover.
Placing the bands
Two sums finish the picture. ADR upper takes the session open plus the average range. ADR lower takes the same open minus that number. Both lines then hold their value for the rest of the day. So they make easy targets to work with.
How to read the signals
Start with where price sits inside the band. Near the middle, the session still has room both ways. Near ADR upper, buyers have already used the usual daily distance. That is a place to bank rather than to chase.
The edges work as soft targets. Many intraday traders take partial exits there and trail the rest. A close beyond ADR upper marks an expansion day, so the average no longer fits it. Quiet range days often stall well inside both lines.
Alert channels in this build: popup, push notification, email and sound.
EnableAlerts sits at the top of the alert block, with EnablePopup, EnablePushNotify, EnableEmail and EnableSound covering popup, mobile push, email and sound.
Every Average Daily Range Adr Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
AdrDays |
AdrDays (default 14) sets how many completed sessions feed the average. A smaller count reacts faster to a change in volatility. A larger one steadies the band. | 14 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
(see inputs panel) | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
The screenshot chart uses XAUUSD on H1, where the swings show up clearly. Gold moves a long way most days, so the band gets tested often. Majors and index CFDs act the same way, with tighter bands. Any intraday timeframe suits it, because the maths only needs the day boundary. On daily charts the lines lose their point.
When the Average Daily Range Adr Indicator fails
The day boundary follows your broker’s server clock. One feed rolls at midnight in New York, another rolls at midnight in London. The whole band shifts with that choice. Check where the silver line steps before you trust it.
Averages hide their own spread. Fourteen quiet sessions plus one huge one give the same mean as fourteen normal ones. The band then looks fine on a day that acts nothing like the sample behind it.
A short chart history starves the scan. The code needs enough loaded bars to find AdrDays complete sessions. On a fresh terminal or a thin symbol it averages fewer days. The band then comes out too narrow.
The alert toggles do nothing in this build. No condition ever calls the alert routine. So the band stays quiet when price reaches an edge.
Copy average-daily-range-adr-indicator-mt5-indicator-forexmt4systems.ex4 into MQL4/Indicators and average-daily-range-adr-indicator-mt5-indicator-forexmt4systems.ex5 into MQL5/Indicators, then restart the terminal and drag the Average Daily Range Adr Indicator onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Moving Average Crossover Strategy
Background reading on the method behind the Average Daily Range Adr Indicator: Average True Range Percent Atrp at StockCharts ChartSchool, Daily Stocks on Wikipedia.
Download the Average Daily Range Adr Indicator for MT4 and MT5
The zip average-daily-range-adr-indicator-mt5-indicator-forexmt4systems.zip holds average-daily-range-adr-indicator-mt5-indicator-forexmt4systems.ex4, average-daily-range-adr-indicator-mt5-indicator-forexmt4systems.ex5 and a short README, compiled files only. Enter your email below and the download link arrives in your inbox.
Download this indicator free
Enter your email and the file is yours. You also get the full MT4 and MT5 library.
FAQ
Why does the Day open line step at the same hour each day?
It tracks the calendar day of every bar. When that day changes, the code takes the open of the first bar in the new session and holds it. The step lands on your broker’s server rollover. That hour can sit well away from your local midnight.
Does AdrDays include the current session in its average?
The current session stays out. The scan skips every bar that shares today’s calendar day. It then collects complete sessions until it reaches the AdrDays count. So today’s own range never feeds the reference, and the band holds still from the first bar.
What does a close beyond ADR upper tell me on XAUUSD H1?
It says gold has already covered more than its recent daily average. Expansion days do run further, so the line works as a warning and not a ceiling. Most traders tighten stops or take partial exits there. Look for news that explains the extra range.
Can I load the average daily range adr indicator on a daily chart?
You can, but the bands lose their meaning. Each daily candle becomes one bar inside its own session, so the open it uses equals that bar’s open. The channel then wraps a single candle at a time. Keep it on intraday charts, from M5 up to H1.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Average Daily Range Adr Indicator as one input. Always backtest before trading live.
Category: this is part of our Volatility collection. Also, still, browse more Volatility for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- Learn more about the underlying method in Average True Range Percent Atrp at StockCharts ChartSchool.
- For wider market background, see Daily Stocks on Wikipedia.
