Intraday SystemsPythonNSEBeginner-Friendly

NSE Intraday Screener: Heikin-Ashi + VWAP Strategy Guide

A production Python screener that scans all 500 Nifty 500 stocks every five minutes looking for momentum breakouts — built with Heikin-Ashi candles and VWAP. This guide explains every part in plain English, shows the exact code, and tells you what the backtest found. Spoiler: the results were surprising.

By FutureGain Research Team24 October 202615 min read~4,800 words
500
stocks scanned daily
5-min
scan frequency
14.6%
backtest hit rate
Key Takeaways (5 Points)
  1. The screener splits its work into two phases. Phase 1 runs before market open and narrows 500 stocks down to 150–200 tradeable candidates. Phase 2 scans only those candidates every 5 minutes during market hours.
  2. Five conditions must all be true at once. Breakout above yesterday's high, Heikin-Ashi close above VWAP, enough volume, RSI in the right zone — all five or no trade.
  3. Stops are placed at real price structure, not random percentages. The stop uses the lowest of today's session low, yesterday's low, or 1.5× ATR from entry.
  4. The backtest was honest and disappointing. The screener hit targets only 14.6% of the time — less than half the 33% needed to break even. A random coin-flip strategy beat it.
  5. The finding points to a better strategy. On NSE's 5-minute frame, buying the weakest stocks (VWAP reclaim after a pullback) appears more promising than buying the strongest ones at breakout.
What's In This Guide

1. What is an Intraday Stock Screener?

The NSE (National Stock Exchange) lists over 2,000 stocks. On any given day, only a handful of those will produce a clean, low-risk entry opportunity during market hours. A screener's job is to automatically find those needles in the haystack — before you even have time to look.

An intraday screener specifically looks for buy (or sell) setups that should complete within the same trading session — you enter in the morning and exit by 3:30 PM. Unlike swing or positional trading, there is no overnight risk.

?
In Plain English
Imagine you are at a fruit market with 500 stalls. You want mangoes that are ripe today, priced under ₹100/kg, and selling fast. Walking every stall manually would take all day. A screener is like an assistant who runs through all 500 stalls every 5 minutes and brings you only the ones that match your criteria.

This specific screener focuses on a strategy called momentum breakout: stocks that are moving strongly upward, breaking above their previous day's high, and doing so with unusually high trading volume. The Heikin-Ashi and VWAP tools (explained below) are used to confirm that the move is real and not a false alarm.

2. What Are Heikin-Ashi Candles? (Explained Simply)

On a standard chart, each 5-minute candle shows exactly what happened in those 5 minutes: the opening price, the highest price, the lowest price, and the closing price. The problem is these raw candles are very noisy — one big spike can make a healthy trend look like it reversed, causing traders to exit prematurely.

?
In Plain English
Imagine you are watching someone walk up a hill. Their individual steps go slightly forward, slightly sideways, sometimes back a tiny bit. If you track every single footstep, it looks chaotic. But if you blur out the micro-movements and just look at the overall path, it clearly goes uphill. Heikin-Ashi candles do that blurring — they show the overall direction, not every micro-wiggle.

Heikin-Ashi recalculates each candle using the average of the current and previous bar. The result is a smoother chart where genuine trends are easier to spot. Here is the formula:

Heikin-Ashi formula — scanner.py
# HA Close = average of the current bar's four prices
ha_close = (open + high + low + close) / 4

# HA Open = average of the PREVIOUS bar's HA Open and HA Close
ha_open[0] = (open[0] + close[0]) / 2
for i in range(1, len(ha_close)):
    ha_open[i] = (ha_open[i-1] + ha_close[i-1]) / 2

# HA High and Low stay the same as the real bar
ha_high = np.maximum.reduce([high, ha_open, ha_close])
ha_low  = np.minimum.reduce([low,  ha_open, ha_close])

When the HA close is consistently above the HA open over several bars, the stock is in a genuine uptrend — not just reacting to one large trade. This is much more reliable on the 5-minute frame than raw candles.

3. What is VWAP? (And Why Every Intraday Trader Watches It)

VWAP stands for Volume Weighted Average Price. It is the average price at which a stock has traded throughout the day, where trades at higher volume carry more weight.

?
In Plain English
Think of it this way. If 1,000 shares of RELIANCE traded at ₹2,900, and only 100 shares traded at ₹2,950, the "real" average price is much closer to ₹2,900 — because that is where most of the money actually changed hands. VWAP captures exactly that: the price at which the bulk of today's trading happened.

