The adr indicator answers whether today is a big day or a small one, measured against the recent norm. Each daily range gets drawn as a histogram in pips. The baseline is the average of the last AdrDays ranges, and the bar colour depends on which side of it the day falls.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Separate window (levels 0) |
| Plots | 3: Expansion day (pips), Contraction day (pips), ADR baseline (pips) |
| Alerts | popup, push notification, email, sound |
| Inputs | 12 |
What the Adr Indicator draws on the chart
Expansion day (pips) takes the bars whose daily range beat the baseline.
Contraction day (pips) takes the ones that fell short.
ADR baseline (pips) is the average range across AdrDays daily bars.
A zero level crosses the pane, since every reading is a positive pip distance.
- Expansion day (pips): histogram, width 3
- Contraction day (pips): histogram, width 3
- ADR baseline (pips): line, width 2

How the Adr Indicator calculates its values
Finding the day behind each bar
For every chart bar the code works out which daily bar that timestamp belongs to, then reads that day high and low directly.
Reading the daily series rather than the chart is what makes the figures identical whichever timeframe you attach this to.
Range in pips
The day high minus its low, converted to pips. The code works out the pip size for the symbol rather than assuming it, so a three digit or five digit feed reads correctly.
Expressing the result in pips is what makes the pane readable as a number you already think in.
The baseline and the colour split
The baseline averages the previous AdrDays daily ranges, twenty by default, which covers about a month of trading.
Each day then lands in one histogram or the other depending on whether its range beat that average. Only one buffer receives a value per bar, which is what gives the pane two clean colours.
How to read the signals
A run of expansion days means volatility has been running above its own recent norm.
The baseline moves as the window rolls, so what counts as expansion changes over time.
Every figure is in pips, so it converts straight into stop and target thinking.
The histogram steps at day boundaries rather than tracking anything intraday.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
Alerts cover popup, push, email and sound. A bar time check keeps it to one alert per closed bar.
Every Adr Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
AdrDays |
Completed daily bars averaged into the ADR. AdrDays is how many daily ranges feed the baseline. It defaults to 20, roughly a month of trading. | 20 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ExpansionColor |
Day range at or above the ADR. ExpansionColor shades the days that beat the baseline, dark orange by default. | dark orange |
ContractionColor |
Day range below the ADR. ContractionColor takes the ones that fell short, steel blue by default. | steel blue |
AdrLineColor |
ADR baseline color. | silver |
Alert settings
| Setting | What it does | Default |
|---|---|---|
MaxBars |
History bars to compute (0 = all). MaxBars caps how many chart bars get processed, 2000 by default. | 2000 |
EnableAlerts |
Master alert switch. | on |
AlertPct |
Alert when the day range reaches N % of ADR. | 100.0 |
EnablePopup |
Popup alert. | on |
EnablePushNotify |
Push notification to phone. | off |
EnableEmail |
Email alert. | off |
EnableSound |
Sound alert. | off |
SoundFile |
Sound file. | alert.wav |

Settings that fit your chart
The screenshot uses EURUSD H1. A daily range reading belongs on an intraday chart, since that is where you cannot already see the day as a single candle. On the daily chart itself each bar is its own range and the histogram tells you little you cannot read from price.
When the Adr Indicator fails
A twenty day average smooths over a single violent day, so the baseline understates how unusual that day was.
The reading only updates at a day boundary, so it says nothing about how the current session is developing.
Range ignores direction entirely. A day that travelled far and closed flat reads exactly like a strong trend day.
The baseline uses the previous days, so a sustained volatility shift takes AdrDays to work fully into it.
Copy the compiled Adr Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Download the Adr Indicator for MT4 and MT5
The zip holds the compiled Adr Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. 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
What makes a day count as an expansion day?
Its high to low range beat the baseline, which is the average of the previous AdrDays daily ranges. Beat it and the bar lands in the expansion histogram; fall short and it lands in the contraction one. Only one of the two receives a value per bar.
Why is everything reported in pips?
Because that is the unit you already size stops in. The code works out the pip size for the symbol rather than assuming it, so a five digit feed reads the same as a four digit one, and the number on the pane converts straight into a stop distance.
Does AdrDays 20 include today?
The baseline averages the previous daily ranges rather than the forming one, so today gets measured against days that have already finished. That keeps the comparison honest, since a partially formed day would otherwise drag the baseline down.
Can I read direction from an Expansion day bar?
No. A daily range measures the distance between the high and the low and ignores where the day opened or closed. A day that travelled a long way and finished flat produces exactly the same bar as a strong one-way trend day.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Adr Indicator as one input. Always backtest before trading live.
Authoritative references
- Learn more about technical indicators.
