The Best ADR Indicator for MetaTrader 4

ADR Indicator for Forex

Are you looking for an ADR indicator for MT4? Today, I’m going to show you what is, in my opinion, the best average daily range indicator for MetaTrader 4.

There are many reasons to incorporate an average daily range indicator into your trading plan. For instance, if your trading system provides reversal setups, those reversals are more likely to work out after the average daily range has been hit. Similarly, it would not be wise to trade continuation patterns in the direction of price action that has already hit its ADR.

What’s the Best ADR Indicator for MT4?

I use the excellent ADR indicator from Day Trading Forex Live. It has been very useful to me, so I went looking for a similar ADR indicator to share with you guys. What I found is almost identical.

I had to edit the code slightly to get the results that I was looking for, but I think you guys will be pretty happy with it. The result is a simple, clean looking ADR indicator for MT4.

Note: I basically commented out some code related to labels which cluttered up the chart. I also commented out a couple of unnecessary features.

ADR Indicator MT4

As you can see from the chart above, this ADR indicator prints a text label in the upper-left hand corner showing the average daily range as well as the current day’s range. It also prints out an upper and lower ADR line which adjust with the day’s price action.

Note: The ADR is not the difference between the upper and lower levels that this indicator displays. The ADR is represented by measuring the difference between the lowest low of the day and the upper ADR level, or the highest high of the day and the lower ADR level – depending on which direction your measuring.
These levels adjust when new highs or lows are made, because the ADR stays the same (at least until the next day). In other words, in the image above, if price were to make a new high for the day, the lower ADR level would come up so that the measurement between the two would remain 114.9 pips.

When one of those lines are reached, the average daily range has been hit. You can select different colors, thicknesses, and styles for your regular line and your hit line. I use the same thickness and style, but my regular line is black, while my hit line is crimson (see the settings below).

The indicator also prints out a vertical line marking the start of the day. This is helpful for making sure that the indicator is in sync with your broker’s data. To check this, bring up your period separators (Ctrl+Y), and make sure the vertical lines are in sync.

Average Daily Range Indicator

This indicator should work with most brokers by default, but if it’s out of sync, you can adjust the TimeZoneOfData or TimeZoneOfSession variables to bring the indicator into sync with your broker.

Other settings include adjusting the ATRPeriod variable to increase or decrease the number of days that will be counted to get your average range. I suggest using a 15-day average. You can also change the line styles, thicknesses, and colors as I mentioned earlier.

Installation Instructions:

  1. Download and extract the custom ADR indicator.
  2. Move it to your “Indicators” folder (MetaTrader 4 > MQL4 > Indicators).
  3. Start or restart MT4.
  4. Open your “Navigator” window, if it’s not already open (Ctrl+N).
  5. Drag the ADR indicator onto your chart.
  6. Adjust your desired settings, if needed, and click the “Ok” button.

I use an average daily range indicator anytime I’m trading intra-day strategies. I hope you guys find this ADR indicator for MT4 as useful as it has been for me. If you found this indicator useful or you’d like to know what I changed in the code, leave a comment below.