Large institutions — mutual funds, FIIs, insurance companies — use VWAP as their benchmark. A fund manager will say "I bought HDFC at VWAP today", meaning they got the market's fair price rather than a disadvantageous fill. This makes VWAP a line that every serious market participant watches, which is exactly why it works as a signal level.

What VWAP tells you
▲
Price above VWAP
Buyers have controlled the day. The stock has net buying pressure.
◆
Price at VWAP
Buyers and sellers are balanced. This is a "fair price" decision zone.
▼
Price below VWAP
Sellers have controlled the day. The stock is trading cheap vs. average.

This screener uses a rolling 14-bar VWAP (covering the last 70 minutes of trading) rather than the session-cumulative VWAP that resets at 09:15. The rolling version stays sensitive to afternoon momentum shifts, while the cumulative version becomes "anchored" to the morning session as the day progresses. A full comparison of the two appears in Section 13.

Rolling VWAP(14) — scanner.py
# Typical price = average of HA high, HA low, and HA close
typical_price = (ha_high + ha_low + ha_close) / 3

# VWAP = sum(price × volume over 14 bars) / sum(volume over 14 bars)
vwap = (typical_price * volume).rolling(14).sum() / volume.rolling(14).sum()

4. The Two-Phase Architecture: Why It Works This Way

Naively scanning 500 stocks every 5 minutes would mean downloading 500 × 12 months of data 48 times per trading day — about 24,000 data downloads. Free data providers like yfinance would block the service within hours.

The solution is a two-phase design that keeps API calls to a minimum:

P1
Phase 1 — Morning Watchlist (runs once, before 09:15 IST)~8:30 AM
Downloads 1 year of daily price data for all 500 Nifty 500 stocks in batches of 50. Applies three filters (price range, liquidity, uptrend). Typically 150–200 stocks pass. Stores yesterday's high and low for each. This step runs exactly once per day.
P2
Phase 2 — Intraday Scan (every 5 minutes, 09:20–14:00 IST)Every 5 min
Downloads only today's 5-minute bars for the 150–200 watchlist stocks (not all 500). Computes Heikin-Ashi candles, rolling VWAP, RSI, and volume metrics. Checks all 5 gates. At most 2 picks per tick, 3 per day total.
TK
Outcome Tracker (runs once, after market close)~4:00 PM
For each open pick, downloads daily OHLC and checks if the stop was hit, the target was hit, or the pick expired. Updates the accuracy database and recomputes hit rates.
Why stop at 14:00, not 15:30?
The screener targets a 2R profit — twice the distance from entry to stop. For a stock with a 2% stop, that means a 4% move is required. A pick generated at 14:30 has only 1 hour before the forced close at 15:30. That is rarely enough time for a 4% move, so the screener stops generating new picks after 14:00 IST.

5. Phase 1: The Morning Watchlist Filter

Before the market opens, the screener runs three quick checks on each of the 500 Nifty 500 stocks. All three must pass. About 60–70% of stocks are eliminated here every morning.

F1
Price Band: ₹50 – ₹5,000
Below ₹50, the bid-ask spread is a large percentage of the price, eating into profits. Above ₹5,000, a 1% stop-loss costs ₹50 per share, making position sizing unnecessarily complicated for retail accounts.
RELIANCE (₹2,700) ✓ passes · YESBANK (₹20) ✗ too cheap · MRF (₹1,30,000) ✗ too expensive
F2
Liquidity: Volume ≥ 2 lakh shares/day, Traded Value ≥ ₹1 crore/day
A thin market means you may not be able to exit at the price you see on screen. With at least ₹1 crore of daily traded value, a ₹1 lakh position can be entered and exited without moving the price.
HDFC BANK (50+ lakh shares/day) ✓ passes · Obscure micro-cap (5,000 shares/day) ✗ too illiquid
F3
Uptrend: Previous Close Above 20-Day SMA
We only buy stocks that are already in an uptrend on the daily chart. A stock breaking above yesterday's high while the larger trend is downward is likely a failed rally, not a genuine breakout.
Stock at ₹500 with 20-day average at ₹480 ✓ passes · Stock at ₹500 with 20-day average at ₹530 ✗ downtrend

One critical implementation detail: the daily bars are always filtered to date < today before computing the 20-day average. This ensures the partial bar of the current session (which has only been open for a few minutes at prewarm time) never contaminates the trend signal.

6. Phase 2: The Five-Gate Signal

