QuantsappFaster in the app: live data, alerts, tradingOpen
Log inStart free
Futures · technicalIntradayNIFTYmedium complexity

9/21 EMA scalp

The 9 and 21 EMA crossover is one of the most common scalping setups, and on its own it whipsaws badly. This version adds filters to keep only the cleaner signals on 3-minute NIFTY futures bars: the crossover candle must agree with the trend or VWAP, carry a volume spike, not come from a choppy market and not be stretched far from the average. It trades two lots, banking half at 1.5 times the risk and the rest at 2.5 times.
Scalps 9/21 EMA crossovers on 3-minute NIFTY futures bars, filtered by trend, volume and chop, booking half at 1.5R and the rest at 2.5R.
Market viewEither direction (follows the move)
TradesNIFTY near-month futures, 2 lots
RiskOpen-ended (loss not capped by the structure)
CapitalFutures margin
SuitsAdvanced
Trades a month7.4
Typical hold8 min
Profitable months7 of 12
Longest losing run11 trades
Made money inTrend days that close near the high or lowDays after India VIX closed above 14.5
Lost money inQuiet sessions with a range under 0.75%Days after a normal VIX of 11.5-14.5
Default settings
Symbol
Fast
Slow
Bar minutes
Vol bars
Chop bars
Chop %
Max dist %
Wide mult
T1 r
T2 r
No entry open to
No entry from
No entry to
Last entry
Exit time
Skip expiry day
Lots per half
Backtest this strategy →Change any setting, pick your own period and run it in the Quantsapp web app. Backtesting is part of the Max plan. Pro+ members can use it now as a free trial.
1

How it trades

What it trades
Universe
NIFTY Intraday · 1 Oct 25 → 30 Sep 26
Enters
Next tick after a filtered 9/21 EMA cross on 3-minute bars, 09:30-11:30 or 13:00-14:45
Legs
BUY FUT · Near month · Current month · 2 lotsSELL FUT · Near month · Current month · 2 lots
Exits
stop The crossover candle's low (high for a short), or the previous candle's if it was widetarget Half at 1.5 x risk, the other half at 2.5 x riskstop After the first target, the second half's stop moves to the entry pricetime Anything still open at 15:15
Re-entry
Yes - the next valid crossover after a trade closes, one trade at a time
Bars
BAR_MINUTES bars (and 15-minute bars for the filters) of the rolled near-month future, anchored at 09:15, continuous across sessions; EMA FAST and SLOW of the closes; bar volume from the future's traded volume.
Signal
a bar closes with EMA FAST crossing above EMA SLOW (long) or below it (short), and all of: - the crossover candle is green for a long (red for a short); - its volume is above each of the VOL_BARS candles before it; - trend: the close is above the session VWAP (below for a short), or the last two completed 15-minute bars made a higher high and higher low (lower high and lower low); - no chop: the last CHOP_BARS completed 15-minute bars span more than CHOP_PCT % of the price; - not stretched: the close is within MAX_DIST_PCT % of EMA SLOW; - the bar closes outside 09:15-NO_ENTRY_OPEN_TO and NO_ENTRY_FROM-NO_ENTRY_TO, and by LAST_ENTRY; - SKIP_EXPIRY_DAY: not on a day an index option series of SYMBOL expires.
Entry
2 x LOTS_PER_HALF lots at the first tick after the crossover candle closes. One trade at a time.
Stop
the crossover candle's low (high for a short); if that candle's range is more than WIDE_MULT x the average range of the 10 bars before it, the previous candle's low (high) instead. At the level.
Targets
half 1 - T1_R x the entry-to-stop distance (R). Half 2 - T2_R x R; once T1 has traded, its stop moves to the entry price ("stop to cost"). Anything open at EXIT_TIME is squared off.
2

Results

PRE-BUILT · DEFAULTS
NIFTY · 2025-10-01 → 2026-09-30 · 89 trades · before costs
Net P&L+₹38,120
Win rate39%
Max drawdown−₹30,458
Avg per trade+₹428
Profit factor1.28
Worst trade−₹9,540
3

Where it made and lost money

