VCP stock screener: the volatility contraction criteria this screen applies

A volatility contraction pattern is a base that tightens: each pullback inside it is smaller than the one before, and volume dries up as the range narrows. QM Screener screens the whole US equity market for that shape after every close as the VCP screen — Volatility Contraction Pattern — using four arithmetic rules over end-of-day bars rather than pattern recognition by eye. This page is those rules, the level each one is set at, what the passing list carries, and how to work through it.

What a volatility contraction is

The pattern is defined by what the bars do after an advance: each pullback is shallower than the one before, the range over a few weeks narrows, and the volume behind the pullbacks falls away. The story told about that shape is supply drying up, and its practical appeal is that a tight range puts the level that would say you were wrong close to the level you would act at.

That is the idea. What a screen can do with it is narrower, because a screen sees bars and not intent. This one measures whether the range is in fact tightening, whether the last week of it is tight in absolute terms, and whether volume has fallen off while that happened. Those are measurable; how many pullbacks there were, and whether the shape is textbook, are not measured here at all.

The VCP screen is an implementation of publicly documented criteria, assembled from public sources. QM Screener is an independent product and is not affiliated with, endorsed by, or sponsored by any trader, author, publisher or firm.

The rules this screen applies

Four rules, all of which a stock has to pass — five comparisons in total, because the first rule is applied twice. Each range figure is the high of a window minus its low, as a percentage of the latest close, and the windows are nested rather than sequential: the 30-day window contains the 15-day window, which contains the 5-day one.

Before any of that, a stock has to clear a base gate to be scored: enough history for the three ranges and the two volume averages, and a 50-day average dollar volume of at least $5 million. Recent listings fall out here rather than being failed on a rule, and the liquidity floor is the same idea as everywhere else on the site: a pattern you cannot get filled in is not tradable, however tight it looks.

What the screen outputs

The passing list is a table, one row per stock, and the row carries the values that decided it. The two numbers this screen leads with — the ones the compact list on a phone shows beside the ticker — are the 5-day range and the relative-strength percentile, in that order, because the first is the test and the second is the context.

The list is sorted by the 5-day range ascending: tightest first. That is this screen's own default sort, not the dashboard's, and it is the practical difference between this list and a momentum list. Every row has already passed the same four rules, so ranking by strength would say nothing about which of them is the better example of the pattern; ranking by the final range says exactly that.

Relative strength is computed for this screen too — each stock's three-month return ranked against the others this screen scored, reported as a percentile from 0 to 100 — but it is a column and a filter, not a rule. The screen does not gate on it.

There is no near-miss list here. Beside the passing list the run writes a universe file holding every stock it looked at, each with the rules it failed written on it, so a name you expected to see can be looked up and read: which of the two contraction ratios missed, by how much the final range was too wide, or what the volume ratio actually was.

Every row also carries a setup tag — BASE, TIGHT, TRENDING, EXTENDED or PARABOLIC — which is a separate measurement from the rules above: it scores how tightly the 10, 20 and 50-day exponential moving averages are bunched and how far price sits from that band. The two are related questions asked with different numbers, and a row where they disagree is worth looking at. The tags are set out in what the setup tags mean.

The controls on top of the list

The screen declares its own filter bar, and the numbers in it are the screen's rather than the page's:

All five, and the ticker search beside them, are cuts a reader applies on top of a list that has already passed the four rules.

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, and on this screen those are the 5 tightest. 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.

Frequently asked questions

What counts as a contraction in this screen?

A shrinking high-low range measured over three nested windows: the last 30 sessions, the last 15 and the last 5, each expressed as a percentage of the current price. The 30-day range has to be at least 1.5 times the 15-day range, and the 15-day at least 1.5 times the 5-day. That is the whole definition of a contraction here — nested windows tightening by a fixed multiple, not pivot points identified on a chart.

Is this real VCP pattern recognition?

No, and it is not presented as one. It is a published heuristic: four arithmetic rules over end-of-day bars, chosen so the same rules over the same data return the same names every time. A discretionary trader reading the pattern by eye counts the individual pullbacks and weighs their shape and their volume. This screen does not, so it will miss textbook examples the windows do not line up with and surface tight names that are not textbook anything.

Why is the list sorted by the 5-day range instead of relative strength?

Because the pattern is the thesis. A wide-ranging name with a high relative-strength rank is not a contraction, so sorting by strength would put the least relevant rows on top. The list opens tightest first, and the relative-strength percentile travels beside it as the second column for context.

Does the screen require a minimum relative strength?

No. Relative strength is computed and shown, and the dashboard offers it as a cut you can apply, but the screen itself does not gate on it — the whole 0 to 100 range is live in the passing list.

Is there a near-miss list for this screen?

No. The run writes the passing list and a universe file that carries every stock it looked at with the rules that stock failed written on it, so a name that did not pass can be looked up and read rather than guessed at.


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.