Bands within 8% of the middle — compressed ranges that usually resolve with a move.
where bb().width < 0.08 and close > sma(200)
Top 500 by turnover
Volatility is the one market property everyone agrees is predictable: it clusters. Quiet sessions bunch together, loud ones follow, and the transitions between the two regimes are where these scans live. The compression side — the Bollinger squeeze, the narrow-range day, NR7 — finds stocks coiled unusually tight against their own history, on the premise that a contracted range marks an argument about to resolve. The expansion side — range-expansion days, gaps held and gaps faded — catches the resolution itself and asks the only question that matters about it: did the move hold by the close? The 52-week extreme scans bracket the whole space, from fresh lows to stocks fallen 15% in a month. None of these scans predicts direction; they predict that something is about to happen, or verify that it just did, and direction is read from how the session closed.
Bands within 8% of the middle — compressed ranges that usually resolve with a move.
where bb().width < 0.08 and close > sma(200)
Top 500 by turnover
Today's range wider than 1.5 ATR, on real 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 — a gap with follow-through.
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 — the other side of the breakout scan.
where close is lowest in 52w
Top 500 by turnover
Sitting near the yearly low on rising 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 — the coil before the spring.
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
Fallen hard over 21 sessions — the damaged list, for bargain hunters and short sellers alike.
where close down 15% over 21 bars
Top 500 by turnover
Opened more than 2% in the hole and closed green from the open — the morning panic that found buyers.
where open < close[-1] * 0.98 and close > open
Top 500 by turnover
Coiled within 5% of the 52-week high with Bollinger width under 0.08 — the VCP shape, as a scan.
where close within 5% of high_52w and bb().width < 0.08 and close > sma(200)
Top 500 by turnover
Holding within 5% of the 52-week high on barely half its normal volume — supply running out.
where close within 5% of high_52w and rel_volume < 0.6
Top 500 by turnover
A period when 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, though they say nothing about which direction.
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 both sides and take whichever way it breaks, on the finding that contraction days precede expansion days.
The gap itself is not the signal — the close is. A gap up that holds its open all session means the overnight buyers were right and got reinforced; a gap that fades below the open trapped them. The scans here condition on the close for exactly that reason.