During market hours, the screener evaluates the watchlist stocks every 5 minutes. A stock only becomes a pick when all five gates pass simultaneously. A single failing gate is enough to reject the signal.

Think of the gates like a security checkpoint at an airport: you must pass the ID check, the boarding pass check, the bag scan, and the metal detector. Failing one means you don't board, regardless of how you did on the others.

G1
Breakout above yesterday's high
What it checks: The stock's current price is higher than its highest price from the entire previous trading day.
Why: Yesterday's high is a resistance level that bulls have been unable to break. When price closes above it, it signals a genuine shift in supply and demand — sellers who defended that level have been overpowered.
Example: INFOSYS had a high of ₹1,820 yesterday. At 10:35 AM today, it closes a 5-minute bar at ₹1,823. Gate 1 passes.
G2
HA close just crossed above rolling VWAP and still holds
What it checks: The Heikin-Ashi close is above VWAP right now, AND it was at or below VWAP in one of the three previous bars.
Why: This captures the specific moment a pullback ends and momentum resumes. We don't want a stock that has been above VWAP for hours (too late) — we want the fresh cross that shows buyers just re-asserted control.
Example: At 09:55, VWAP is ₹1,815. The HA close at 09:50 was ₹1,812 (below VWAP). At 10:00, HA close is ₹1,817 (above VWAP). Gate 2 passes.
G3
Price is at least 0.05% above VWAP
What it checks: The stock isn't just barely above VWAP — it has some clear separation.
Why: A stock trading at exactly VWAP ± 0.02% is not really above VWAP. The 0.05% minimum gap filters out marginal cases where the price is effectively sitting on the line.
Example: VWAP is ₹1,815. The 0.05% gap means price must be above ₹1,815.91 to pass. At ₹1,817, Gate 3 passes.
G4
Current bar volume ≥ 1.5× the session average
What it checks: More shares are trading in this 5-minute bar than in the average bar so far today.
Why: Volume is conviction. A price move on thin volume is often reversed by the next wave of sellers. A breakout on 1.5× normal volume means a large number of market participants are committing real money to the move.
Example: By 10:00 AM, the average 5-minute volume is 50,000 shares. The current bar (10:00–10:05) has 82,000 shares. 82k / 50k = 1.64×. Gate 4 passes.
G5
RSI(14) is between 45 and 70
What it checks: The RSI momentum indicator shows the stock has strength but is not yet overbought.
Why: RSI below 45 means the stock is too weak — momentum is working against us. RSI above 70 means the stock is 'overbought' on the 5-minute frame and statistically likely to pull back rather than continue higher. The 45–70 sweet spot finds stocks with momentum but still room to run.
Example: RSI = 62 → Gate 5 passes. RSI = 75 → rejected (overbought). RSI = 38 → rejected (too weak).
?
In Plain English
Here is a real-world walkthrough. Imagine TATA STEEL passes the morning filter. At 11:15 AM it starts moving. Gate 1 checks: did it break above yesterday's high of ₹155? Yes, it closed at ₹155.40. Gate 2 checks: did the HA candle just cross above VWAP? Yes — it was below VWAP at 11:05 and 11:10. Gate 3 checks: is it 0.05% above VWAP? VWAP is ₹154.90, so it needs to be above ₹155.00. At ₹155.40, yes. Gate 4: is volume high? Average bar has 2 lakh shares; this bar has 3.5 lakh. Yes. Gate 5: RSI is 58. Between 45 and 70. Yes. All five pass → the screener generates a BUY signal.

One crucial rule about timing: the screener only evaluates bars that have completely closed. At 11:12 AM, the 11:10–11:15 bar has not yet finished. The screener uses a cutoff:

Completed bars only — scanner.py
# At 11:12: cutoff = 11:07. The 11:10 bar is still forming, so it is excluded.
cutoff = now - timedelta(minutes=5)
intraday_bars = df[
    (df.index.date() == today) & (df.index <= cutoff)
]

7. Stop-Loss and Target: Where to Exit

Every trade needs two exit levels before it is placed: a stop-loss (if the trade goes wrong) and a target (if the trade goes right). Without these, you have no idea when to cut your loss or take your profit.

?
In Plain English
A stop-loss is a pre-decided exit point below your entry. If you buy at ₹155, and your stop is at ₹152, you are willing to lose ₹3 per share to find out if the trade works. The target is where you aim to sell if it does work. If your target is ₹161 (twice the stop distance), you are risking ₹3 to make ₹6 — a 1:2 risk-reward ratio.

