Most options backtests in India look prettier than they should. The equity curve climbs neatly, the drawdowns look manageable, and the win rate feels believable. Then the same logic goes live and the numbers fall apart inside two weeks.
The strategy is rarely the problem. The data assumptions are.
Below are the assumptions retail traders quietly bake into their option backtests, and what to do instead. None of this is theoretical. These are the gaps that turn a profitable backtest into a losing live system.
Assumption 1: The LTP is a real fillable price
This is the biggest one.
Most backtests use the option's last traded price as both the entry and exit price. That single line of code is responsible for a huge chunk of the gap between backtest and live results.
LTP tells you the price of the last trade. It does not tell you the price you would have got. If the last trade printed at ₹42 ten seconds ago, the current bid might be ₹40 and the ask ₹44. A market buy fills at ₹44. A market sell fills at ₹40. That is a ₹4 spread on a ₹42 option, or roughly 9.5% on a single leg, before brokerage and STT.
Stop using LTP for fills. The minimum honest assumption is:
- Buy entries fill at the ask
- Sell entries fill at the bid
- Exits flip: long exits hit the bid, short exits hit the ask
If your data feed only stores LTP, add a synthetic spread cost on top. Even a flat ₹1-₹2 per leg per fill is closer to truth than zero.
Assumption 2: Bid-ask spreads are constant
They are not. Spreads expand exactly when you need tight ones.
A few patterns worth coding into a backtest:
- First 5 minutes (9:15-9:20): spreads are wide on weekly options, especially OTM strikes. Quotes are thin, market makers are still finding levels.
- Last 30 minutes on expiry day: OTM weeklies can have spreads of 30-50% of premium. A ₹2 option commonly shows a ₹1.50 / ₹2.50 quote.
- Around major events: RBI policy, Fed decisions, monthly expiry, results of index heavyweights — spreads widen for minutes around the print.
- Far OTM strikes: the further you go from ATM, the wider the spread as a percentage of premium.
If your strategy enters in the first 5 minutes or holds till 3:25 on expiry, your real cost is much higher than an averaged spread suggests. Backtest with a time-of-day spread model, not a single fixed value.
Assumption 3: Any strike is tradable
A backtest will happily fill 200 lots of a 25-delta strike at any time of day. Live markets will not.
Two practical checks before trusting any options backtest:
- Open interest filter. Reject strikes with OI under a sensible floor for the underlying. For NIFTY weeklies a floor of 50,000 contracts is reasonable for active strikes. For BANKNIFTY, similar. For stock options, much lower.
- Volume in the last 5 minutes. If a strike printed only 3 trades in the last 5 minutes, your market order is the trade that moves the price.
This matters most for strangle and iron condor backtests that pick strikes by delta. The "perfect" 16-delta short strike on a Friday at 2:30 PM may exist in the data, but filling 10 lots there at the printed price is fiction.
A useful rule: if the strike's average minute-bar volume is below your intended order size, assume slippage of at least one tick per lot beyond the first.
Assumption 4: The expiry day candle is just another candle
Expiry day is a different market.
Theta is no longer smooth — it is a cliff. Gamma on ATM strikes goes vertical in the last hour. A 50-point NIFTY move that would change an ATM premium by ₹15 on Tuesday can change it by ₹40 on Thursday afternoon.
If your backtest treats Thursday 2:00 PM the same as Monday 2:00 PM, you are mispricing both your entries and your stop-losses. Expiry-day backtests need:
- Tick or sub-minute data, not 5-minute OHLC
- Realistic stop-loss slippage (a ₹5 SL on a ₹15 option will not fill at ₹5 in a fast move)
- Honest assumptions about exit at 3:25-3:29 — many platforms see liquidity dry up here
For 0DTE-style logic, minute candles smooth over exactly the moves that decide whether the trade was a winner or a loser. If your data is OHLC-only, mark expiry-day trades as low-confidence in your results.
Assumption 5: The square-off price equals the close
Auto square-off at 3:20 or 3:25 is a real action with real cost. Backtests usually book it at the candle close.
Reality is that an end-of-day square-off on an illiquid leg is one of the worst fills of the day. Quotes are thin, the next day's positioning is already pulling traders elsewhere, and an aggressive market order pays the full spread.
Add an explicit square-off slippage assumption — different from your in-market slippage — and apply it to any forced exit at session end.
Assumption 6: Costs are "small enough to ignore"
For one-leg directional trades on liquid weeklies, maybe. For multi-leg, high-frequency, or scalp strategies, costs eat the edge.
A realistic per-round-trip cost stack for an Indian retail trader on options:
- Brokerage (varies by broker; often ₹20 flat per order, but check yours)
- STT on sell side of options (currently 0.1% on premium; verify with your broker)
- Exchange transaction charges
- SEBI charges, stamp duty
- GST on brokerage and transaction charges
Then add the spread cost from Assumption 1 and slippage from Assumptions 3-5.
A 4-leg iron condor that round-trips weekly is paying 8 fills of friction. If your backtest shows ₹3,000 average weekly profit and you have not subtracted ₹600-₹1,200 of realistic costs, you do not have an edge — you have a costing error.
This is the same discipline we cover in options risk management: the backtest is only as honest as the worst assumption inside it.
A practical sanity-check checklist
Before trusting any options backtest result, run this list:
- Are entries and exits priced off bid-ask, not LTP?
- Does the spread model widen in the first 5 minutes and last 30 minutes of expiry?
- Are illiquid strikes filtered out by OI and recent volume?
- Is expiry-day data at minute or finer resolution?
- Is square-off slippage modelled separately from intraday slippage?
- Are all charges (brokerage, STT, exchange, SEBI, stamp, GST) included per leg?
- Has the strategy been forward-tested on paper or live-replay before scaling capital?
If any of these are missing, the equity curve is optimistic. Cut the expected returns by at least 30-40% mentally before going live.
Closing thought
A backtest is a hypothesis, not a forecast. The Indian options market — especially weekly index options — punishes anyone who confuses one for the other.
The fix is not fancier indicators. It is honest data assumptions: realistic spreads, liquidity filters, expiry-aware modelling, and full cost stacks. Build the strategy on Anadi Algo's no-code strategy builder and stress-test it through proper options backtesting with these assumptions baked in. Then forward-test on paper trading before risking real capital.
If you want to try this workflow with realistic execution modelling, request early access and run your first backtest with honest assumptions from day one.
The market will eventually price your assumptions for you. Better to do it yourself first.



