Most options backtests die the moment real money touches them. The equity curve in the report climbs smoothly. The live account, running the same rules, bleeds. The strategy didn't change — the assumptions did.
The gap is almost never the idea. It's the things a backtest quietly assumes in your favour: perfect fills, zero slippage, costs rounded down to nothing. Fix those, and a "great" strategy often turns ordinary or negative. That's not bad news. That's the backtest finally telling you the truth before your capital does.
Here's how to backtest Nifty and BankNifty options so you stop fooling yourself.
Why options backtests lie more than equity ones
A stock backtest can get away with rough assumptions. An options backtest cannot. Options carry baggage that equities don't: weekly expiry cycles, fixed lot sizes, fast time decay, and wide bid-ask spreads on anything that isn't near-the-money. Each of these breaks a lazy backtest in a different way.
The biggest one is multi-leg cost stacking. A short straddle, an iron condor, or any hedged structure pays costs per leg, on both entry and exit. Four legs in and four legs out is eight chargeable events. A backtest that models cost once, or not at all, hands you P&L that simply doesn't exist in a real contract note.
Model every cost, on every leg
The cost stack on a single Indian options leg includes brokerage, STT, exchange transaction charges, SEBI turnover fees, GST, and stamp duty. None of these are huge alone. Together, across multiple legs and many round trips, they are the difference between an edge and a slow leak.
Pull real numbers, not assumptions
Don't guess your costs. Open one real contract note from your broker for an options trade you've actually done, and read the charges line by line. Use those exact figures in your backtest. Costs vary by broker and by trade size, so a number you copied from a forum is just another assumption.
A clean way to think about it: estimate the full round-trip cost for one lot of your structure, then ask how many points of favourable move you need just to break even before any profit. If a strategy needs to clear a meaningful cost hurdle on every trade and your average winner is small, the math is already against you — and only a cost-honest backtest will show that.
Anadi's options backtesting flow lets you set fee assumptions and a fill model directly in the wizard, so cost realism is a setting you choose, not a detail you forget.
Slippage is a cost, even though it isn't on the contract note
Slippage is the difference between the price your backtest fills at and the price you actually get. On liquid weekly ATM Nifty options it's small. On far OTM strikes, on BankNifty in a fast move, or near expiry on an illiquid contract, it can dwarf your brokerage.
Two slippage rules that keep you honest:
- Never assume a fill at the mid-price. Real entries cross the spread. Model your fill at the bid when selling and the ask when buying, or add a fixed slippage in points per leg.
- Make slippage worse for the strikes and times you actually trade. A backtest that uses tight ATM spreads but deploys on OTM tails is testing a different strategy than the one you'll run.
Fill assumptions that flatter you
Costs are the obvious trap. Fills are the sneaky one.
Mid-price fills. As above — the single most common way a backtest inflates returns. Halve the spread in your favour on every leg and a marginal strategy looks like a winner.
Assuming you always get filled. Limit orders don't always execute. If your rule says "enter when premium touches X," a backtest happily fills you every time, but live you may watch the price tag your level and reverse without you. Stop-loss exits have the opposite problem: in a gap or a sharp move, you fill worse than your stop, not at it.
Same-candle entry and exit. If your signal and your fill happen on the same one-minute or one-tick bar, you've likely peeked at information you wouldn't have had live. Enter on the next bar after the signal, not the bar that generated it.
Stale option prices. Illiquid strikes don't trade every minute. A last-traded price from twenty minutes ago is not a price you can transact at now. Prefer contracts with real, continuous volume and treat thin strikes with suspicion.
Build the test so it can't flatter you
Realistic costs and fills stop the obvious lies. The subtler lie is overfitting — tuning rules until they fit the past perfectly, then mistaking that fit for an edge.
Options are especially prone to it because there are so many knobs: strike selection, expiry choice, entry time, stop distance, target, adjustment rules. Turn enough of them and any historical period can be made to look profitable. It almost never holds up live.
Three habits that protect you:
- Keep rules simple and reason-backed. "Sell the straddle at 9:30, stop at 1.5x premium" has a logic you can defend. "Enter when RSI is exactly 53.7 on a 13-period chart" is curve-fitting wearing a costume.
- Hold out data you never looked at. Build on one period, then test untouched on another. If the edge survives out-of-sample, it's worth more. Walk-forward testing — re-fitting on a rolling window and testing forward — is the stronger version of this.
- Count your trades. Twelve trades proving nothing will happily produce a beautiful curve. A handful of lucky expiries is not a track record. Be skeptical of any result built on a thin sample.
Pair this with conservative risk management: a sized position, a hard per-trade loss cap, and a daily loss limit. An honest backtest tells you the worst stretch the strategy already lived through — assume the real worst is yet to come.
A cost-honest backtest checklist
Before you trust any options backtest, confirm:
- Costs are modelled per leg, on both entry and exit, from a real contract note.
- Slippage is applied on every fill, and is wider for OTM strikes and expiry day.
- Fills assume crossing the spread, not the mid-price.
- Entry happens on the bar after the signal, never the same bar.
- Only liquid, continuously-traded strikes are used; thin contracts are flagged.
- Limit-order fills aren't assumed to be automatic; stop exits can fill worse.
- There's untouched out-of-sample or walk-forward data confirming the edge.
- The trade count is large enough to mean something.
- Position size, per-trade stop, and daily loss limit are part of the test.
Run that list and most "profitable" strategies get quieter. The ones still standing afterward are the only ones worth paper trading next — and then deploying small, with real money, where the final truth shows up.
If you want a backtest workflow that makes costs, fills, and risk explicit instead of optional, try Anadi Algo in early access and stage your assumptions before they cost you.
The goal isn't a pretty equity curve. It's a backtest you can't argue your way out of.