How the stop is calculated

Instead of using an arbitrary percentage, the stop is placed at a meaningful price level. The screener picks the tightest (highest) of three structural levels:

Stop construction — scanner.py
stop = max(
    row["session_low"] - 0.05,     # today's lowest price so far
    watchlist["prev_low"] - 0.05,  # yesterday's lowest price
    entry - 1.5 * row["atr"]         # 1.5× ATR below entry
)

# Reject if stop is too far (more than 5% below entry)
if (entry - stop) / entry > 0.05:
    return None  # no signal — risk is too high

ATR (Average True Range) measures how much a stock typically moves in a single bar. Using 1.5× ATR keeps the stop just wide enough to avoid normal price noise without being so wide that a loss becomes too large.

Risk-Reward Geometry (2:1 Target)
TARGET
TARGET
entry + 2R (e.g. ₹161)
ENTRY
ENTRY
breakout close (e.g. ₹155)
STOP
STOP
tightest level (e.g. ₹152)
Risk (R)
₹3 per share
Target
₹6 per share (2R)
Min. hit rate
~33% to break even

8. The NIFTY Market Check (Regime Filter)

Even the best individual stock setup fails when the overall market is crashing. A screener that ignores the index is like booking a beach trip without checking whether a cyclone is approaching.

?
In Plain English
Imagine 95% of boats in a harbour rise and fall with the tide. If the tide is going out (market falling), most boats go down even if they look seaworthy. The NIFTY check makes sure we only trade when the tide is coming in.
The NIFTY Stand-Down Rule
Before every 5-minute scan, the screener checks two conditions on NIFTY 50:

① NIFTY must be above its 20-day Simple Moving Average (the medium-term trend is up).
② NIFTY must not be more than 0.5% below yesterday's close (the index is not having a bad day).

If either condition fails → zero picks, no database writes. The screener sits out.

The NIFTY data is downloaded once at the start of the session and cached. Without this caching, the check would fire 48 times per day (once per 5-minute tick), generating 48 API calls just for the index — a significant source of rate-limit failures.

Critically, the check is fail-closed: if the NIFTY data download fails for any reason — network error, yfinance outage, server timeout — the function returns False and the scan produces zero picks. Trading in an unknown market environment is worse than not trading at all.

9. The Backtest: 60 Sessions, Honest Results

Before putting any strategy live with real money, FutureGain runs a historical backtest. The rules are strict: entry at the next bar's open (not the signal bar's close), round-trip transaction cost of 0.10% built in, no look-ahead bias, and a random breakout control for comparison.

?
In Plain English
A backtest is like replaying recorded footage from a cricket match and asking "if I had batted differently at this exact moment, would I have scored more?" The key rule is that you can only use information available at that exact moment — you cannot know what happened in the next over.

The comparison is against a random breakout control: a stock from the same universe, at the same time, with the same stop-and-target geometry, but selected randomly rather than by the screener's 5 gates. If the screener adds genuine value, it should beat this control.

Backtest Results — 60 trading sessions, Nifty 500 universe (July–October 2026)
StrategySignalsTarget Hit RateAvg Return / TradeResult
HA-VWAP screener
5 gates + NIFTY check
14314.6%−0.24%FAILING
Random breakout (control)
No signal filter applied
14320.0%−0.21%FAILING
Break-even threshold
Required at 2R target, 0.1% cost
—~33%0.00%MINIMUM

The result is unambiguous. At a 2:1 reward-to-risk target, a strategy needs to win roughly 33 out of every 100 trades just to break even after transaction costs. The HA-VWAP screener won only 14.6 out of 100. Even worse: the random control did better (20%), which means the screener's 5 gates are actively making the selection worse, not better.

10. Why Buying Strength Fails on NSE Intraday

This is the most important finding in the article. All five gates select for the same trait: strength. The stock is breaking out. Volume is surging. RSI is elevated. The Heikin-Ashi trend is clearly up. The price is above VWAP.

The problem is that by the time all five of those things are true simultaneously, the stock is at its most crowded and extended point. The traders who were going to buy have already bought. The remaining pool of potential buyers is smaller than the pool of sellers who are now looking to take profit.

