Buying the RSI-50 turn in Nifty 500 stocks: a back-test with 27 variants
"Buy when RSI(14) climbs back above 50 after a long spell below it" is a classic reversal idea. We built the portfolio version for the Nifty 500, with a 25% drawdown limit, tested it on nine years of data, then tried 27 variants and regime filters. The base rule earned 5.0% a year against 12.4% for the index.
The rule, exactly
- Universe: Nifty 500 stocks, using a point-in-time membership store so that stocks are only considered while they were in the index. Even so, the universe still looks forward in some ways, so we deduct an allowance of 4% a year for survivorship in our comparisons.
- Signal: RSI(14) on daily closes has been below 50 for more than 50 calendar days, and then crosses above 50. Buy at the next day's open.
- Stop: below the lowest low of the previous 50 days.
- Exits: RSI crosses above 75 (exit next day); or a profit of 1.5 times the initial risk (buy price minus stop); or a close above the 50-day SMA plus 2 standard deviations (exit next day). Whichever comes first.
- Capital: ₹10 lakh with dynamic allocation across signals, and risk controls designed to keep the maximum drawdown within 25%.
- Costs: delivery charges and slippage, stressed at 2x and 3x.
Result of the main test (development, 2015 to 2023)
| Measure | Strategy | Comparison |
|---|---|---|
| Net compound annual return | +5.0% | Nifty 500: +12.4% |
| Maximum drawdown | 22.4% | Within the 25% limit |
| Trades | 647 | — |
| Alpha t-statistic (after adjusting for market exposure) | 0.5 | Needs about 2 to be convincing |
| Random-entry null (same exits, random entries) | median 5.5% | Strategy is below the random median |
| At 2x costs | +2.0%, drawdown 25.4% | Breaches the 25% limit |
| Validation (from late 2024) | −3.3% | — |
Of ten pre-registered pass conditions, the strategy failed six. The sealed final period (October 2025 onward) was never opened.
One fact stands out: random entries with the same exits did slightly better than the signal. That suggests the exits and risk control, not the RSI timing, produced what little return there was.
Trying to rescue it: 27 variants and a regime filter
The brief asked for variants (for example 40 days below RSI 40, 30 days below RSI 30) and a regime filter. We pre-registered a 27-variant grid, selected the best variant using development data only, and tested the filters:
- Selecting by development performance alone returned the original 50 days / RSI 50 / no filter rule again.
- A filter that only trades when the Nifty 500 is above its 200-day average: development return −0.1% (against +2.9% unfiltered on the same basis).
- A volatility-index filter: +0.2% against +2.9%.
- The best of all 27 variants: reality-check p-value 0.89. In plain terms: if you tried 27 random strategies, a result this good or better would appear about 89% of the time.
- The 40-days / RSI-40 variant was positive in both periods, but only +2.9% a year in development and +3.2% in validation, with the portfolio invested only about 16% of the time and an alpha t-statistic of 0.4.
A "separate" variant to raise returns
We also tried a version that scales risk with the market regime. It earned +0.8% in development with a maximum drawdown of 30.5%, above the 25% limit, and −2.6% in validation. Higher risk did not buy higher return.
Why a reversal rule may struggle here (hypotheses, not tested findings)
- Long waits, small positions. A stock below RSI 50 for 50 days is often in a long decline. When it crosses back, many signals are bounces inside a downtrend; the stop at the 50-day low is far away, so each position is small after risk-based sizing and much capital may sit idle.
- Profit-taking is early. The 1.5x risk target and the Bollinger-style exit cut winners; losers are allowed to run to a wide stop.
- The index was a strong competitor. The Nifty 500 returned 12.4% a year over the development period; a rule that is only partly invested (the best variants were invested about 16% of the time) needs a very high return on the capital it deploys to compete.
Lessons
- Always compare with the index and with random entries using the same exits.
- Report the exposure (how much capital was invested), not just the return on trades.
- Count all variants you tried when claiming significance.
- Test at 2x costs and with the drawdown rule enforced.
Limits
This is one rule family on one universe. The point-in-time store reduces but does not remove survivorship bias, so we use a 4% allowance. A different universe, such as mid-caps only, a different holding horizon, or a fundamental filter might behave differently; we did not test them. Full trade lists and audit checks are on the Strategy Review pages for the base study, the 27-variant grid and the regime-scaled variant. For the method, see pre-registration and sealed hold-outs. This is research, not a recommendation.