Mean Reversion Strategy for Nifty and Indian Markets
Trade mean reversion on Nifty with Bollinger Bands and Z-score. Dated example, lot size 75, rupee P&L after STT, GST and tax. Illustrative.
Key Takeaways
- 1.Mean reversion bets that a price stretched far from its average snaps back toward it. The key word is stretched, measured precisely, not guessed.
- 2.Two clean, objective triggers work on Indian indices: a touch of the lower or upper Bollinger Band (20 period, 2 standard deviations), and a Z-score beyond plus or minus 2 on a 20 day window.
- 3.The worked example below uses Nifty on dated daily candles, computes the Z-score by hand, sizes one lot of 65, and shows the rupee profit after STT, brokerage and GST.
- 4.Mean reversion fails badly in strong trends. A trend filter (price versus the 200 day average, or ADX below 20) is not optional, it is the difference between an edge and slow bleeding.
- 5.Numbers here are illustrative for learning. Past behaviour does not guarantee future results, and no strategy promises a fixed return.
What Mean Reversion Actually Means
Mean reversion is the idea that a liquid market spends most of its life oscillating around a moving average, and that extreme moves away from that average tend to be partly given back. It is the statistical opposite of momentum trading. A momentum trader buys strength expecting more strength. A mean reversion trader buys weakness expecting a bounce, and sells strength expecting a pullback. Neither is right all the time. Mean reversion earns money when the market is range bound or choppy, which describes Nifty and Bank Nifty for large stretches of any year.
The mistake most beginners make is treating the word average loosely. A vague claim like Nifty trades around 15,000 is useless for trading. You need a specific average and a specific measure of how far price has stretched from it. The two tools that make this objective are Bollinger Bands and the Z-score. Both are built from the same two numbers: a moving average and a standard deviation. Once you have those, the decision to enter or wait stops being a feeling and becomes a rule you can backtest and repeat.
On NSE this matters because the instruments most people trade, Nifty and Bank Nifty index options and futures, are taxed as business income, not as capital gains. Every entry and exit has a real cost in STT, exchange fees, brokerage and 18 percent GST on those charges. A mean reversion plan that ignores costs looks profitable on a chart and loses money in the account. We will keep the costs visible throughout.
Bollinger Bands and the Z-Score, Explained Simply
A Bollinger Band has three lines. The middle line is a 20 period simple moving average (the average of the last 20 closing prices). The upper band sits 2 standard deviations above it, and the lower band sits 2 standard deviations below it. Standard deviation is just a number that measures how spread out recent prices have been. When the market is calm the bands are narrow. When it is wild the bands widen. So the bands automatically adjust to volatility, which is exactly what you want in a market as variable as Nifty.
The Z-score says the same thing as a single number. The formula is Z = (today's price minus the 20 day average) divided by the 20 day standard deviation. A Z-score of 0 means price is sitting right on its average. A Z-score of plus 2 means price is at the upper Bollinger Band, two standard deviations rich. A Z-score of minus 2 means price is at the lower band, two standard deviations cheap. The beauty is that a Z-score is comparable across instruments and across time, while a raw point distance is not. A 200 point gap means something different on Nifty than on Bank Nifty.
Z-score and the Bollinger Band touch are the same event seen two ways. Z equal to minus 2 is price touching the lower band. Z equal to plus 2 is price touching the upper band. Pick one as your primary trigger and use the other to confirm.
Worked Example: Nifty Lower Band Bounce with Real Levels
Here is a fully worked, dated, illustrative example on the Nifty 50 index, using round but realistic daily closing levels. Assume that over the 20 trading sessions ending on a Friday in a normal range bound month, Nifty's 20 day simple moving average is 22,000 and the 20 day standard deviation of closes is 250 points. That gives an upper band at 22,500 and a lower band at 21,500.
Now suppose on the following Monday Nifty falls hard on a weak global open and closes at 21,480. Compute the Z-score: (21,480 minus 22,000) divided by 250 equals minus 520 divided by 250, which is minus 2.08. Price has pierced the lower band, the Z-score is below minus 2, and your trend filter shows price still above the 200 day average with ADX around 16, meaning no strong downtrend. This is a valid mean reversion long signal. The expectation is a bounce back toward the 22,000 middle band, not a new bull market.
You decide to express this with one lot of Nifty futures, lot size 65, entering long at 21,480. You set a stop below the recent swing at 21,280 (200 points of risk) and a target at the middle band, 22,000 (520 points of reward). That is a reward to risk ratio of roughly 2.6 to 1 before costs, which is the kind of skew mean reversion should give you when the entry is genuinely stretched.
Two sessions later Nifty reverts and you exit at 21,980, just shy of the average. Gross profit is (21,980 minus 21,480) times 75 equals 500 points times 75, which is Rs 37,500 on one lot. Now subtract the real costs of an index futures round trip.
| Cost item | Calculation | Amount (Rs) |
|---|---|---|
| Buy turnover | 21,480 x 65 | 13,96,200 |
| Sell turnover | 21,980 x 65 | 14,28,700 |
| Brokerage (flat Rs 20 per side) | 20 + 20 | 40.00 |
| STT (0.05% on sell side, futures) | 0.0005 x 14,28,700 | 714.35 |
| Exchange + SEBI charges (approx) | ~0.0019% x total turnover | 53.67 |
| GST 18% on brokerage + exchange | 0.18 x (40 + 53.67) | 16.86 |
| Stamp duty (0.002% buy side) | 0.00002 x 13,96,200 | 27.92 |
| Total costs | sum of above | ~852.80 |
Net profit is approximately 37,500 minus 512, which is about Rs 36,988 on one Nifty lot, illustrative. The point is not the exact paise. The point is that costs on an index futures mean reversion trade are tiny relative to a 500 point move, so the strategy survives costs easily when the signal is real. The danger is overtrading marginal signals where a 60 point bounce barely clears costs.
Levels, the 250 point standard deviation and the bounce are chosen to teach the method. Real Nifty values, margins and broker charges differ. Verify live contract specs and your own broker's charge sheet before risking money. Nothing here is a promise of profit.
The Same Setup Using Options Instead of Futures
Many Indian retail traders cannot or do not want to post the full futures margin (roughly Rs 1.4 to 1.75 lakh for one Nifty lot). The same lower band bounce can be played by buying a slightly in the money call or selling a put spread. Suppose with Nifty at 21,480 you buy the 21,500 weekly call expiring that Tuesday for a premium of Rs 180. One lot is 65, so your cost and maximum risk is 180 times 65, which is Rs 11,700 plus charges.
If Nifty reverts to 21,980 by Wednesday and the 21,500 call is now worth roughly Rs 520 in intrinsic plus a little time value, you exit. Gross profit is (520 minus 180) times 75 equals 340 times 75, which is Rs 25,500 on a Rs 13,500 outlay, illustrative. The option gave you leverage and a capped, known downside of Rs 13,500 if the bounce never came and the call expired worthless. STT on options is charged at 0.1 percent of premium on the sell side, plus the usual exchange fees and 18 percent GST, which on this trade is a small fraction of the move.
The trade off is real. Options decay. Theta works against a long option buyer every day, so a mean reversion bounce that takes a week instead of two days can turn a winning idea into a loss even if the index eventually reverts. This is why option buyers favour quick reversions near weekly expiry, while futures traders can hold a slower mean reversion without time decay eating them. Match the instrument to how fast you expect the snap back.
Exact Entry and Exit Rules You Can Backtest
Vague rules cannot be tested or trusted. Here is a concrete rule set for a daily Nifty mean reversion long. A short version simply mirrors every condition at the upper band.
- Trend filter first: only take longs when the index close is above its 200 day average, and ADX(14) is below 20 (no strong trend). This single filter removes most catastrophic mean reversion losses.
- Entry trigger: the daily close is below the lower Bollinger Band (20, 2), equivalently the 20 day Z-score is at or below minus 2.
- Confirmation (optional): RSI(14) below 30, or a bullish reversal candle such as a hammer on the signal day.
- Stop loss: below the signal day's low, or a fixed distance such as 1 times the 14 day ATR below entry. Whichever is wider, so normal noise does not stop you out.
- Target: the 20 day middle band (the average itself). Mean reversion targets the mean, not the opposite extreme. Booking at the average is what keeps the win rate high.
- Time stop: if price has not reverted within 5 sessions, exit. A reversion that refuses to happen is often a trend forming, and your edge is gone.
Notice the asymmetry built into the rules. You enter when the move against the mean is large (2 standard deviations) and you exit at the mean itself (0 standard deviations). That structural gap between a stretched entry and a central exit is the entire mathematical reason mean reversion can have a high win rate. The trend filter exists to stop you taking the trade in the rare but ruinous case where 2 standard deviations cheap becomes 4 standard deviations cheap.
Mean Reversion Versus Trend Following
These two styles are mirror images and they win in opposite environments. Understanding which regime you are in matters more than the indicator settings. The table below contrasts them in plain terms for an Indian index trader.
| Feature | Mean Reversion | Trend Following |
|---|---|---|
| Core bet | Stretched price snaps back to average | Strong move keeps going |
| Best regime | Range bound, low ADX, choppy weeks | Strong directional trend, high ADX |
| Typical win rate | Higher, many small wins | Lower, fewer large wins |
| Biggest risk | A trend that does not revert (gap down keeps falling) | Whipsaw losses in sideways markets |
| Entry style | Buy weakness, sell strength | Buy strength, sell weakness |
| Key filter | ADX below 20, price near 200 DMA | ADX above 25, price far from 200 DMA |
A practical Indian playbook is to run a regime switch. When ADX(14) on the daily Nifty is below 20, trade the mean reversion rules above. When ADX rises above 25, stand down on mean reversion entirely and either flip to trend following or sit out. Forcing a mean reversion trade into a one way market like a sharp budget day selloff or a strong earnings season rally is how accounts get hurt.
Risk Management and Position Sizing in Rupees
Mean reversion has a hidden trap. Because most trades win, the rare loser tends to be large, since you were adding into a falling market that did not stop. Survival depends on fixing your rupee risk per trade before you enter, not on being right often. A common rule is to risk no more than 1 to 2 percent of capital on a single idea.
Work it through with the Nifty example. Risk per lot was 200 points times 65, which is Rs 13,000 if the stop hits. If your account is Rs 5 lakh and you cap risk at 2 percent, that is Rs 10,000 of allowed risk, which is less than one futures lot of risk. The honest conclusion is that one Nifty futures lot is too big for a 5 lakh account on this stop, and the disciplined move is to trade the defined risk option version (max loss Rs 11,700, still high) or to widen capital. Position sizing is not a footnote, it decides whether you can take the trade at all.
- Never average down endlessly into a mean reversion long. One add at most, with the combined stop still inside your fixed rupee risk.
- Respect the time stop. Capital tied up in a non reverting trade is capital not earning elsewhere, and it is usually the start of a trend against you.
- Avoid event days. Steer clear of fresh mean reversion entries just before RBI policy, the Union Budget, big results or major US data, when a 2 standard deviation move can easily become 4.
- Account for costs in your edge. If your average winning bounce is only 60 to 80 points, frequent trading on Nifty futures still clears costs, but on illiquid stock options slippage and wide spreads can quietly erase the edge.
Applying It to Stocks: A Reliance Example
Single stocks mean revert too, but they carry company specific gap risk that an index dilutes away. Take a liquid large cap like Reliance Industries. Suppose its 20 day average is Rs 2,900 with a 20 day standard deviation of Rs 60. The lower band sits at 2,780. On a broad market down day Reliance closes at 2,772, a Z-score of (2,772 minus 2,900) divided by 60, which is about minus 2.13, with no negative company news. That is a clean reversion long candidate.
If you buy 200 shares in the cash segment at 2,772 and exit at the 2,900 average, gross profit is 128 times 200, which is Rs 25,600, illustrative. Held under one year, this is a short term capital gain taxed at 20 percent under current rules, so roughly Rs 5,120 of tax on the gain, plus delivery STT of 0.1 percent on both buy and sell, brokerage and GST. Held over a year, gains fall under long term capital gains at 12.5 percent above the Rs 1.25 lakh annual exemption. Note this cash equity tax treatment is different from index futures and options, which are business income at slab rates. Know which bucket your trade falls in before you size it.
An index rarely gaps 8 percent overnight, but a single stock can on results, fraud allegations or a downgrade. A mean reversion long in a stock that just gapped down on bad news is not cheap, it is correctly repriced lower. Always check why the stock fell before assuming it will revert.
Common Mistakes That Kill Mean Reversion Traders
Almost every blown up mean reversion account makes one of a short list of mistakes. The strategy is mathematically sound, but it is unforgiving of the trader who removes its guard rails. Treat the list below as a pre trade checklist.
- Skipping the trend filter. Buying every lower band touch in a falling market means you are knife catching. The ADX and 200 DMA filters exist precisely to stop this.
- Targeting the opposite band instead of the mean. Holding a long from the lower band all the way to the upper band turns a high probability reversion into a low probability home run.
- Using too short a lookback. A 5 day average on a fast index produces noisy, whipsaw signals. The 20 day window is a sane default for daily charts.
- Ignoring costs and slippage. On wide spread, low volume stock options the quoted bounce never reaches your account.
- No time stop. Letting a non reverting trade run forever is how a manageable loss becomes a margin call.
- Confusing cheap with safe. A Z-score of minus 3 is rarer than minus 2 but it can also be the early stage of a crash. Stretched is not the same as guaranteed to bounce.
Backtesting and Journaling Your Mean Reversion Rules
Because mean reversion lives or dies on a handful of objective numbers, it is one of the most testable styles there is. Before risking money, run the exact rules above over at least two or three years of Nifty daily data that include both trending and range bound phases. Record the win rate, average win in points, average loss in points, and the worst drawdown. A realistic mean reversion system might win 60 to 70 percent of trades with an average win smaller than its average loss, which is fine as long as the math nets out positive after costs.
Live trading then needs a journal, because the gap between a backtest and reality is usually the trader, not the rules. Log every entry Z-score, the ADX reading, your stop, your exit reason and the rupee result. Over 50 trades you will see whether you actually follow your own time stop, whether you keep taking entries in high ADX regimes you should skip, and whether your real fills match your assumed prices. A disciplined trading journal turns a fuzzy hunch into measurable evidence, and it is the single biggest separator between traders who improve and those who repeat the same costly mistake.
Sources and Further Reading
For authoritative data and further reading on this topic, refer to Zerodha Varsity, NSE India and Investopedia. Always confirm current rules, rates and contract specifications on the official source before you trade.
Related Topics
Related Articles
Understanding Trading Terminals in Indian Markets
What a trading terminal is, how Kite, NEST and ODIN compare, plus a worked Nifty options example, lot sizes, margins and Indian tax rules.
Understanding Blue Chip Stocks in Indian Markets
Nifty 50 blue chip table with market cap, dividend yield and beta, plus worked cash and F and O examples and Indian tax rules for 2026.
Understanding the Diamond Top Pattern in Indian Markets
Spot the diamond top reversal on Bank Nifty with a dated Oct 2024 example, options P&L in rupees, targets, stops and Indian F&O tax rules.
Covered Call in Indian Markets: A Comprehensive Guide
Covered call meaning for Indian traders: how it works on NSE, a worked Reliance example, STT, physical settlement, plus correct 20% STCG, 12.5% LTCG tax.
CPI Inflation and Stock Market in Indian Markets
How CPI inflation and the RBI 4 percent plus or minus 2 percent band move Nifty and Bank Nifty, with a worked options example, taxes and costs.
Pair Trading Strategy for Indian Markets
Pair trade TCS and Infosys with real z-score math, lot sizes, rupee P&L, STT and slab-rate tax. A worked, market-neutral guide for Indian traders.
The trading journal built for Indian F&O traders. Track your trades, spot patterns, build discipline.
- Log one trade a day by hand, on purpose
- AI mentor finds your repeat mistakes
- Behavioural analytics catch tilt early
- Trading calendar with P&L heatmap
- Pre-trade checklist flags risks
Yearly ₹2,499 · No broker credentials