The scalp needs movement. In this test trend days earned ₹39,791 over 23 trades and evenings with India VIX above 14.5 led to ₹38,356 over 30 trades, as crossovers on active days carried far enough to reach the 1.5R and 2.5R targets. Quiet sessions lost ₹25,364 over 40 trades with a 30% win rate: even after the chop filter, small ranges meant the candle stop was hit before the first target. Choppy days were positive, ₹22,445 over 25 trades, because wide swings still reached the targets. Days after a normal VIX lost ₹7,675 over 46 trades.

Kind of session on the entry day
Quiet session (range under 0.75%)−₹25,36440 trades30% won
Trend day (closed near the high or low)+₹39,79123 trades52% won
Choppy day (wide range, closed mid-range)+₹22,44525 trades40% won
India VIX the evening before
VIX below 11.5 (calm)+₹6,19012 trades50% won
VIX 11.5-14.5 (normal)−₹7,67546 trades28% won
VIX above 14.5 (nervous)+₹38,35630 trades50% won
Day of the week
Monday+₹31,47026 trades50% won
Wednesday+₹6,26124 trades38% won
Thursday−₹5,83220 trades25% won
Friday+₹4,97318 trades39% won
How the entry day opened
Gap up of 0.4% or more−₹6,23015 trades33% won
Flat open+₹29,64056 trades38% won
Gap down of 0.4% or more+₹13,46217 trades47% won
Trend going in
Uptrend (NIFTY above its 20-day average)+₹13,89347 trades38% won
Downtrend (NIFTY below its 20-day average)+₹22,97841 trades39% won
Session direction on the entry day
NIFTY closed above its open+₹15,07553 trades36% won
NIFTY closed below its open+₹21,79635 trades43% won
Expiry day (NIFTY weekly)
Expiry day+₹3,9001 trades100% won
Other days+₹32,97287 trades38% won
The same trades, split by the market conditions around each entry, before costs.
4

About this strategy

  1. Build 3-minute and 15-minute bars from near-month NIFTY futures, with a 9 and 21 EMA on the 3-minute closes.
  2. Long signal: the 9 EMA crosses above the 21 EMA on a green candle whose volume beats each of the three candles before it. Shorts are the mirror image.
  3. Filters: price on the right side of the session VWAP, or the last two 15-minute bars trending the same way; the last four 15-minute bars must not be stuck in a range under 0.2% of price; and the close must be within 0.15% of the 21 EMA.
  4. No entries before 09:30, between 11:30 and 13:00, after 14:45, or on a NIFTY weekly expiry day.
  5. Buy or sell two lots on the tick after the signal candle closes. The stop is the signal candle's low (or high); if that candle is unusually wide, the previous candle's extreme is used.
  6. First lot targets 1.5 times the risk. Once it is hit, the second lot's stop moves to the entry price and its target is 2.5 times the risk.
  7. Anything open at 15:15 is squared off. One trade at a time.

Why traders use it

Short-term EMA crossovers capture the start of small intraday swings, and the 9/21 pair is a favourite because it reacts quickly without being as noisy as shorter pairs. The filters address its well-known weakness: crossovers in a flat market. Booking half early and moving the stop to cost on the rest is a common money-management habit that turns many trades into small wins or scratches while leaving room for a bigger move.

Works best whenActive sessions with real range, especially trend days and days after a nervous India VIX close, where a crossover on rising volume runs to the 2.5R target. Wide choppy days also paid in this test.
Struggles whenQuiet, narrow sessions where moves stall before the first target and the tight candle stop is hit, and ordinary-volatility days after a normal VIX close, which lost in this test.

The year in plain words

On NIFTY futures from 1 Oct 2025 to 30 Sep 2026, the filters let through 89 trades. Only 39% were winners, but winners averaged ₹5,031 against ₹2,555 for losers, giving ₹38,120 before costs and a profit factor of 1.28. 54 trades ended at the candle stop, 22 reached the 2.5R target and 10 were closed at cost after the first target. November and February added over ₹14,000 each, while March lost ₹6,942. After ₹20 per order and bid-ask slippage on two lots, the result is a ₹3,666 loss.