?
In Plain English
Imagine a viral news story. By the time it appears on every WhatsApp group in India, most people who would buy have already bought. The ones who buy after seeing it on WhatsApp end up buying from people who got in earlier and are now taking profit. The same thing happens with momentum breakouts on a 5-minute chart: by the time all 5 gates pass, the easy money has been made.
The Inversion Finding
On NSE's 5-minute frame, buying the stocks that look the strongest at the moment of entry consistently underperforms a random strategy. This pattern has been observed across multiple signal frameworks tested on NSE data — it is not specific to Heikin-Ashi or VWAP. The 5-minute market on NSE is efficient enough that momentum signals leak away before they can be acted upon profitably.

This is why the module ships with enabled: false in production configuration. The code is complete, tested, and running in dry-run mode (logging picks without placing orders). Paper-trading it further while testing the alternative strategy (see next section) is the correct next step.

11. What to Build Instead: The VWAP Reclaim Setup

If buying strength is inverted, the correct approach may be the opposite: buying weakness recovering. The "VWAP reclaim" setup enters when a stock that was strong in the morning pulls back to VWAP and then reclaims it — meaning the pullback is over and buyers are back in control.

S1
Stock opens up and pulls back toward session VWAP
The gap-up at open proves overnight buying strength. The subsequent pullback is sellers taking profit — a healthy, normal move. During the pullback, RSI should drop to 40–55: weak enough to signal a real dip, but not so weak that the overall bullish thesis is broken.
Think of it as a rubber band. The stock stretched up strongly at open. The pullback is the rubber band compressing before the next stretch.
S2
Volume dries up during the pullback
Declining volume on the way down means sellers are not pressing hard. This distinguishes a distribution pullback (sellers offloading stock — bad) from a low-volume consolidation (a pause before the next move up — good).
If volume is loud when the stock falls, sellers mean it. If it falls quietly, with few trades, it's just a pause.
S3
Price reclaims session VWAP with a modest volume pickup
The entry bar crosses back above session VWAP. Volume should be slightly above the pullback bars — a calm, absorbed reclaim rather than a violent spike, which would indicate a counter-trend squeeze rather than resumption.
The stock gently crosses back above the day's 'fair price' line. The volume picks up just a little — buyers are showing up, but it's not frantic.
S4
Stop: below pullback low. Target: 1–1.5R. Window: 09:30–11:00 only.
The pullback low is a clean structural stop level. A 1–1.5R target is achievable in the remaining session time. Crucially, this setup is only worth trading in the first 90 minutes when session VWAP carries the most information about the day's institutional flow direction.
The safety net (stop) sits under the lowest point of the pullback. The target is conservative — we're aiming for 1 to 1.5× the risk, not 2×. This means we only need to be right 40% of the time to profit.

This setup has not yet been backtested — it is the next hypothesis in the pipeline. The honest position: it is directionally aligned with what the data says NSE intraday favours (mean reversion, not continuation), but until the same rigorous 60-session backtest is run with real fill assumptions, it remains a hypothesis, not a proven signal.

12. Developer Notes: Engineering Decisions Explained

This section is for developers building similar systems. Skip it if you are only interested in the trading logic.

Watchlist rebuild locking

If the morning watchlist build fails (yfinance rate limit, network error), the system must not retry on every subsequent 5-minute tick. The fix is committing _watch_date = today at the very start of the build function — before any download attempt. One try per day. If the morning build succeeds, it stays in memory for the session and survives later transient failures.

Outcome tracking on daily bars (not 5-minute bars)

The outcome tracker resolves intraday picks against daily OHLC, not 5-minute bars. The trade-off is precision for reliability: yfinance retains 5-minute history for only 60 days, while daily history is available indefinitely. The first-day rule compensates: on entry day, the tracker uses the closing price (not the daily high) as the target check, to avoid counting a pre-entry spike as a win.

Causal computation — no look-ahead bias

