Average True Range Calculator
Every stop is a bet about distance: you are saying price will not reach the line before the trade works. Average true range is the measurement that tells you whether that bet is reasonable. Paste a run of highs, lows and closes below and the page works out each bar's true range, smooths them into one reading, converts that reading into pips and into money, and then divides your risk budget by it to get a size you can actually place.
What this page does not do: it does not choose where your stop goes — picking the level is the stop loss calculator's job, and this page supplies the input that decision needs. It does not convert lots into units, which is the lot size calculator, and it does not add several open trades together, which is the forex risk calculator. One more thing it does not have: price history. The series loaded in the box is an illustrative series for working the arithmetic by hand, labelled as such everywhere it appears. Nothing here is market data and nothing here is a forecast.
At a glance
- On the illustrative series below, the fourteen-bar ATR settles at 20.47 of price, which at XAU/USD's pip size of 0.01 is 2,046.94 pips of typical travel per bar.
- The last bar's true range is 60.00, three times the reading. Wilder's recursion lets through one fourteenth of the jump, so the figure moves from 17.43 to 20.47 rather than to 60.00.
- At one and a half ATR of stop — 30.70 of price — a 3,000.00 risk budget pays for 97 units, which is 0.97 lot, and the worst case recomputed from that rounded size is 2,978.30, 99.28% of the budget.
| Bar | High | Low | Prev close | H − L | Gap | True range |
|---|---|---|---|---|---|---|
| 15 | 2480.00 | 2420.00 | 2420.00 | 60.00 | 0.00 | 60.00 |
Three distances, and two of them sit outside the bar
High minus low is the obvious way to measure how far something moved in a session, and it is the one every chart package hands you without being asked. It is also incomplete, because it only counts movement that happened while that bar was open. Price also travels between bars: the market closes on Friday at one level and opens Sunday evening somewhere else, and a position held over the weekend was exposed to every tick of that distance even though no candle body covers it.
True range fixes this by taking the largest of three distances — today's high minus today's low, today's high minus the previous close, and today's low minus the previous close. The last two are taken as absolute values, because the gap can be in either direction and the size of the hurt is the same either way. On ordinary bars the first one wins and true range is simply the height of the bar. When a different one wins, the bar is not what moved the money.
Those figures are bar thirteen of the illustrative series below, and they make the point cleanly. The bar's own height is 14.00, which would make it one of the tamer bars in the run. It opened below the previous close of 2426.00 and the low sat 20.00 underneath it, so its true range is 20.00 — forty-three percent more movement than the bar shows, on a bar that looks uneventful. Size a stop off the height of that candle and you size it off the wrong number.
The recursive step that keeps the reading alive
A single true range is one observation. What traders actually work with is a running average of them, and the standard construction is Wilder's: a plain average to get started, then a recursion that never looks at the whole window again.
The fifteen true ranges of the illustrative series, with the three candidate distances behind each one. The Gap column is whichever of the two close-based distances was larger:
| Bar | High | Low | Close | Prev close | H − L | Gap | True range |
|---|---|---|---|---|---|---|---|
| 1 | 2412.00 | 2396.00 | 2406.00 | 2400.00 | 16.00 | 12.00 | 16.00 |
| 2 | 2418.00 | 2402.00 | 2401.00 | 2406.00 | 16.00 | 12.00 | 16.00 |
| 3 | 2410.00 | 2392.00 | 2395.00 | 2401.00 | 18.00 | 9.00 | 18.00 |
| 4 | 2400.00 | 2380.00 | 2390.00 | 2395.00 | 20.00 | 15.00 | 20.00 |
| 5 | 2402.00 | 2386.00 | 2399.00 | 2390.00 | 16.00 | 12.00 | 16.00 |
| 6 | 2416.00 | 2398.00 | 2412.00 | 2399.00 | 18.00 | 17.00 | 18.00 |
| 7 | 2428.00 | 2410.00 | 2418.00 | 2412.00 | 18.00 | 16.00 | 18.00 |
| 8 | 2424.00 | 2400.00 | 2404.00 | 2418.00 | 24.00 | 18.00 | 24.00 |
| 9 | 2412.00 | 2396.00 | 2408.00 | 2404.00 | 16.00 | 8.00 | 16.00 |
| 10 | 2420.00 | 2406.00 | 2416.00 | 2408.00 | 14.00 | 12.00 | 14.00 |
| 11 | 2430.00 | 2414.00 | 2422.00 | 2416.00 | 16.00 | 14.00 | 16.00 |
| 12 | 2436.00 | 2420.00 | 2426.00 | 2422.00 | 16.00 | 14.00 | 16.00 |
| 13 | 2420.00 | 2406.00 | 2412.00 | 2426.00 | 14.00 | 20.00 | 20.00 |
| 14 | 2424.00 | 2408.00 | 2420.00 | 2412.00 | 16.00 | 12.00 | 16.00 |
| 15 | 2480.00 | 2420.00 | 2472.00 | 2420.00 | 60.00 | 0.00 | 60.00 |
Three steps take that column to the reading, and every one can be checked with a calculator:
- The first fourteen true ranges add to 244.00, so the seed reading is 244.00 / 14 = 17.4286.
- Bar fifteen's true range is 60.00. The recursion is (17.4286 x 13 + 60.00) / 14 = 286.5714 / 14 = 20.4694.
- The plain average of the last fourteen true ranges is 20.5714 — ten cents above the Wilder figure, because one bar is being weighted differently.
Step two is the whole idea. The reading is not recomputed from scratch each bar; it keeps thirteen fourteenths of itself and admits one fourteenth of the new observation. That is why the sixty-dollar bar moved the figure by 3.04 and not by sixty, and it is why yesterday's calm does not come back the moment today is calm again.
How long an outlier stays in the number
A simple average forgets on a schedule: the bar that falls out of the window is gone completely. The recursion forgets by a fraction instead, multiplying whatever is left of an old surprise by thirteen fourteenths each bar. The illustrative numbers above make the decay easy to see — assume the sixty-dollar bar is followed by ordinary bars whose true range is 17.4286 each, and watch what the reading does.
| Bars since the spike | Reading | Excess still left over | Share of the original surprise |
|---|---|---|---|
| 0 | 20.4694 | 3.0408 | 100% |
| 1 | 20.2522 | 2.8236 | 93% |
| 3 | 19.8632 | 2.4346 | 80% |
| 5 | 19.5279 | 2.0993 | 69% |
| 10 | 18.8778 | 1.4492 | 48% |
| 14 | 18.5061 | 1.0775 | 35% |
| 20 | 18.1193 | 0.6907 | 23% |
| 24 | 17.9421 | 0.5135 | 17% |
The practical version of that table is short: roughly nine bars for half of a surprise to wear off, and a sixth of it still sitting in the reading twenty-four bars later. Two things follow. A reading taken the day after a news bar belongs to the news bar, and sizing off it will give you a smaller position than the market's ordinary behaviour calls for. And the reverse is the trap that costs money — volatility readings fall quietly after a violent week, size grows while nothing about the instrument has changed, and the next surprise arrives against a position that was only ever safe in a quiet reading.
One reading, four contracts
A volatility reading arrives in price: twenty cents here, sixty dollars there, thirty-five cents somewhere else. Before it can decide a size it has to become two other things — a count of pips, which is what your stop is quoted in, and an amount of money, which is what your account pays. Both conversions are done by the instrument's own specification, and those specifications are the part nobody publishes next to their calculator. Ours are below, taken from the site's own contract file.
| Symbol | Class | Quote | Pip size | Contract size | Unit step |
|---|---|---|---|---|---|
| XAU/USD | metal | USD | 0.01 | 100 | 1 |
| XAG/USD | metal | USD | 0.001 | 5000 | 1 |
| XPT/USD | metal | USD | 0.01 | 100 | 1 |
| XPD/USD | metal | USD | 0.01 | 100 | 1 |
Pip size divides the price reading into pips; contract size multiplies the units into lots. Take one illustrative reading of 0.35 of price and run it through all four:
| Symbol | Pip size | Pips in the move | Contract size | USD moved, per lot |
|---|---|---|---|---|
| XAU/USD | 0.01 | 35 | 100 | 35.00 |
| XAG/USD | 0.001 | 350 | 5000 | 1750.00 |
| XPT/USD | 0.01 | 35 | 100 | 35.00 |
| XPD/USD | 0.01 | 35 | 100 | 35.00 |
Same reading, same direction, same everything — and silver counts ten times the pips and costs fifty times the money per lot. Neither figure is a property of the reading. They are properties of the row the instrument sits on, which is why a volatility number cannot be carried from one symbol to another by eye.
The pip size is not a rounding convention someone chose for neatness; it follows how the instrument is quoted. Gold and the two platinum-group metals here are quoted to two decimals, so a pip is 0.01 of a dollar of price, and silver is quoted to three, so a pip is a tenth of that. The consequence travels in both directions: a stop that reads as "fifty pips" on gold is five dollars of price, and the same fifty pips on silver is five cents.
Because the contract size is what converts units into lots, the money also scales with the lot count in the ordinary linear way — and the four contracts do not scale alike:
| Symbol | Contract size | 0.10 lot, USD | 1.00 lot, USD | 5.00 lots, USD |
|---|---|---|---|---|
| XAU/USD | 100 | 3.50 | 35.00 | 175.00 |
| XAG/USD | 5000 | 175.00 | 1750.00 | 8750.00 |
| XPT/USD | 100 | 3.50 | 35.00 | 175.00 |
| XPD/USD | 100 | 3.50 | 35.00 | 175.00 |
Read that table across the diagonal and the fifty-fold gap turns into something a trader can feel: a tenth of a lot of silver moves 175.00, which is what five whole lots of gold move. Someone who carries a habit of "one lot" from gold into silver is not taking a similar position, they are taking one fifty times the size, and the position size calculator will say so only if the contract field was changed with the symbol.
Every row above also carries a unit step of 1, which means volumes on these four are quoted in single ounces and nothing finer. That single column decides how much of your budget goes unused after rounding: giving up part of a unit costs you one hundredth of a lot on gold and one five-thousandth of a lot on silver, so the same rounding looks trivial in one order ticket and invisible in the other while costing exactly the same in money.
Three of the four rows are identical — gold, platinum and palladium share a pip size of 0.01, a contract size of 100 and a step of 1, so every conversion on this page treats them the same way. What differs between them in practice is the reading that goes in, not the arithmetic that comes out.
One budget at four stop widths
The multiple is the only free variable left once the reading is measured, so it is worth seeing what it actually controls. Take the illustrative 0.35 reading and a 500.00 risk budget, and set the stop at one, one and a half, two and three times it:
| Multiple | Stop, in price | Stop, XAU pips | Stop, XAG pips | Units | XAU/USD lots | XAG/USD lots | Worst case, USD |
|---|---|---|---|---|---|---|---|
| 1.0 | 0.350 | 35.00 | 350.00 | 1428 | 14.28 | 0.2856 | 499.80 |
| 1.5 | 0.525 | 52.50 | 525.00 | 952 | 9.52 | 0.1904 | 499.80 |
| 2.0 | 0.700 | 70.00 | 700.00 | 714 | 7.14 | 0.1428 | 499.80 |
| 3.0 | 1.050 | 105.00 | 1050.00 | 476 | 4.76 | 0.0952 | 499.80 |
Every row lands on the same worst case to the cent, and that is the point. Widening the stop does not change what you lose when you are wrong; it changes how much you are allowed to hold. The multiple is a size control wearing the costume of a risk control, and treating it as the second is how a stop gets widened until a position fits.
The rounding is visible in the last column and deliberately uneven: every row gives up part of a unit, which leaves 0.20 of the 500.00 unused. That leftover is bounded by one step times the loss on one unit — 0.35 at the narrowest stop here and 1.05 at the widest — so a wider stop does not lose you proportionally more to rounding, it only ever costs you the one unit you refused to buy.
The two lot columns are the same unit count divided by two contract sizes, and they are the number the platform actually wants. Fourteen and a quarter lots of gold becomes a quarter of a lot and a bit of silver for the identical trade, which is also why the rounding at the unit step bites differently on the two: on gold a step of one unit is a hundredth of a lot, and on silver it is a five-thousandth.
One last check on the conversion, run on the tool at the top of this page rather than by hand. With the illustrative series loaded, gold's specifications in place and the budget set to 500.00, the reading is 20.47 and the size comes back as 16 units, or 0.16 lot. Change nothing but the two specification fields — pip size to 0.001 and contract size to 5,000 — and the same reading, the same budget and the same multiple return 16 units and 0.0032 lot. No volatility figure moved. Only the contract did.
Your platform's volume field wants lots. The risk lives on units. The contract size is the only thing standing between them, and it is exactly the column most traders never look up.
Where the number enters the order
The reading's job ends at producing a distance. From there it is the same division every page on this site is built on: the money you are willing to lose, divided by the distance to the level that makes the trade wrong. Average true range supplies the second half of that sentence in a form that adapts to the instrument, instead of a number picked because it looked tidy.
Three places people get it wrong. The first is timeframe: a fourteen-bar reading on a daily chart and a fourteen-bar reading on an hourly chart are answers to different questions, and only one of them describes the stop you are about to place. Read it off the chart you are trading, not the one that happens to be open. The second is the multiple. One and a half is common, two and three are used for wider stops, and none of them is produced by the arithmetic — it is a choice you make before you see how much size it gives you, which is the only order in which it is a choice rather than a rationalisation. The third is currency: true range is measured in the instrument's quote currency and your losses are paid in your account currency. Every symbol in the table above is quoted in USD, which is why the conversion disappeared there; put a cross pair in front of this page and the quote-to-account rate comes back.
What this page gives you to carry across is a distance with a reason behind it. The stop loss calculator turns a size and a budget into the distance you are allowed, the forex position size calculator turns a distance and a budget into the size, and either one is better for having been fed a measured number instead of a round one.
Checklist for reading a volatility figure
- Match the timeframe to the stop. A swing stop that needs days needs a daily reading. Taking it off a shorter chart undershoots the distance and oversizes the trade.
- Take the pip size from the symbol's own row. Gold counts 0.01 and silver counts 0.001, which is why one reading of 0.35 is 35 pips on one and 350 on the other.
- Compare the recursion against the plain average. This page prints both. When they disagree by more than a tenth or so, something recent is still working through the number and the reading is not describing ordinary conditions.
- Fix the multiple before you look at the size. Three times the reading will always buy fewer units than one and a half; picking the multiple after seeing the size is just choosing the answer.
- Round down, then recompute the loss. Nine hundred and fifty-two units lose 499.80 of a 500.00 budget. Nine hundred and fifty-three would break it by twenty cents, which matters only because the habit is what carries over to larger numbers.
- Re-read it before the next order. The figure moves. A size that was right last week is not automatically right after a quiet fortnight.
None of this says where the market is going. Average true range describes how much ground it covers, not which direction it covers it in, and the only claim it makes about tomorrow is that the arithmetic will look the same.
Questions traders ask
Is ATR the same thing as volatility?It is a measure of distance travelled, which is one useful piece of what the word volatility is used to mean. It says nothing about direction, and unlike a standard deviation it does not describe how the observations are spread around an average — a quiet week and a week of alternating fifty-dollar bars can produce the same reading here. What it does measure is the thing a stop has to survive.
Why is my platform's ATR different from this page's?Three usual reasons, in order of how much they matter: different smoothing, different session boundaries, and a different starting point. A simple average of the last fourteen true ranges gives 20.5714 on the illustrative series here, against the 20.4694 the recursion gives — small on this data, and larger right after an outlier, which is exactly when it matters. Many platforms use an exponential average instead of Wilder's, and some start their daily bars at a different hour.
How do I turn ATR into a stop loss?Pick a multiple and multiply: 1.5 x 20.4694 is 30.70 of price on this page's example, which is 3,070.41 pips at gold's pip size. That gives you the distance, and then size follows from your budget divided by what each unit loses over that distance. Choosing where the level sits rather than how wide it is belongs to the stop loss calculator.
Can the same ATR multiple be used for targets?Yes, and it is what an R-multiple target really is — three times the reading away from entry is a "3R" target only because the stop was one times something related to it. Be clear that the reading measures distance, not probability; nothing here says how often price gets that far.
Does this work on stocks, indices and crypto?The true range part works on anything with a high, a low and a close. The money part depends on the contract: one share loses one dollar of quote currency per dollar of price the same way one ounce does, so the unit count comes out the same, while the lot or share-lot conversion follows whatever contract size that venue publishes.
What if my account currency is not the quote currency?Then every money figure above needs one more multiplication. The distance stays measured in the instrument's quote currency; what you lose is that amount converted at the rate between the quote currency and the currency your account is held in, which is the step the position size calculator handles for cross pairs.
Related guides
- Stop loss calculator — a budget and a size turned into the stop distance you are allowed, with the pip conversion for fifty-six symbols.
- Forex position size calculator — the distance from this page turned into units and lots.
- Position size by instrument — why one budget gives 0.50 lots on EUR/USD and one contract on US30.
- Lot size calculator — lots into units, notional and margin, and back again.
- Forex risk calculator — what several open tickets are risking together.
- Reference data — the full contract file the metal table above comes from.