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

CPR day-type switch

This intraday NIFTY futures strategy first decides what kind of day it is. At 09:25 it checks whether price sits inside a zone built from yesterday's pivot levels. Inside the zone, it treats the day as sideways and trades Stoch-RSI reversals. Outside it, it treats the day as trending and buys or sells a VWAP reclaim in the trend's direction only. Two entry engines, one switch.
Labels each NIFTY session as sideways or trending from yesterday's pivot levels at 09:25, then trades futures with Stoch-RSI reversals or VWAP reclaims to match.
Market viewEither direction (follows the move)
TradesNIFTY near-month futures, intraday
RiskDefined (max loss known at entry)
CapitalFutures margin
SuitsAdvanced
Trades a month24.9
Typical hold4 min
Profitable months7 of 12
Longest losing run6 trades
Made money inTrend days that close near the high or lowSessions that close below their openIndia VIX between 11.5 and 14.5
Lost money inGap-down openings of 0.4% or moreNervous markets with India VIX above 14.5
Default settings
Symbol
Day type time
Srsi os
Srsi ob
Body beyond VWAP %
RSI long min
RSI short max
Max stop points
Level buffer
Exit mode
Target r
Max trades per day
Entry from
Entry to
Exit time
Lots
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
5-min bar close 09:30-15:00: Stoch-RSI cross (sideways day) or VWAP reclaim (trend day)
Legs
BUY FUT · Near month · Current month · 1 lotSELL FUT · Near month · Current month · 1 lot
Exits
stop fractal swing low/high (sideways) or signal bar's low/high (trend)target 1R: entry plus the stop distancetime 15:15
Re-entry
Yes, after an exit; up to 3 trades a day, one at a time
Levels
from the previous session's high / low / close (classic floor pivots): P = (H+L+C)/3, CPR = (H+L)/2 and 2P - (H+L)/2, R1 = 2P - L, S1 = 2P - H, R2 = P + (H-L), S2 = P - (H-L). Zone = [min(S1, PDL), max(R1, PDH)].
Day type
the close of the 5-minute bar ending at DAY_TYPE_TIME inside the zone -> SIDEWAYS; above it -> TREND UP; below it -> TREND DOWN. Fixed for the day.
Sideways
Stoch-RSI(14,14,3,3) %K crosses above %D with both at or below SRSI_OS -> long; %K crosses below %D with both at or above SRSI_OB -> short. Stop = today's latest confirmed 2-bar fractal swing low (high).
Trend
TREND UP - the previous bar closed below the session VWAP and this green bar closes above it with at least BODY_BEYOND_VWAP_PCT % of its body above VWAP, RSI(14) above RSI_LONG_MIN, EMA 5 above EMA 20 and both rising -> long, stop = the signal bar's low. TREND DOWN is the mirror (RSI below RSI_SHORT_MAX) -> short, stop = the signal bar's high. Only the trend's direction is traded.
Entry
at the first tick after the signal bar closes, LOTS of the near-month future. Signal bars must close from ENTRY_FROM and before ENTRY_TO. Skipped when the stop is 0 or more than MAX_STOP_PTS away, or (TARGET mode) when the next pivot-ladder level (S2, S1, PDL, CPR, P, PDH, R1, R2) less LEVEL_BUFFER is nearer than 1R. One position at a time, at most MAX_TRADES_PER_DAY a day.
Stop
the stop level above, filled at the level.
Exit
EXIT_MODE "TARGET" - a target at TARGET_R x the risk. EXIT_MODE "TRAIL" - once the trade is 1R in profit the stop moves to the entry price (breakeven), and a 5-minute bar closing beyond the previous bar's low (high for a short) exits at the next tick. Anything open at EXIT_TIME is squared off.
2

Results

PRE-BUILT · DEFAULTS
NIFTY · 2025-10-01 → 2026-09-30 · 299 trades · before costs
Net P&L+₹26,075
Win rate54%
Max drawdown−₹14,339
Avg per trade+₹87
Profit factor1.2
Worst trade−₹2,025
3

Where it made and lost money

In this test the before-costs profit came mostly from trend days, which made ₹13,111 over 72 trades at a 62% win rate, against only ₹3,234 over 70 choppy days. On a day that keeps moving, the 1R target is hit before the stop; on a choppy day, the fractal or signal-bar stop is reached as often as the target. The strategy did far better in falling sessions (₹23,424 over 151 trades) than in rising ones (₹3,880), and gap-down mornings lost ₹4,173 over 37 trades. Days after an India VIX close above 14.5 made just ₹741 from 56 trades, so wide nervous swings added trades without adding profit.