Every indicator — Heikin-Ashi, rolling VWAP, RSI — is computed so that row t uses only data from bars 0 through t−1. Using future data (even the current bar's final close, if it has not yet formed) would make backtests look better than live performance. The cutoff line above eliminates this class of bug entirely.

13. Session VWAP vs Rolling VWAP — Which Should You Use?

Most NSE screeners — including popular tools on platforms like Stockezee and TradingView — use the session-cumulative VWAP, which resets at 09:15 and accumulates throughout the day. This screener uses a rolling 14-bar VWAP (covering the last 70 minutes). The right choice depends on your strategy and the time of day.

Session VWAP vs Rolling VWAP(14) — when to use which
PropertySession VWAPRolling VWAP(14)
What it showsAverage price for the whole dayAverage price for the last 70 min
Most informative09:15 – 11:00Stays informative all day
At 14:00Mostly anchored to morning volumeStill reacting to recent moves
Best for T+1 (buy today, sell tomorrow)✓ Best — shows net daily institutional flowLess useful for overnight signals
Best for pure intradayGood in morning, weakens later✓ Best — stays sensitive all session
VWAP reclaim setup✓ Use session VWAP (09:30–11:00 window)Use rolling for afternoon setups

14. Frequently Asked Questions

QDo I need to know Python to use this strategy?
ANo. The Python code runs on a server automatically. You can apply the same logic manually on TradingView or Zerodha Kite using Heikin-Ashi charts and the VWAP indicator. The 5 gates can be checked visually before placing a trade.
QWhich stocks is this screener designed for?
ANifty 500 stocks that are priced between ₹50 and ₹5,000, trade at least ₹1 crore daily, and are in an uptrend on the daily chart. This covers most actively traded large-cap and mid-cap stocks on NSE — approximately 150–200 stocks on any given day.
QWhat is the minimum capital needed to trade these signals?
AThe screener is designed for position sizes around ₹1 lakh per trade (to avoid market impact). With a typical stop of 1–2%, the loss per trade would be ₹1,000–₹2,000. A minimum of ₹5–10 lakh capital is recommended so no single trade represents more than 10–20% of the account.
QWhy does the backtest use a random control instead of just reporting the hit rate?
AA hit rate in isolation is meaningless without context. If 20% of random breakouts hit their target, a strategy with a 20% hit rate has no edge at all — it could be replaced by a coin flip. The random control measures whether the screener's 5 gates actually add selection value beyond chance.
QIs this screener suitable for beginners?
AThe trading concepts (breakout, VWAP, stop-loss) are beginner-accessible. The Python implementation requires some technical knowledge. More importantly, intraday trading on NSE has a very high failure rate among retail traders — the backtest results in this article are a good reminder of why paper-trading for at least 3 months before committing capital is strongly recommended.
QCan this screener work on BSE stocks?
AThe screener was designed and tested exclusively on NSE-listed Nifty 500 stocks. BSE stocks could theoretically be added by changing the yfinance tickers from '.NS' suffix to '.BO', but liquidity is generally lower on BSE for most stocks, which would likely worsen the results.

Conclusion: What This Screener Taught Us

Building this intraday screener was worth it — not because the strategy worked, but because the backtest clearly told us why it did not. Understanding that buying momentum strength on NSE's 5-minute frame is inverted is a valuable piece of market knowledge that shapes how the next strategy will be designed.

The infrastructure — two-phase architecture, causal computation, fail-closed regime filter, structural stops — is solid and will be reused when the VWAP reclaim hypothesis is tested. The module runs in dry-run mode, accumulating paper picks every day, building the live validation sample that will eventually confirm or reject the next idea.

In systematic trading, an honest "this doesn't work" is more valuable than a backfit "this looks great" — because one costs you only time, while the other costs you money.

NSE Intraday ScreenerHeikin-AshiVWAPIntraday Trading IndiaPython Stock ScreenerNifty 500Algo TradingMean ReversionStop LossBacktestRSIMomentum BreakoutFutureGain

About the Author

The FutureGain Research Team combines experience in Indian equity markets with quantitative systems. We scan 500+ Nifty 500 stocks daily, process 3,000+ data points per stock, and verify every strategy on live NSE data before publishing. We share what worked and what didn't. Read our methodology →

Disclaimer: FutureGain is not registered with SEBI. All content is educational and research-oriented only. Nothing in this article constitutes investment advice or a recommendation to buy or sell any security. Stock market investments involve substantial risk. Past backtest results do not guarantee future performance. Always consult a SEBI-registered investment advisor before trading.

Want AI-Powered Signals Instead?

FutureGain Scans 500+ Nifty Stocks Daily

Skip the code and get production-grade stock signals backed by machine learning. Today's picks across short, medium, and long-term horizons — free, no signup required.

View Today's AI Picks →

No credit card. No spam. Educational signals only.

Want the daily AI-scored research list?

Try the FutureGain AI screener free — no signup required. See today's top signals across Nifty 500.

Try Free Now

Get the Weekly AI Signals Digest

Every week we send a short email with the strongest AI stock signals, key market shifts, and one simple, practical idea you can apply in Indian markets. No spam, no tips — just structured research.

By subscribing you agree to receive educational emails from FutureGain. You can unsubscribe any time with one click.