Back to Guides
Guide

Average Daily Range Indicator: Formula and Whose Day

The average daily range indicator averages each day's high minus low over N days. On a 24-hour pair, the answer depends on where your chart ends the day.

The average daily range indicator takes each completed day's high minus its low and averages those ranges over the last N days, read in pips on a currency pair. On an instrument that trades around the clock, the number depends on where your chart decides the day ends.

What is the average daily range?

The average of each day's high minus low over a chosen lookback, expressed in the instrument's own units.

Audacity Capital puts the limits of it in one sentence: "ADR is a historical average of completed daily high-low ranges. It is a measure of an instrument's movements during a session, not the direction of the next move." It is backward looking, and it measures distance rather than direction.

The average daily range formula, and the two ways it is written

ADR is the sum of (High minus Low) over N days, divided by N.

LuxAlgo prints both forms: "ADR subtracts each completed day's low from its high and averages those ranges over a chosen number of days", and it reports TradingView's help wording as "the average of the highs minus the average of the lows over the Length". Those two expressions give the same number, because averaging is linear. LiteFinance writes the same calculation as a simple arithmetic mean: it "calculates the average daily movement of an asset over a specified period using a simple arithmetic mean and the highest and lowest values of each trading day."

Two published worked examples:

  • LuxAlgo: daily ranges of $3.20, $2.85, $4.10, $2.95 and $3.40. They sum to $16.50, so the five-day ADR is $3.30.
  • Forex Training Group: five daily ranges of 56, 27, 78, 30 and 42 pips, giving "ADR = 46.6 (approx. 47)".

A worked example in pips

Round numbers on a currency pair.

DayHighLowRange
11.08701.080070 pips
21.09001.081585 pips
31.08801.082060 pips
41.09251.083095 pips
51.09401.085090 pips

The five ranges sum to 400 pips, so the five-day ADR is 400 divided by 5, or 80 pips.

Now the other way round. The average of the five highs is 1.0903. The average of the five lows is 1.0823. The difference is 0.0080, which is 80 pips, the same answer. Average the ranges or difference the averages, and nothing changes.

Which period should you use?

Fourteen days is the common default, and a default is a starting value rather than a finding.

LuxAlgo states where that default comes from: "A 14-day length is the default on both TradingView's built-in study and the LuxAlgo indicator, and both can be changed." It also describes the trade-off without recommending a number: "Shorter lengths, such as 5 to 10 days, respond quickly to a change in volatility but let a single outlier day dominate", while longer ones smooth the outliers and lag when conditions change. Forex Tester's MetaTrader walk-through uses the same default, "Day_x = 14 to calculate a 14-day ADR", and LiteFinance suggests matching the lookback to the window you care about, 20 days for a month or 5 days for a week.

Audacity Capital gives the common lookbacks as "5, 10, 14 and 20 days", with no right one among them: "Consider the lookback as something to be tested on the instrument and your holding period", and "Don't blindly follow a default setting."

None of the lookbacks these guides publish comes with a test, so none is recommended.

Whose day? Where your chart ends the trading day

A currency pair trades 24 hours a day and closes only at the weekend, so "the daily high minus the daily low" means nothing until something decides when a day starts. That something is your chart, and charts do not agree.

LuxAlgo says so directly: spot forex has no exchange session behind it, so what counts as a "day" is set by the broker's server time. It gives the consequence as a rule, "Compare readings only across charts that use the same daily boundary", and it explains the mechanism: "Liquidity varies by session, so a day's range depends on which sessions the broker's daily bar spans."

The three asset classes differ sharply on this point, all from the same page. For stocks, "The daily candle follows the exchange session of the symbol", and whether pre-market and after-hours prints are included changes the range materially. For crypto, "most charts roll the daily candle at 00:00 UTC". For spot forex there is no exchange session to follow, so the boundary is whatever your platform uses.

A day's high or low often forms near a session edge, around the London or New York open. Move the boundary by a few hours and that extreme lands in the neighboring day instead. Two platforms then average fourteen different windows of the same price history and print two different ADRs for the same pair. They are measuring different days.

So before you trust an ADR number, find out what your chart calls midnight. On ChartLabs it is midnight UTC, which is where we cut the daily bar, so an ADR read on our charts is an average of UTC days. Our Average Daily Range indicator uses the same cut, and it folds the short forex Sunday-evening session into Monday, so a Sunday stub never counts as a day of its own. If you cannot find out, treat the figure as local to that chart and leave it out of any comparison.

ADR vs ATR

ADR averages high minus low and ignores what happened between sessions. ATR's true range reaches back to the previous close, so it counts the gap.

Forex Tester's FAQ states it cleanly. ADR "measures the average high-low price range over a set period, focusing on intraday volatility without accounting for gaps between sessions", while ATR "includes gaps (via prior closing prices)".

