Average daily range (ADR%): the volatility floor momentum screens use

ADR% is how far a stock travels between its high and its low on an average day, expressed as a percentage of its price. Momentum screens use it as a floor, because a name that moves half a percent a session can be in a perfectly good uptrend and still be the wrong vehicle for a swing trade: the move you are trading for is smaller than the stop you would have to give it. QM Screener computes ADR% over the last 20 sessions for every stock it screens, gates the Momentum Continuation screen on it, brackets it on both sides for Swing Momentum, and prints it on every row of every screen.

What ADR% measures

ADR% is a measurement of movement, not of direction. A stock in free fall and a stock in a strong advance can post the same number, so ADR% on its own would return the market's messiest charts. It earns its place beside two other things: a ranking, which decides whether a stock is strong, and a trend rule, which decides whether the strength is current. ADR% only answers the third question — whether the stock moves enough to be worth the trouble.

It has a second job here. Several measurements on a row are expressed in units of the stock's own ADR rather than in absolute percent: how tightly its moving averages are bunched, how far price sits from that bundle, and how much ground its last ten sessions covered. Measured absolutely, a leader with a wide daily range looks loose by construction and can never be tight; measured in its own ADR, it is judged by its own standard.

How ADR% is computed here

For each of the last 20 sessions, divide the session's high by its low. Take the mean of those 20 ratios, subtract one, and multiply by one hundred. That is the whole formula, and it is computed once per stock per run from the same end-of-day bars every other number on the row comes from.

Five details decide what the figure can and cannot say.

The floor, screen by screen

Six screens run over the same universe, and ADR% is computed the same way for every one of them. Two of them test it. (The screens that need a 200-day average, a 52-week range or a beta download a full year of bars; the rest take nine months. The ADR window is the last 20 sessions either way.)

ScreenADR% ruleHow the comparison is made
Momentum Continuationabove 2.50%strictly greater-than
Trend Templatenonenot tested
VCPnonenot tested
Gappersnonenot tested
Defensive Strengthnonenot tested
Swing Momentum3% to 8%inclusive at both ends

Two things about that table are worth reading carefully. The Momentum Continuation rule is strictly greater-than, as every shared filter on that screen is: a stock whose ADR% lands exactly on 2.50 fails rather than passes, and the run's own self-audit re-checks the published list against the same comparison. The Swing Momentum rule is a band, and both ends are inclusive — it is the one place on the site where a stock can be rejected for moving too much.

The four screens with no ADR rule are not oversights. Trend Template is an eight-point trend-confirmation checklist and volatility is not one of the eight; the points it does test are written out in the trend template checklist. VCP is looking for a range that is contracting, so a floor under the range would argue with the thesis. Gappers gates on the size of the gap and on volume against the 50-day average instead. And Defensive Strength is deliberately hunting the lower-volatility end of the market, so a volatility floor would fight it.

The Momentum Continuation floor is the one a run can move: --min-adr-pct sets it, and the list that run publishes is cut at whatever it was given. Every other ADR rule on the site is a module constant with no flag behind it.

Why there is a floor — and why the same number has a ceiling

The floor is swing-trade arithmetic. A position is held for days or weeks and closed at a level decided in advance; the distance to that level has to be large relative to the spread and the slippage you pay, and it has to be reachable in the time you are giving it. A stock averaging one percent of range a day will not travel a swing trade's distance in a swing trade's time, however good the chart looks. That is the whole argument for the floor, and it is why a volatility test sits in the rules beside the trend rule and the ranking rather than being left to judgement.

The ceiling is the other side of the same coin, and it lives somewhere different: not in the filters, but in the setup score. The consolidation score reads two things — how wide the 10, 20 and 50-day exponential moving average bundle is, and how far price sits from that bundle — and measures both in ADRs. A bundle of 0.4 ADRs or less scores full marks and one of 3 ADRs or more scores nothing; price within 0.1 ADR of the band scores full marks and 2 ADRs or more scores nothing. The setup tags are built on that score, and the PARABOLIC tag asks separately for a ten-day range of 3 ADRs or more on top of a large extension above the 50-day average.

