PatternsRadar
Sign in

Volatility stock scanners for NSE

Volatility is the one market property nearly everyone agrees is predictable: it clusters. Quiet sessions bunch together, loud ones follow, and the handoff between the two regimes is where these scans live. On the compression side sit the Bollinger squeeze, the narrow-range day and NR7, all of them looking for a stock coiled unusually tight against its own history. On the expansion side are the range-expansion days and the gaps, which catch the resolution and then ask the only question worth asking about it: did the move hold into the close? The 52-week extremes bracket the whole space, from fresh lows to stocks down 15% in a month. None of this predicts direction. It predicts that something is about to happen, or confirms that something just did, and direction comes from how the session closed.

Bollinger width under 0.08 in a stock above its 200-day average. Compressed ranges tend to resolve.

where bb().width < 0.08 and close > sma(200)

Top 500 by turnover

Today's range wider than 1.5 ATR, on more than ₹10 crore of turnover.

where high - low > 1.5x atr(14) and turnover > 10cr

Top 250 by turnover

Opened above yesterday's high and closed above the open.

where open > high[-1] and close > open

Top 500 by turnover

Opened below yesterday's low and closed below the open.

where open < low[-1] and close < open

Top 500 by turnover

A decisive one-month advance, still trading above its 50-day.

where close up 15% over 21 bars and close > sma(50)

Top 500 by turnover

The lowest close in a year.

where close is lowest in 52w

Top 500 by turnover

Within 5% of the 52-week low on above-average volume. Basing, or still falling.

where close within 5% of low_52w and volume > 1.2x avg(volume, 20)

Top 500 by turnover

A day's range under half the stock's own ATR, above the 50-day average.

where true_range < 0.5x atr(14) and close > sma(50)

Top 500 by turnover

Today's high-low span is the tightest of the last seven sessions.

where high - low is lowest in 7 bars and close > sma(50)

Top 500 by turnover

A day twice the stock's normal size, resolved in the buyers' favour.

where true_range > 2x atr(14) and change > 0

Top 500 by turnover

Down 15% or more over 21 sessions. The damaged list, read either way.

where close down 15% over 21 bars

Top 500 by turnover

Opened more than 2% below yesterday's close and finished above the open. The morning panic found buyers.

where open < close[-1] * 0.98 and close > open

Top 500 by turnover

Within 5% of the 52-week high, Bollinger width under 0.08, above the 200-day. The VCP shape written as a query.

where close within 5% of high_52w
  and bb().width < 0.08
  and close > sma(200)

Top 500 by turnover

Within 5% of the 52-week high on under 60% of its normal volume. Supply running out.

where close within 5% of high_52w and rel_volume < 0.6

Top 500 by turnover

A candle body more than twice its 20-day average on heavy volume, biggest body first.

where abs(close - open) > 2x avg(abs(close - open), 20)
  and rel_volume > 1.5
sort by abs(close - open) / open desc

Top 500 by turnover

Five or more of the last twenty sessions moved over 3% either way. A stop in these names gets hit on noise.

where count(abs(change) > 3, 20) >= 5

Top 500 by turnover

Common questions

What is a volatility squeeze?

A stretch where a stock's trading range contracts well below its own norm, measured here by Bollinger band width or by the day's range against ATR. Squeezes tend to precede directional moves and say nothing about which direction.

What is an NR7 day?

The narrowest high-to-low range of the last seven sessions, from Toby Crabel's work on range contraction. NR7 traders bracket the small bar with orders on both sides and take whichever way it breaks, on the finding that contraction days precede expansion days.

Are gap-up stocks worth buying?

Watch the close. A gap up that holds its open all session means the overnight buyers got reinforced; one that fades below the open trapped them. Every gap scan here conditions on the close.