A distance measured without gaps understates what it costs to hold a position through a session break. True range, the three cases it covers and which average "ATR 14" uses are a separate subject.

How do traders read it?

As how far the instrument usually travels in a day, and therefore how much of today's usual travel is already spent.

The reading in the sources' own terms:

  • InvidiaTrade gives the plain version: "If EUR/USD has a 14-day ADR of 80 pips, it means that on average, the pair moves 80 pips from high to low daily."
  • The same page gives the remaining-range reading: "If a pair has only moved 30% of its ADR by the London session, there may be more room for price to move during the New York session." Its two worked cases agree with each other: 75 of 80 pips used by the London close is "Little room left for further expansion; entering late could be risky", while 60 pips of a 130 pip ADR in the Asian session is "Plenty of volatility left for London and New York".
  • LuxAlgo's projection is the same idea drawn on the chart: half an ADR above the daily open and half below it, a zone exactly one ADR wide. Its own caveat: "The projection assumes the day will travel about its average distance; it does not know which way."

An average is not a limit. A day travelling 150% of its ADR has not broken anything. It is a wide day, which tells you about conditions.

What it does not tell you

  • Direction. Audacity Capital's sentence covers it: a measure of movement, "not the direction of the next move".
  • When inside the day the range happened. A pair that does 80 pips in one hour and sits still for 23 more makes the same contribution to the average as one that drifts all day.
  • Whether the average is being pulled by one violent session. That is what a short lookback does, in LuxAlgo's words: a single outlier day dominates.
  • What your chart calls a day, until you check.

Which platforms have an ADR indicator?

TradingView ships it as a built-in study, and LuxAlgo documents its three settings: "Length, a Timeframe selector and a Wait for timeframe closes option". That third one decides whether today counts: "Wait for timeframe closes controls whether the value updates only when that timeframe's bar completes".

On MetaTrader it is a custom indicator rather than a built-in. Forex Tester's guide walks through installing one in MT4 and setting Day_x, and LiteFinance lists MT4 and MT5 variants including a weekly version.

ToolWhat it does
TradingViewBuilt-in study. Length (14 by default), a Timeframe selector, and Wait for timeframe closes, which controls whether the current, incomplete day is counted
LuxAlgo's guideThe formula both ways, the projection from the daily open, and the point that the forex day boundary belongs to the broker
Forex Tester's guideA MetaTrader 4 install walk-through with Day_x, and an ADR against ATR answer that names gaps as the difference
Audacity Capital's guideNo implementation. Four common lookbacks, with none of them correct by default
ChartLabsAverage Daily Range, under Standard in the Indicators menu: Length 14 by default, completed UTC days only, drawn on price as the day's open plus and minus half the ADR, with the ADR value on the ADR High label. Manual backtesting: step through charts built on cleaned data from Dukascopy, bar by bar, take the trades by hand, and read every one back against the chart you saw

What has to be written down for an ADR result to be reproducible?

Four things: the lookback, the daily boundary, the symbol, and whether the current day is included.

LuxAlgo says its own implementation "uses only completed daily ranges, so the current session's developing range does not alter today's ADR", and gives the instruction that follows: "Check how any other implementation treats the current bar before comparing values across platforms." Forex Training Group adds a fifth thing to write down, the display scale: "Keep in mind that based on your chart settings and particular ADR indicator, the manner in which you read the pip value may differ."

There is a lot of ADR stop and target arithmetic in circulation. HowToTrade publishes a version of it outright: "You can set your stop loss at the same number of pips as your ADR value. And your take profit could be at two times your ADR value." It arrives with no sample size, no date range and no dataset, and HowToTrade says as much itself, following the rule with "What matters is that you backtest your levels and see which one works best for your trading strategy", and LuxAlgo states the general case: "An ADR rule is only testable once every part is explicit."

So a stop at one ADR against a stop at half an ADR is a question about your pair, your session and your holding period. Fix the lookback, fix the boundary, then step the chart day by day and log what each version would have done, with the trade record beside it.

ADR is most useful for risk arithmetic rather than as a signal. In LuxAlgo's words, "A pair averaging 80 pips per day and one averaging 140 pips need different stop distances and position sizes for the same cash risk." Units matter: "For most pairs a pip is 0.0001; for yen pairs it is 0.01."

Related reading: Forex Backtesting: Test Your Strategy on Real Data for the session effects behind every one of these numbers, Backtesting a Trading Strategy: A Beginner's Guide for how to run the test itself, and Clean Forex Historical Data on ChartLabs for where our historical data comes from, Dukascopy, and how far back it goes.

Next step

An ADR stop multiple is a published guess until you have run it on your own pair, in your own session, with the daily boundary written down. Step the chart, take the trades by hand, and keep the record. ChartLabs has a 7-day free trial with no credit card, then one plan at $20 a month or $200 a year: start your free trial.

Related Topics

average-daily-rangeadr-indicatorvolatilityforex-indicatorsadr-vs-atr