VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Indicators and signals

ATR percent: formula, what level is high, and a filter test

ATR percent is the Average True Range divided by the closing price, times 100, so it states a market's typical bar range as a share of price and can be compared across markets and years. No fixed reading is high for every market: rank it against the same market's own history, set the threshold before the test, and compare the base rule with and without the filter under the same costs.

By · Published · updated · Editorial policy

Contents
  1. What is ATR percent and how do you calculate it?
  2. Why does raw ATR mislead when you compare markets?
  3. What ATR percent counts as high?
  4. ATR percent vs ATR: which one do you use for what?
  5. How do you test ATR percent as a volatility filter?
  6. Can you rank futures markets by ATR percent?
  7. Frequently asked questions
  8. References

What is ATR percent and how do you calculate it?

ATR percent is the Average True Range divided by the closing price, times 100. It states the typical bar range as a share of price, so NQ can be compared with gold or TAIEX futures. No fixed level is high: judge each reading against that market's own history and write the threshold down before you test it.

The Average True Range (ATR) is the average, over a chosen number of bars, of each bar's true range, and true range is the largest of three distances: high to low, high to the previous close, and low to the previous close. Wilder (1978) introduced it with a 14-bar average, and the ATR indicator page covers the calculation in detail. ATR percent takes that same number and divides it by the latest close. Some traders call it ATR percentage or normalized ATR; all three names mean the same thing.

The single formula to keep from this article:

ATR percent = ATR ÷ close × 100

Here ATR is the typical bar range in price points, close is the last price of the bar, and the ×100 turns a fraction into a percent. The result answers one question: how much of its own price does this market typically move in one bar?

Hypothetical example

An index future closes at 20,000 points and its 14-day ATR is 300 points. ATR percent = 300 ÷ 20,000 × 100 = 1.5 percent. Years earlier the same market traded at 10,000 points with an ATR of 150 points. ATR percent was again 1.5 percent: the market moved just as much relative to its price, even though the raw ATR was half as large.

ATR percent in one line: a hypothetical index future with an ATR of 300 points and a close of 20,000 points gives 300 divided by 20,000 times 100, which is 1.5 percent of price ATR as a share of price Hypothetical index future ATR 300 pts Typical range ÷ Close 20,000 pts Last price × 100 = 1.5% Share of price Dividing by price removes the unit. So: compare markets in percent.
ATR percent in one line: the typical bar range, divided by the last price, read as a share of price.

Why does raw ATR mislead when you compare markets?

Raw ATR is measured in price points, so a large reading only means the market has a large price, not that it moves a lot. Compare it to body weight: a three-kilogram change is small for an adult and large for a small child, and you only know which by dividing by the person's weight. A 300-point ATR on a 20,000-point index and a 40-point ATR on a contract priced at two thousand say nothing about which market is livelier until each is divided by its own price.

Hypothetical example

MeasureMarket AMarket B
Close20,000 points2,000 points
14-bar ATR300 points40 points
Raw ATR rankingHigherLower
ATR percent1.5 percent2.0 percent
ATR percent rankingLowerHigher

Market A has the bigger ATR in points and is the calmer market in percent. Market B moves a larger share of its price each bar.

Two hypothetical markets ranked twice: in points Market A's ATR of 300 is far above Market B's 40, but in percent of price B at 2.0 percent is above A at 1.5 percent Points and percent disagree Market A vs B, hypothetical In points In percent 300 40 1.5% 2.0% A B A B A has more points; B moves more. So: divide by price before comparing.
The same two markets ranked twice. In points, A looks more volatile; in percent of price, B is.

The same problem appears inside one market over a long history. An index future that tripled in price over ten years has a raw ATR that drifts upward with it, so a threshold such as "ATR above 100 points" is rarely met in the early years and almost always met in the late years. The filter would then be a calendar filter in disguise. This is the same reason MACD is divided by ATR in MACD-V, the volatility-normalized MACD: any indicator stated in points inherits the price level of the chart. Among the technical analysis tools and indicators you can actually test, the ones stated in points need this kind of normalization before you compare them across contracts.

What ATR percent counts as high?

No single number is high for every market; high is a percentile of the same market's own recent readings, and the threshold is written down before the test starts. A percentile rank is the share of past readings that sit below today's reading. If today's ATR percent is at the 80th percentile of the last year, only one bar in five during that year was more volatile. That statement holds whether the market is a bond future that typically moves well under one percent a day or a stock index future that often moves more than one percent.

  1. Choose the lookback for the percentile. About 250 daily bars is roughly one trading year and is a common choice. A shorter lookback reacts faster and relabels regimes more often.
  2. Compute the percentile on each bar from past bars only. A rolling window uses the readings up to that bar. A percentile taken over the whole history uses bars that had not happened yet, which leaks future information into the filter.
  3. Write the labels down. For example: above the 80th percentile is a high-volatility regime, below the 20th is a quiet regime, and the middle is normal. A regime is a stretch of time in which the market behaves in one consistent way.
  4. Keep the threshold fixed during the test. If you later try the 70th or 90th percentile, treat each as a separate test and compare them side by side, as the filter section below describes.