How the entry day opened
Gap up of 0.4% or more+₹3,31427 trades48% won
Flat open+₹28,163234 trades56% won
Gap down of 0.4% or more−₹4,17337 trades43% won
Trend going in
Uptrend (NIFTY above its 20-day average)+₹2,767155 trades52% won
Downtrend (NIFTY below its 20-day average)+₹24,536143 trades57% won
Session direction on the entry day
NIFTY closed above its open+₹3,880147 trades50% won
NIFTY closed below its open+₹23,424151 trades58% won
India VIX the evening before
VIX below 11.5 (calm)+₹7,618102 trades52% won
VIX 11.5-14.5 (normal)+₹18,945140 trades56% won
VIX above 14.5 (nervous)+₹74156 trades52% won
Day of the week
Monday−₹1,58048 trades52% won
Tuesday+₹11,62662 trades60% won
Wednesday+₹22550 trades48% won
Thursday+₹9,88869 trades51% won
Friday+₹6,50168 trades57% won
Kind of session on the entry day
Quiet session (range under 0.75%)+₹10,958156 trades53% won
Trend day (closed near the high or low)+₹13,11172 trades62% won
Choppy day (wide range, closed mid-range)+₹3,23470 trades49% won
Expiry day (NIFTY weekly)
Expiry day+₹9,67663 trades59% won
Other days+₹17,628235 trades53% won
The same trades, split by the market conditions around each entry, before costs.
4

About this strategy

  1. Before the open, compute classic floor pivots from the previous session's futures high, low and close: P, the CPR, R1, R2, S1, S2. The zone runs from the lower of S1 and the previous low to the higher of R1 and the previous high.
  2. At 09:25, look at the close of the 5-minute bar: inside the zone means a sideways day, above it trend up, below it trend down. The label holds for the whole session.
  3. Sideways day: go long when Stoch-RSI %K crosses above %D with both at 20 or lower, short when it crosses below with both at 80 or higher. The stop is today's latest confirmed fractal swing low or high.
  4. Trend day: after a bar closes on the wrong side of VWAP, take the next bar that closes back across it in the trend's direction with at least 40% of its body beyond VWAP, RSI(14) on the right side of 50 and EMA 5 above (below) a rising (falling) EMA 20. The stop is that bar's low or high.
  5. Enter one lot of the near-month future at the next tick, between 09:30 and 15:00. Skip if the stop is over 30 points away or if the next pivot level is closer than the risk.
  6. Default exit is a target equal to the risk (1R). The TRAIL mode instead moves the stop to cost at 1R and exits on a close beyond the prior bar.
  7. One position at a time, up to three trades a day; anything open at 15:15 is closed. The session after a futures expiry is skipped.

Why traders use it

Most indicator systems work on one kind of day and bleed on the other. Oscillator reversals do well in a range and get run over in a trend; VWAP pullbacks catch trends but chop around in a range. Using the opening position against yesterday's pivots to pick the engine is an attempt to match the tool to the day. CPR and pivot levels are widely watched by Indian intraday traders, which gives the levels some self-fulfilling weight.

Works best whenIn this test, trend days that closed near their high or low (₹13,111 over 72 trades) and sessions that ended below their open. Days after a normal India VIX close between 11.5 and 14.5 earned the most, ₹18,945 over 140 trades.
Struggles whenGap-down openings of 0.4% or more lost ₹4,173 over 37 trades, and nervous days after VIX closed above 14.5 barely broke even. Choppy sessions earned little before costs, and any day with several small 1R round trips is hurt by brokerage and spread.

The year in plain words

From 1 Oct 2025 to 30 Sep 2026 on NIFTY futures with default settings, the strategy took 299 trades, won 54% and made ₹26,075 before costs (profit factor 1.2, maximum drawdown ₹14,339). Wins and losses were almost the same size, about ₹990 and ₹965, so the edge came from winning slightly more often. December alone contributed ₹15,802. Most trades came from the sideways engine: 109 Stoch-RSI stops against only 28 VWAP-reclaim stops, with 159 trades reaching the 1R target. After ₹20 per order and bid-ask slippage, the result became a ₹58,856 loss with a ₹61,842 drawdown. With an average gain of about ₹87 a trade, costs swallowed the edge several times over.

What the settings do

