All scan recipes
    Scan recipe

    Consolidating near a 52-week high

    Stocks pausing in a tight range within 5% of their 52-week high — and deliberately NOT breaking out today.

    By Rohit Singh (Mr. Chartist) · Updated 2026-08-25

    Most 52-week-high scans return stocks that have already broken out, which is the moment the risk is widest. This one returns the list before that: names sitting quietly just under the ceiling, with the range contracting and volume drying up.

    The exclusion is the design decision. Any stock trading through its 52-week high today is removed. This is the watchlist, not the entry list — the trigger has not happened yet, which is the entire reason it is useful.

    Scan clause · last run 2026-08-25
    ( {cash} ( latest close > 50 and latest sma( latest volume , 20 ) > 200000 and latest close >= 1 day ago max( 252 , latest high ) * 0.95 and latest high <= 1 day ago max( 252 , latest high ) and 1 day ago max( 10 , latest high ) <= 1 day ago min( 10 , latest low ) * 1.06 and 1 day ago max( 20 , latest high ) <= 1 day ago min( 20 , latest low ) * 1.12 and latest close <= 1 day ago max( 10 , latest high ) and latest close >= 1 day ago min( 10 , latest low ) and latest sma( latest volume , 5 ) < latest sma( latest volume , 20 ) ) )

    Chartink can fail silently. Tested on 2026-08-25: a clause containing a nonsense token returned the same number of rows as the correct one, with no error, and a clause with no comparison in it returned every stock in the segment. A scan that returns results has not necessarily parsed as you intended — so sanity-check a few of the names it gives you against the conditions above before trusting the list.

    Chartink's own documentation notes that scans cannot always be copy-pasted directly, and its in-app copy function moves condition groups rather than raw text. Treat this clause as the specification to reproduce in the condition builder; if pasting works in your account, so much the better.

    What this scan actually tests

    • Liquidity floors first: close above ₹50 and 20-session average volume above 2,00,000 shares.
    • Proximity: the last close is at or above 95% of the highest high of the 252 candles ending yesterday.
    • No breakout yet: today's high is at or below that same 252-candle high.
    • Range contraction: the 10-candle span is about 6% or less and the 20-candle span about 12% or less, with the 5-session average volume below the 20-session average.

    What it cannot see

    A scan is bar arithmetic. It cannot read a chart, and every recipe here is honest about where the machine stops and your eyes start.

    • Base shape or quality. A clean flag, a rectangle and a choppy overlapping mess all satisfy the same range arithmetic.
    • How long price has genuinely held near the high — only fixed 10 and 20-candle windows are checked, so a three-month base and a two-week pause score identically.
    • When the 52-week high was set. One made eleven months ago (stale) looks identical to one made three candles ago (live, defended supply).
    • The breakout itself. By design there is no entry trigger here.

    Why this setup is worth scanning for

    A stock near its highs has no trapped supply overhead — everyone holding it is in profit. When the range then contracts on falling volume, the sellers have stopped arriving. That is the setup; the breakout is the trigger.

    A genuinely short list, and the most useful of the six as a standing watchlist rather than a daily action list. Expect names to persist across several days — that is the pattern working, not the scan repeating.

    A scan is a filter: the names it returns are a starting point for your own chart work. Chartink is a third-party service with no affiliation to this site.

    Your privacy, your choice

    Essential storage keeps sign-in and preferences working. Optional analytics helps improve the website. Read our Privacy Policy.

    Privacy settings

    Essential sign-in storage and your saved preferences stay enabled. Analytics is optional, and you can change your choice anytime.

    Turning analytics off clears our analytics cookies and local assistant metrics. The page reloads to stop a previously loaded analytics service. Your account and learning progress stay saved.

    Read the Privacy Policy