Hypothetical example

Over the last year, the 80th percentile of ATR percent on market X is 1.9 percent and on market Y it is 0.7 percent. A fixed rule of "high means above 1.5 percent" would call X calm on most days and Y high on every day. The percentile rule calls both high on exactly the top fifth of their own days.

An illustrative ATR percent line over two years with moving 80th and 20th percentile bands: stretches above the 80th band are the high-volatility regime, the stretch below the 20th band is the quiet regime High is a rank, not a number Illustration: two years of ATR % 80th pct 20th pct High Quiet Normal High = above its own 80th pct. So: fix the threshold before testing.
High is where the line sits above the market's own 80th percentile, quiet is below its 20th. The bands move with the market, the labels do not.

The percentile approach works the same on intraday bars, where quiet and busy sessions differ even more than quiet and busy years. The article on the best indicator for intraday trading and what testing shows makes the same point about judging a rule by its test rather than its reputation.

ATR percent vs ATR: which one do you use for what?

Use raw ATR in points for distances inside one market, and ATR percent for anything that compares markets, regimes or years. The two forms hold the same information at a single moment, so the choice is about the job, not about which is more correct. A stop sits a number of points from the entry, so it needs points. A filter that asks "is this market unusually volatile right now" needs a reading that still means the same thing when the price has doubled, so it needs percent.

JobRaw ATRATR percent
UnitPrice pointsPercent of price
Stop distanceUse directly (for example 2 × ATR)Convert to points first: ATR percent × close ÷ 100
Contract count from a risk budgetUse directly with the point valueConvert to points first
Compare two marketsNot meaningfulThe right form
Volatility regime filterDrifts with the price levelComparable across the whole history
Long history with a rising priceReading rises with priceReading stays on one scale
A two-column comparison: ATR in points is used directly for stop distance and contract count, while ATR percent must be converted first; only ATR percent compares markets and stays stable over a long history where raw ATR drifts Pick the form by the job Job Points Percent Stop distance Yes Convert Contract count Yes Convert Compare markets No Yes Long history Drifts Stable Points for stops, percent to compare. So: size in points, filter in percent.
Each form of ATR has its own jobs: points for distances inside one chart, percent for comparisons across charts and time.

Indicators that draw bands on a price chart use the points form for good reason: the band has to sit at a real price. The article on how the Supertrend indicator uses ATR in its formula is an example, and so are Keltner channels. When you then want to ask whether such a rule behaves differently in quiet and busy periods, switch to ATR percent for the question and keep the points form for the bands.

How do you test ATR percent as a volatility filter?

Run the base rule twice, once without the filter and once with it, under the same costs and the same next-bar execution, and compare average trade after costs, trade count and maximum drawdown. A volatility filter is an extra condition that allows the base rule to trade only when ATR percent is above, or below, a chosen percentile. Momentum and breakout rules are usually tested with an "above" filter, mean-reversion rules with a "below" filter; decide the direction before the first run.

  1. Compute ATR percent on every bar with the same ATR length the rule uses.
  2. Set the threshold as a percentile from the in-sample part only. The out-of-sample bars must not help choose it.
  3. Run the base rule without the filter and record average trade after costs, trade count and maximum drawdown.
  4. Run the same rule with the filter. Change nothing else: not the costs, not the sessions, not the exits.
  5. Compare the three numbers. A good result raises the average trade after costs and lowers the drawdown while keeping a majority of the trades. A bad result raises the average trade only because the trade count collapsed to a handful, which is luck wearing a filter.
  6. Rerun with neighbouring thresholds (for example the 70th, 75th, 85th and 90th percentiles). A plateau, where the neighbours behave alike, is what you want; a spike at one value is a sign of fitting, as Pardo (2008) describes for any optimized setting.
Six steps of a fair filter test: compute ATR percent on each bar, set the threshold on in-sample data only, run the rule without the filter, run it with the filter, compare three numbers, and rerun with neighbouring thresholds to tell a plateau from a spike A fair filter test 3 and 4 differ only by the filter 1 ATR % each bar 2 Threshold on IS 3 Run, no filter 4 Run with filter 5 Compare three 6 Try neighbours
The order of a fair filter test. Steps 3 and 4 differ only by the filter, and step 6 tells a plateau from a spike.

The run below is step 3 of that list: the base rule alone, before any volatility filter. It tested NQ daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, with $20 commission and $10 slippage per trade. The rule is a Momentum rule used as its only entry and exit, with no stop, target or filter; it is a stand-in base rule, not ATR percent itself. Of the 1,024 candidates the search tried, this is the single one it kept, picked for its return relative to its drawdown. Picking the kept one after the fact flatters its numbers, which is the selection effect Bailey et al. (2014) describe, so the table is the starting line for a filter test and not evidence that the rule, the indicator or a reader can earn that money.