Day type timeThe bar ending at this time decides whether the day is sideways or trending. A later check sees more of the session but leaves fewer hours to trade.Srsi osHow low Stoch-RSI must be for a sideways-day long. A lower value waits for deeper dips and gives fewer signals.Srsi obHow high Stoch-RSI must be for a sideways-day short. Raising it means fewer, more stretched short entries.Body beyond VWAP %The share of the reclaim bar's body that must sit past VWAP on trend days. A higher figure demands a more decisive cross and filters out marginal ones.RSI long minTrend-day longs need RSI(14) above this level. Raising it keeps only stronger upward momentum.RSI short maxTrend-day shorts need RSI(14) below this level. Lowering it keeps only stronger downward momentum.Max stop pointsSignals with a stop further away than this many points are skipped. A tighter cap avoids large losses per trade but drops trades after wide bars.Level bufferPoints subtracted from the next pivot level when checking whether there is room for a 1R move. A bigger buffer skips more trades that run into a nearby level.Exit modeTARGET takes profit at a fixed multiple of the risk; TRAIL moves the stop to cost at 1R and lets the trade run until a bar closes beyond the previous one.Target rIn TARGET mode, the profit target as a multiple of the stop distance. Larger targets win less often but pay more per win.Max trades per dayThe cap on entries in one session. Fewer trades lowers costs but may skip the day's later setups.Entry fromSignal bars closing before this time are ignored, which keeps the opening minutes out of the system.Entry toSignal bars closing at or after this time are ignored, so late entries do not get squeezed by the exit time.Exit timeAny open futures position is squared off here. Only three trades in the year reached it with the defaults.

Risks

  • Average profit per trade before costs was only about ₹87, so normal trading costs turn the result negative.
  • The day type is fixed at 09:25 and never revised, so a misread morning keeps the wrong engine running all session.
  • Sideways-day trades fade the move, and a breakout from the range can stop several of them out in a row.
  • Many parameters interact, which makes it easy to find settings that fit the past and fail later.
  • Futures positions carry full point-for-point exposure and need margin, unlike a bought option.

Who it suits

Intraday futures traders who already follow CPR and pivot levels and want to test a rule-based way of separating range days from trend days. It needs screen time or automation, margin for one futures lot, and tolerance for many small trades.

5

Questions traders ask

What is a CPR day-type strategy?

It uses the central pivot range and floor pivots from the previous session to label the day. If the early price sits inside yesterday's pivot zone, the day is treated as sideways and traded with a reversal tool; if it sits outside, the day is treated as trending and traded only in that direction. This version labels the day from the 09:25 bar.

Is the CPR Stoch-RSI VWAP strategy profitable?

In this backtest on NIFTY futures from 1 Oct 2025 to 30 Sep 2026 it made ₹26,075 before costs from 299 trades, but lost ₹58,856 after ₹20 per order and bid-ask slippage. Statutory charges were not included and would deepen the loss. Past results do not guarantee future ones.

Why does it trade futures instead of ATM options?

The idea is often traded by buying at-the-money calls or puts on index signals. This version keeps the signals and stops on the near-month future so the result measures the rules themselves, not the option's time decay or the choice of expiry. VWAP is computed from the future's own traded volume because the index has no volume.

What is a Stoch-RSI crossover?

Stoch-RSI applies the stochastic formula to RSI values, giving a fast 0-100 oscillator with a %K line and a smoother %D line. Here a long needs %K to cross above %D while both are at 20 or lower; a short needs the opposite at 80 or higher. It is used only on days labelled sideways.

6

Before you rely on it

ADAPTED FOR TODAY'S NSE RULES- The source buys ATM options on NIFTY spot signals; this is the futures version from the spec, so bars, VWAP (the futures' own traded volume - the index has none) and stops are all on the near-month future. - RSI / Stoch-RSI settings and the pivot formulas are not in the source; classic floor pivots, RSI(14), Stoch-RSI(14,14,3,3) 20/80 and "RSI above 50 for longs" are the spec's interpretation, as are 3 trades a day. - With the "skip if the next level is nearer than 1R" filter, TARGET mode's "earliest of 1R and the next level" is always 1R, so the target is TARGET_R x risk. - Not implemented (stated): the structure-flip (LH+LL) exit and its reversal re-entry, the red-wick-then-green VWAP pattern, and the add at R1 - the core day-type switch and both entry engines are. - The rolled future jumps at each expiry, which would move yesterday's high/low/close and the indicators, so the session after a futures expiry is not traded.
WATCH OUTmany parameters; option-buying version is sensitive to the expiry chosen. Gross of costs.
Also known asCPR Algo 4intraday SRSI VWAPCPR day-type switch at 09:25: sideways -> StochRSI 20/80 crosses; trending -> VWAP reclaim (40% body) with RSI/EMA filters; buy ATM CE/PE, targets on the pivot ladder
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.