15 Aug 2026
A swing trading screener for India
A working swing screen in three layers: trend, setup, trigger. How to build each one for NSE stocks, which presets express them, and how to check the screen against history.
A swing screen has one job: find stocks where the next few days are unusually likely to move in a known direction. Positions held for days to a few weeks, aimed at one leg of a move rather than the whole trend. Every swing screen I have built or borrowed comes apart into the same three layers.
Layer 1: trend
The single highest-value filter in swing trading costs one condition:
where close > sma(200)RunStocks above their 200-day average are in long-term uptrends, and pullbacks in them get bought. The stricter version demands that the average itself be rising, which means months of accumulation underneath rather than one sharp rally over a flat line. That is the prebuilt Above a rising 200-day average scan. This layer isn't a signal. It defines the pond.
Layer 2: setup
Inside the pond you want stocks that have already shown relative strength and are currently resting, because entering strength mid-sprint is how swing trades start underwater. Three shapes cover most of it.
The pullback. Short-term washed out inside a long-term uptrend:
where close > sma(200) and rsi(14) < 40RunStocks above their 200-day rarely push RSI that low, so the list is short on most days. That is the point of it. Run it: Pullback in an uptrend.
The high-tight consolidation. Coiling just under the 52-week high with the trend intact. Often a better entry than the breakout candle itself, because you pay neither for the gap nor for the failed breaks: Within 3% of the 52-week high.
Strong but not overbought. A three-month gainer with RSI parked mid-range. The same momentum names, caught in a pause: Strong but not overbought.
Layer 3: trigger
The setup says where. The trigger says when. For swing horizons the cleanest trigger is a compression bar inside the setup, an inside bar whose entire range fits within the previous session's:
where pattern is inside_bar and close > sma(50) > sma(200)RunThe inside bar gives you an unusually well-defined level to trade against. Above its high is confirmation, below its low is invalidation, and the distance between them is your initial risk. Prebuilt: Inside bar in an uptrend.
Assembling it
The layers compose into one query, which is the whole reason to screen with a language rather than a form:
where close > sma(200)
and sma(200) rising for 20 bars
and rsi(14) between 40 and 55
and pattern is inside_barRunOpen any preset above and edit it. Every condition in this guide is a line you can add or drop. The momentum and breakout hubs collect the related families.
Check the screen works
Every scan page here carries a hit-rate replay: run the scan on each session of the past year, then measure what happened next over your holding period. For a swing screen that answers the two questions that matter. How often does the setup resolve upward within 5 to 10 sessions, and what does the typical failure cost? The replay is close-to-close and ignores costs and slippage, so read it as a sketch.
Take the four-line query above, replay it at 5 sessions, then delete the inside-bar line and replay it again. The difference between those two numbers is what the trigger is worth to you.