What the settings do

FastThe fast EMA length. Shorter values cross more often and earlier.SlowThe slow EMA length, which also anchors the stretch filter.Bar minutesThe size of the signal bars. Shorter bars give more signals and more noise; longer ones fewer and slower.Vol barsHow many preceding candles the crossover candle's volume must beat.Chop barsHow many 15-minute bars are checked for a choppy, narrow market.Chop %The minimum span of those 15-minute bars, as a percentage of price. Raising it skips more quiet periods.Max dist %The furthest the close may be from the slow EMA. A smaller value avoids chasing stretched moves.Wide multHow much wider than the 10-bar average a candle must be to count as wide, which moves the stop to the previous candle.T1 rThe first lot's target as a multiple of the risk.T2 rThe second lot's target as a multiple of the risk.No entry open toNo entries from the open until this time, to skip the opening noise.No entry fromStart of the midday no-entry period.No entry toEnd of the midday no-entry period.Last entryThe last time a new trade may be opened.Exit timeWhen any open position is squared off.Skip expiry dayWhen on, no trades on a NIFTY weekly option expiry day, which can be erratic.Lots per halfThe number of lots in each half of the position; the total is twice this.

Risks

  • Trading costs are large relative to the profit per trade, enough to erase the pre-cost gain.
  • Stops are only a candle away, so normal noise stops out most trades; 61% lost.
  • Two lots of NIFTY futures is a sizeable position for a scalp; the worst trade lost ₹9,540.
  • The continuous futures series jumps at each monthly expiry, which can produce false crossovers for a few bars.

Who it suits

Active intraday traders who scalp futures on short charts, can execute quickly or automate, and want to see how far filters can rescue a basic crossover once costs are counted.

5

Questions traders ask

What is the 9/21 EMA crossover strategy?

It buys when the 9-period exponential moving average crosses above the 21-period one and sells when it crosses below. On short bars like 3 minutes it is used for scalping small intraday swings.

Is the 9/21 EMA scalp profitable on NIFTY?

In this backtest from 1 Oct 2025 to 30 Sep 2026 it made ₹38,120 before costs but lost ₹3,666 after ₹20 per order and bid-ask slippage, with a ₹30,458 maximum drawdown before costs. Statutory charges would add to the loss. Past results do not guarantee future results.

Why book half the position early?

Taking half off at 1.5 times the risk and moving the stop on the rest to entry means that once the first target is hit, the rest of the trade can at worst break even before costs. The second half can still run to 2.5 times the risk. It lowers the average win but smooths results.

What does the chop filter do?

It looks at the last four 15-minute bars and skips the signal if their combined high-to-low range is less than 0.2% of price. Crossovers inside such a tight range usually reverse quickly.

6

Before you rely on it

ADAPTED FOR TODAY'S NSE RULES- The article's point filters are for a level of the index (about 50 points of chop on NIFTY, 80-90 points of stretch on BANKNIFTY): they are expressed as % of price (CHOP_PCT, MAX_DIST_PCT) so they hold at any level. - "Volume above the previous 3-4 candles" = above each of the VOL_BARS before it; "trend up (HH/HL) or above VWAP" = either one; "wide candle" = WIDE_MULT x the 10-bar average range. T2 "2-3R" -> T2_R 2.5. The square-off time and the last-entry time are ours (the article gives none). - "Avoid expiry days" is read from the expiry calendar (dte 0 on the nearest option expiry), never a weekday. - The article enters at the crossover candle's close; here at the next tick after it.
WATCH OUTthe 60-68% win rate after filters is claimed without data; a 3-minute scalp is very cost-sensitive. The rolled future jumps at each expiry, which the EMAs read as a move for a few bars. Gross of costs.
Also known as9 21 EMA scalping
Backtests run on historical NSE data with fills at the last traded price. "Before costs" excludes brokerage, taxes and slippage. Quantsapp is not recommending any strategy; it is just a backtesting utility. Past results are not a promise of future returns.

Log in or sign up

Enter your mobile number. New to Quantsapp? The same OTP creates your free account.

+91

By continuing you agree to the Terms of Use and Privacy Policy.