ADR Indicator: Each Day Against Its Own Average Range

Written by Dominic Walsh · Published · Last updated

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
EURUSD H1 pane: the adr indicator showing expansion days above the ADR baseline.
EURUSD H1 pane: the adr indicator showing expansion days above the ADR baseline.

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
Inputs panel for the adr indicator showing AdrDays and MaxBars.
Inputs panel for the adr indicator showing AdrDays and MaxBars.

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.

  • 1,380+ indicators
  • MT4 and MT5 files
  • No spam, unsubscribe any time

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

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

How we build, test and correct every tool: Editorial & Testing Policy. Trading carries risk; see the disclaimer.

Leave a Comment