Regime-switching options on Bank Nifty

Notes from a research session: detecting volatility regimes and switching between iron condors and directional spreads.

March 28, 2026 alphabench team
optionsbank-niftyresearch

Hypothesis

Bank Nifty mean-reverts on calm days but trends sharply around RBI events and high-VIX sessions. A static strategy — say, an iron condor every morning — bleeds during trend days. A static directional spread bleeds on calm days. Could a regime detector do better than either?

Setup

We gave the planner this prompt:

"Backtest an intraday Bank Nifty options strategy that uses an iron condor on low-vol days and a debit spread on high-vol days. Use VIX-of-VIX as the regime signal."

The planner constructed two sub-strategies and a switching rule:

python
regime = "trend" if vvix(20) > vvix(60).quantile(0.75) else "calm"

if regime == "calm":
    # Iron condor: short OTM call + short OTM put + long wings
    open_iron_condor(width=200, dte=0)
elif regime == "trend":
    # Directional debit spread following the morning move
    open_debit_spread(direction=morning_bias, width=100, dte=0)

Results

Over 18 months of reconstructed option chains:

Adaptive Bank Nifty options

The adaptive variant beat both static variants by ~30% on cumulative return — not because it won bigger trades, but because it avoided the worst losses on regime-mismatch days.

What we learned

  • Regime detection is the hard part. VVIX worked better than rolling realized vol, but the threshold needs walk-forward calibration.
  • 5-minute bars beat 1-minute bars for the entry signal — 1-minute introduced too much noise around the 9:15 open.
  • Slippage assumptions matter a lot. Going from 1 tick to 3 ticks of slippage on each leg cut the Sharpe nearly in half. Live execution discipline is non-negotiable.

Try it yourself

You can clone this research session into your own workspace and iterate from there. See the options strategies guide for the supported leg types and strike selection rules.