In This Article:
ADR and ATR both measure how much a stock moves, but they do not measure the range in exactly the same way. I use percentage formulas when I want to compare stocks at different prices, and dollar formulas when I want to see the average range in price units.
Here are the TC2000 PCF formulas I use, what each one returns, and how to choose the right version for a scan or chart.
ADR and ATR formulas for TC2000
| Measure | TC2000 PCF formula | Result |
|---|---|---|
| 20-bar ADR in dollars | AVG(H - L, 20) | Average high-to-low range over 20 bars. |
| 20-bar ADR% | 100 * (AVG(H / L, 20) - 1) | Average daily range expressed as a percentage. |
| 20-bar ADR% scan above 5% | 100 * (AVG(H / L, 20) - 1) > 5 | True when the calculated ADR% is above 5. |
| 20-bar ATR in dollars | ATR20 | Average true range over 20 bars. |
| 20-bar ATR% | (ATR20 / C) * 100 | ATR expressed as a percentage of the current price. |
Set the formula timeframe to Daily if you want daily readings. The period counts bars, so on an intraday chart, 20 bars means 20 intraday bars rather than 20 trading days.
20-day ADR percentage PCF formula
To find stocks with a 20-day ADR percentage above 5%, use this condition formula:
100 * (AVG((H / L), 20) - 1) > 5
This is a true/false scan condition. TC2000 returns true when the formula calculates an ADR percentage above 5 and false when it does not.
If you want to display the ADR% value as an indicator or watchlist column instead of filtering at 5%, remove the final comparison:
100 * (AVG((H / L), 20) - 1)
What the ADR% formula measures
The formula averages the ratio of each bar’s high to its low over 20 bars, subtracts 1, and multiplies by 100. It expresses the average high-to-low range as a percentage relative to each bar’s low.
This is the ADR% calculation I use. Other platforms or traders may use a different denominator or calculation, so their ADR% readings may not match TC2000’s result exactly. TC2000 also documents dollar ADR as AVG(H - L, 20), which returns the average range in price units rather than percent.
For example, if you want a threshold of 6% instead of 5%, change the last number in the condition:
100 * (AVG((H / L), 20) - 1) > 6
ATR percentage formula for TC2000
ATR, or Average True Range, includes gaps from the previous close when calculating the range. The formula below divides the 20-bar ATR by the current price and multiplies by 100:
(ATR20 / C) * 100
For example, if ATR20 is $6 and the current price is $100, the ATR percentage is 6%. Expressing ATR as a percentage makes it easier to compare the size of the range across stocks with different share prices.
To turn this into a scan condition for ATR above 5%, add a comparison:
(ATR20 / C) * 100 > 5
ATR and ADR describe range, not direction. A high reading does not mean a stock is bullish or that it will keep moving in the same direction. I use range as one filter in my stock scans, then review the price action and setup separately.
TC2000 ATR smoothing note
TC2000’s default ATR PCF uses simple moving average smoothing. If you specifically want Wilder-style smoothing, TC2000 documents using an exponential average with a period of (2 × ATR period) - 1. For example, a 14-period Wilder-smoothed ATR can be written as:
XAVG(ATR, 27)
For my percentage formula above, ATR20 means TC2000’s 20-bar ATR using its default smoothing. Make sure that matches the version you intend to use when comparing values between platforms.
How to add an ADR or ATR PCF in TC2000
To use one of the formulas as a scan condition, open the Condition Editor, create a new condition, and select Write Formula. Paste the condition formula, set the timeframe you want, and save it with a name such as “ADR% Above 5.” You can then add it to an EasyScan or watchlist.
To display a numeric reading on a chart or watchlist, create an indicator formula instead and use the version without the final comparison. TC2000 may update its menus, so the exact labels can vary. Its help guide covers creating and saving both condition and indicator PCFs.
Frequently asked questions
What is the difference between ADR and ATR?
ADR averages the high-to-low range of each bar. ATR uses true range, which also accounts for a gap between the previous close and the current bar’s high or low. ATR can therefore include movement that ADR leaves out.
Is the ADR formula a scan condition or an indicator?
The formula ending in > 5 is a condition that returns true or false for a scan. The formula without that comparison returns the numeric ADR% value and can be used as an indicator or column.
How do I change the ADR calculation period?
Change the period number in the formula. For a 10-bar ADR%, for example, replace both instances of 20 with 10. If you are measuring daily range, use a daily timeframe.
Can I use ADR or ATR to predict the next move?
No. ADR and ATR measure historical price range. They do not indicate whether the next move will be up or down. I use them to understand how much a stock has been moving, alongside my other scan filters and chart review.
Keep the timeframe and smoothing method consistent when comparing results. For an example of how I use range and liquidity filters in a larger scan, see my TC2000 swing trading scan.