Source: AlphaPrime product engine (CPU), run 2026-10-31. NQ daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $10 slippage per trade.

NumberResult
Net profit (closed trades)$249,575
Max drawdown$93,215
Trades60
Win rate60%
Profit factor1.828
Average trade$4,159.58
Time in market92.48%
The base rule's equity curve and drawdown before any volatility filter, with the out-of-sample stretch marked. Look at where the deepest drawdown sits and whether the out-of-sample part keeps the same slope.
The base rule's equity curve and drawdown before any volatility filter, with the out-of-sample stretch marked. Look at where the deepest drawdown sits and whether the out-of-sample part keeps the same slope. NQ · daily · 2019-01-02 to 2025-06-30 · CPU engine backtest

Two numbers in that table frame the filter test. Time in market is 92.48 percent, so the rule is almost always in a position; a percentile filter will cut that first, and the trade count of 60 is already small for a six-and-a-half-year test, so any filter that halves it leaves too few trades to judge an average. In the run above, the average trade is $4,159.58 and the max drawdown is $93,215; the filtered run has to be read against exactly those figures, under the same costs. Because AlphaPrime (Valynox) charges commission and slippage inside every evaluation and fills on the next bar, the filtered and unfiltered runs in its backtesting differ only by the filter, which is the condition a fair comparison needs.

Can you rank futures markets by ATR percent?

Yes, and the ranking sorts markets by percentage movement, which is the right order for choosing research markets and comparing regimes; dollar risk per contract still needs the point value on top. A market high on the ATR percent list moves a large share of its price each bar, so a rule that needs movement to pay for its costs has more to work with there. A market low on the list is a candidate for rules that live on small, frequent moves, or a reason to look at bar sizes other than daily.

Hypothetical example

Four markets on the same day. An index future at 20,000 points with an ATR of 300 points: 1.5 percent. A gold future at a price of two thousand with an ATR of 50: 2.5 percent. A bond future at 110 with an ATR of 0.9: about 0.8 percent. A Taiwan index future at 20,000 points with an ATR of 250: 1.25 percent. Ranked by raw ATR the order is index, Taiwan index, gold, bond. Ranked by ATR percent it is gold, index, Taiwan index, bond. Gold moves from third to first because its price is small while its movement is large.

Four hypothetical markets ranked twice: by points the order is index 300, Taiwan 250, gold 50, bond 0.9; by percent it is gold 2.5, index 1.5, Taiwan 1.25, bond 0.8, so gold moves from third to first New unit, new leader Four markets, hypothetical By points By percent Index 300 Taiwan 250 Gold 50 Bond 0.9 Gold 2.5% Index 1.5% Taiwan 1.25% Bond 0.8% Gold leads in percent, not points. So: rank research markets in percent.
The same four markets ranked by points and by percent. Switching the unit changes who leads.

ATR percent does not tell you how many dollars one contract moves, because that depends on the contract's point value, which differs from market to market. Dollar move per contract is the raw ATR in points multiplied by the point value, and the free futures contract calculator for tick and point values does that multiplication for the contracts it lists. Exchanges can change contract specifications, so confirm the point value on the exchange's contract page before sizing a position from it. Use ATR percent to decide which markets deserve research time, and the dollar figure to decide how many contracts the account can carry.

A next step you can run today: compute ATR percent for the two markets you trade most, over the last 250 daily bars, and find where today's reading sits in each market's own percentile rank. If one is above its 80th percentile and the other below its 20th, you have two regimes in front of you, and a base rule from your own research to run with and without the filter described above.

Frequently asked questions

How do you calculate ATR percent?

Divide the Average True Range by the closing price of the same bar and multiply by 100. If the 14-bar ATR is 300 points and the close is 20,000 points, ATR percent is 1.5 percent. Use the same ATR length as the rule you are testing, and compute it on every bar so you can rank readings over time.

What ATR percent is high?

There is no fixed number that is high for every market. Rank today's reading against the same market's own readings over a lookback such as one year, and call it high when it sits above a percentile you wrote down in advance, for example the 80th. A bond future and a stock index future can both be "high" on the same day at very different percent values.

What is the difference between ATR and ATR %?

ATR is stated in price points and ATR percent is stated as a share of price. They carry the same information at one moment, but ATR drifts with the price level over a long history while ATR percent stays on one scale. Use points for stop distances and contract counts inside one market, and percent for comparing markets, filtering regimes and ranking.

Can ATR percent be compared across different futures contracts?

Yes. Because it is divided by each market's own price, a 2 percent reading means the same share of price on NQ, gold or TAIEX futures. For the dollar move of one contract you still need the point value, because contracts with the same ATR percent can have very different dollar values per point.

Is normalized ATR the same as ATR percent?

In most uses, yes. Normalized ATR and ATR percentage usually mean ATR divided by the close, sometimes without the ×100. Check whether a given chart or code multiplies by 100, because a threshold of 1.5 in one form equals 0.015 in the other.

References

  • Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.
  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.