47 thoughts on “The Best ADR Indicator for MetaTrader 4”

    • I commented out some useless labels that cluttered the chart (in my opinion) and an email alert feature that I couldn’t get to work.

      If you edit the indicator code you can see what I commented out with //. Simply remove the //s to reactivate those features.

  1. Hi chris, I am an avid reader of you free website. I have signed up to DTFL on your recommendation. I wonder if you could send me an email and teach us exactly how to use this particular ADR..sorry just a newbie in trading.

    • Hey ch,

      Thanks for the comment and thanks for reading! I’m glad to hear that you’ve signed up to DTFL, especially if you’re new. You’re off to a great start!

      There’s plenty of training on how Sterling uses the ADR in the member’s area. We use it for several things in DTFL. Be sure to watch the training videos and ask plenty of questions in the shoutbox and live trading sessions.

      In general, you might use an ADR to judge whether or not you should take a trade. For instance, If you’re considering a trade with a take profit 40 pips away, but the average daily range will be hit in only 20 pips (in the same direction of your trade), you may decide to skip that trade or adjust your stop loss to breakeven earlier than usual.

      Similarly, once the average daily range is hit reversal trades are more likely to be successful.

      Also, some traders increase or decrease their stop losses and take profits based on the ADR. For instance, you probably wouldn’t want to use a 40 pip take profit on a currency pair that has a 60 pip average daily range.

  2. Hey Chris!

    Thank you for the indicator!
    However, there is one thing I don’t understand. Isn’t the distance between the upper and the lower level supposed to equal to the ADR value in the top left corner? When I attach the indicator to my chart, the EUR/USD ADR value is 1165, but the distance between the upper and the lower level equals to $0.01797. Since the two lines visualize the daily range, isn’t the lines supposed to be on a distance equal to the ADR value?

    Also, what is the default period value of the indicator and how can I change it?

    Thank you!

    • Hey Damyan!

      Thanks for the comment. The distance between the lowest low and upper ADR level or highest high and lower ADR level represents the current value of the ADR. So an ADR value of 1165 would mean that the difference between the low and upper ARD level or the difference between the high and lower ADR level should be 116.5 pips – depending on which direction you are measuring.

      The default ADR is based on the ATR (average true range) of 15 days. You can change this by adjusting the value of the “ATRPeriod” variable.

      I hope that helps. Thanks for reading!

      • I absolutely agree with this. However, if we convert $0.01797 in pips, we will get 179.7 pips. The ADR value I get is 1165, which is 116.5 as you said. There is a great difference between the distance in the two levels (179.7 pips) and the ADR value (116.5 pips).

        This is what confuses me. I would be grateful if you explain it please. 🙂

        • I should have been explained what I meant more clearly. The distance from the lowest low in price to the upper ADR level represents the current ADR value.

          The same goes for the highest high of the day to the lower ADR level. There would be no point in directly measuring the difference of the two ADR levels, because you would be combining two separate measurements.

          Looking back at my first reply, I didn’t make that clear. I thought you were already measuring correctly. I need to change that so I don’t confuse others.

          Edit: I also added a note to the article to hopefully clarify this issue.

  3. Hi Chris, thanks for the indi. Could I trouble you to add a text option to the lines?…or a way to choose another style of line, for example bolder dashes or circles. If you can’t no problem. I just have s/r lines and fib lines already on my chart so I just wanted to differentiate them a bit better. Also, (I don’t mind this myself) the indi only outputs one color despite the option for two colors…unless it is just me.

    • Hey Jeff,

      Thanks for the comment. You can change the style of line by changing the “LineStyle” variable. Unfortunately, like all other lines in MT4, certain styles (like dots and dashes) will only work with the default, thin line thickness.

      You can change the thickness of the lines or the colors by changing the “LineThickness1” and “LineThickness2” or “LineColor1” and “LineColor2” variables respectively. LineThickness1 and LineColor1 control how the ADR lines look before the ADR is hit for the day. LineThickness2 and LineColor2 control how the ADR lines look after the ADR is hit for the day (if it is hit at all).

      As far as text labels, you can activate these two sections of code by editing the indicator with the MT4 editor:

      // put a label on the line
      // if (ObjectFind(labelname) != 0)
      // ObjectCreate(labelname, OBJ_TEXT, 0, Time[0]/* MathMin(Time[BarForLabels], startofday + 2*Period()*60)*/, level);

      // ObjectMove(labelname, 0, Time[0] – BarForLabels*Period()*60, level);

      // pricelabel= ” ” + text;
      // if (ShowLevelPrices && StrToInteger(text)==0)
      // pricelabel= pricelabel + “: “+DoubleToStr(level, Digits);

      // ObjectSetText(labelname, pricelabel, 8, “Arial”, col1);

      AND . . .

      //if (ObjectFind(name + ” Label”) != 0)
      // ObjectCreate(name + ” Label”, OBJ_TEXT, 0, x, vleveltext);

      //ObjectMove(name + ” Label”, 0, x, vleveltext);
      //ObjectSetText(name + ” Label”, text, 8, “Arial”, col1);

      Remove the double forward slashes “//” from each line to reactivate those two label features. You may not need to remove the forward slashes from both sections of code to get the result you want.

      After you’ve made your desired changes, compile and save.

  4. Hi Chris – this is one of the best Fx sites that I’ve come across during my six years of trading. Thank you sincerely for your generosity in sharing all this valuable “easy to follow/understand” information with us traders. Genuinely dedicated and sincerely helpful people like you are very rare. May you blessed with many years of good health, happiness and prosperity. Thank you sincerely pal. Best regards, Sylvester

    • Wow, Sylvester! Thanks for the kind words, brother. I’m glad you’re getting value out of this site. I love to hear that. Let me know if I can help you in the future.

  5. Hi Chris, I think this indicator is using the built-in function iATR (line 134) to calculate an ADR value. The ATR calculation has different algorithm than that of ADR, even though they may give the same result. Nonetheless, I do agree with the concept of setting the ADR upper/lower level based on the low/high of day; instead of using today’s open +/- ADR/2. Thank you.

    • I use the one that you can download in the members’ area of DTFL. I’m not sure if it uses the same built-in iATR function that you’re talking about or not, but when I compared the two indicators, they seemed to draw identical levels. I wanted to find something similar to the indicator that we use in DTFL for you guys (who aren’t members) to use. Thanks for reading.

  6. hi Chris, i’m new to forex trading, may i know what is TimeZoneOfData and TimeZoneOfSession in this ADR indicator ?
    Here is Malaysia(GMT+8), my broker server is GMT+2, how to setting this ADR parameters to London session ?

    • Those are used to make sure the ADR display is synced up with the time zone your broker used in their MT4 platform. Use Ctrl+Y to bring up your period separators in MT4. Make the necessary adjustments with positive or negative numbers to make sure the ADR display is lined up with your MT4 platform.

      If you’re doing any kind of candlestick trading, you need to make sure the charts you base your trades on is a New York close chart (you can use Trading View as a reference), with 5 candles per week (not 6 like some brokers use). That’s important! Simply adjusting your ADR to the correct time is not adequate. If your broker doesn’t use New York close charts, just use their platform for order entry.

    • Hello Joel,

      This is an average daily range (ADR) indicator – not a trading system. No entries where explained.

      If you want to learn a profitable trading system that uses the ADR, among other things, to qualify good trading entries, check out my full review of DTFL.

  7. Hi Chris, An excellent site, thanks. Please compare the ADR and ATR with special reference to the fact that the ATR is a standard indicator on MT4 whereas the ADR requires intervention. Is the difference between the results from each of them really worth the extra effort?

    • Hey John,

      Thanks for reading and for the kind words. For starters, the ATR can be used to average any period – not just the daily range. The ATR also accounts for gaps, whereas the ADR doesn’t. However, there are rarely gaps in the Forex market – the exception being when the market reopens after the weekend.

      In the Forex market, an ATR on the daily chart would essentially give you the same information as this indicator. The reason I like this indicator and shared it is because of the simple visual representation of the ADR it plots on your charts (regardless of which time frame you are viewing). We use a similar indicator in DTFL every day. I think it’s worth the download.

    • You’d input either a positive or negative number, e.g., 1 or -1, in order to align the start of your session correctly. You would only need to do that if you’re not using 5 daily candle NY close charts, which you should be using anyway. If you’re broker doesn’t use the correct charts, do your analysis with a demo account that does and just use your broker’s platform for order entry. No reason to make it more complicated than that. Trading is hard enough to do with correct charts.

  8. my only question Chris is this. I have the indicator on my chart however, I get every Time chart with the ADR lines except the Daily. How do I Fix this Issue or Porblem so that i Have the ADR lines showing on my Daily Chart As well

    • Since the ADR is the average daily range, it will not show on the daily chart. This indicator is used to show the average daily range on charts lower than the daily. I find it most useful on the 15-minute charts or lower, but I don’t personally recommend trading lower than 15-minute charts.

      If you wanted to have something similar to this show on the daily chart, you could possibly modify the code to show the average weekly or monthly range on the daily chart.

    • You’d have to constantly update your levels if you did this manually, because the lines change as price starts ranging.

      If price heads down, for instance, you’d have to update your top line because the starting point for the upper range would have changed.

      The indicator works by averaging the ATR (Average True Range) of the last 15 days (or whatever you set it to). Then it plots that average range in both directions.

  9. Hi Chris, I have the ADR indicator loaded onto the Indicators section but when I drag onto the chart it doesn’t engage. Also I track 22 pairs for some reason I can’t get the bid /ask or tp lines to show on one particular pair on the chart .

    • Hey Allan,

      Yes. I’m still using DTFL. The membership is a lifetime one. To be honest, I’m not trading as much as I used to, though. I’m focused on other business right now that is taking up most of my time.

      That being said, one of the best things about trading is that when you find something that works, it generally continues to work (especially with a system like Sterling teaches). I get that same question a lot, and I know what you’re really asking, so hopefully that eases your mind.

      As for the community, it’s alive and well. Sterling even brought the chat feature back some time ago, and I haven’t updated my review page to reflect that change yet.

      Good luck!

  10. Hi Chris,

    I’m using your ADR bands on Tradingview after moving across from using eSignal and their stock ADR.

    Is there any chance you can add a “midline” to the code (ADR Hi – ADR Low /2) as I find it useful to know at a glance if PRICE is in the + or – sections relative to the mid point.

    Thank you in anticipation 🙂

    • Hello Peter,

      I did not create this indicator. I just shared it with my readers. That being said, feel free to download it and make any changes you need to make to it. It’s fairly easy to edit MT4 indicators if you have the motivation. Good luck!

Leave a Comment