Dividing by a stock's own ADR is what makes the score portable — but taken literally it flatters the wildest names on the market, because a stock that swings tens of percent a day makes almost any bundle look narrow next to it. So the ADR used as the yardstick stops growing at 12%. Past that point extra volatility buys no extra slack, and a name that moves in lottery tickets is no longer scored as though it were resting. The cap applies to the divisor only: the row still reports the stock's real ADR%, and no screen rejects a name for being volatile except the Swing Momentum band.

The tags themselves — BASE, TIGHT, TRENDING, EXTENDED, PARABOLIC — are covered in how to screen for momentum stocks and, name by name, in the setup tags.

What the live screen shows

ADR% is a column on every screen's passing table, not only on the two that gate on it, so a row always carries the value that admitted it — or the value that was never tested. On a narrow screen the table collapses to two numbers per row chosen by the screen itself, and for both Momentum Continuation and Swing Momentum ADR% is one of the two.

It also turns up inside the consolidation cell. The tooltip there spells out the EMA bundle width and the distance from the band twice — once in raw percent and once in ADRs — using the capped figure, so the explanation and the score cannot argue with each other on a very volatile name.

Every row opens a candlestick chart in place, drawn from the same end-of-day bars the screen used, which is where an ADR number becomes a picture: the figure in the column is the height of a typical candle. And the value travels with the list — adr_pct_20d is a column in the CSV export and a field in the JSON result document and over the MCP server.

A free account sees it too. ADR% is one of the fields carried on a free row, so the top 5 names of each screen arrive with their volatility figure attached rather than as bare tickers.

How to use this in QM Screener

A free account — a verified email address, no card — sees the top 5 names of each screen every day and can chart them. The full list, the per-row values and the exports are $10 a month or $84 a year, each starting with a 7-day free trial. Start there, or sign in if you already have an account.

QM Screener is an independent product, assembled from publicly documented criteria, and is not affiliated with, endorsed by, or sponsored by any trader, author, publisher or firm.

Frequently asked questions

What does ADR% actually measure?

The size of an average session's swing, as a percentage of price. It is the mean of each of the last 20 sessions' high divided by its low, minus one, times one hundred. It says nothing about direction: a stock falling hard and a stock advancing hard can post the same figure, which is why it is only ever used next to a trend rule and a ranking, never on its own.

Is this the same as ATR?

No, and nothing here computes an ATR. ADR% as used on this site is built from each session's own high and low, so the gap between one day's close and the next day's open never enters it, and it is a ratio rather than a number of dollars, so a low-priced stock and a high-priced one are directly comparable without dividing by price a second time.

Which screens apply an ADR floor?

Two of the 6. Momentum Continuation requires ADR% strictly above 2.50%. Swing Momentum brackets it on both sides and asks for 3% to 8% inclusive. The other four test no ADR rule at all — the figure is still computed and still printed on every row, it is just not a gate on those lists.

Can I change the floor?

The Momentum Continuation floor is the one a run can move: --min-adr-pct on the command line sets it, and the value a run used is what its passing list was cut on. The band on Swing Momentum is a module constant with no flag. Neither is editable from the dashboard: a control there cuts the list the run already published rather than re-running the screen. What the dashboard does give you is the swing screen's own ADR% control and an ADR column you can sort every screen's list by.

Does a higher ADR make a stock rank better?

No. The ranking is relative strength, not volatility, and ADR% is a gate rather than a score. In the one place ADR is used as a measuring stick — the consolidation score — it is capped at 12%, so past that point extra volatility stops buying extra slack. The row still shows the stock's true figure.


Educational content, not financial advice. QM Screener lists stocks that passed published filters; it does not recommend trades, size positions or know anything about your circumstances. US equities, end-of-day, refreshed once per trading day after the close.