Expiry days in India have always been noisy. But the latest F&O expiry session added a new character to the story: the Closing Auction Session, or CAS. News reports described the Nifty dropping to an intraday low of 22,879 — down 2.2 per cent — during the indicative closing period, before recovering to close 1.2 per cent lower. Bank Nifty fell more than 1,400 points at its worst and then clawed back roughly half the damage by settlement.
For a discretionary trader, that is a scary candle. For an algo trader, it is something more specific: a market-structure change that touches your stop-losses, your square-off timing, your data feed, and your backtest assumptions all at once.
This post is not about predicting the next expiry. It is about understanding what changed, where it interacts with an automated workflow, and which process checks are worth adding now.
What Happened on the Latest Expiry Day
As reported by Hans India, the recent F&O expiry session on Tuesday saw sharp two-way swings, extending a pattern visible since the Closing Auction Session framework went live on August 3 for stocks with futures and options contracts.
The reported numbers tell the shape of the day:
- Nifty touched an intraday low of 22,879 during the indicative closing period, down 2.2 per cent, then settled at 23,118.6 — a loss of 279.5 points, or 1.2 per cent.
- Bank Nifty fell more than 1,400 points to 55,196 at its low, then closed at 55,794.75, down 811.8 points or 1.43 per cent.
- Sensex ended at 74,003.82, down 777.94 points.
Notice the gap between the low and the close. Roughly half of the fall in both indices happened and then un-happened inside the closing window. The report also notes that SEBI is reviewing the mechanism and examining ways to reduce volatility linked to expiry-day settlement prices.
That last line matters for process. It means the rules themselves may change again. Anything you build around today's closing mechanics should be built as a configurable filter, not a hardcoded assumption.
What the Closing Auction Session Changes
Under the CAS framework, the closing price of stocks with F&O contracts is determined through a short auction at the end of the trading session, instead of being derived purely from continuous trading.
Why does an auction in individual stocks shake the index? Because index values are computed from constituent stock prices. When large F&O stocks go through an auction window, their indicative and final prices can move sharply, and the index calculation reflects that movement. On an expiry day, this collides with everything else that already happens in the final minutes: position unwinds, hedge adjustments, and settlement-linked activity.
Two properties of this new close deserve an algo trader's attention:
- The indicative price is not the final price. The Nifty print of 22,879 existed during the indicative period, but the settled close was 23,118.6. Any system that treated the indicative move as a "real" traded level reacted to a price that partially reversed.
- The close is now a different kind of data point. Before August 3, your end-of-day price came from continuous trading. After it, for F&O stocks, it comes from an auction. Those are not statistically identical, and your historical data does not warn you where one regime ends and the other begins.
Neither property makes CAS good or bad for traders. It makes the last few minutes of an expiry session structurally different from the rest of the day — and different from your backtest history.
Where CAS Volatility Actually Hits an Algo Workflow
Walk through your own system's paths and check each of these. This is the blast radius of a closing-mechanism change.
Stop-losses reacting to closing-window prints
If your strategy runs signals off spot or index-derived values into the close, a sharp indicative-period swing can trigger stops that a slower, settled price would not have. On the reported expiry day, a Bank Nifty system with a spot-based stop 1,000 points below entry could have been stopped at the worst prints of the day, only to watch the index recover 600 points into settlement. That is not the strategy failing — it is the strategy reading a price series whose character changed in the final minutes. A risk management layer that widens or freezes stop evaluation in the closing window on expiry days is a legitimate design choice worth testing.
End-of-day square-off timing
Most intraday systems, and most broker risk desks, square off positions at a fixed time. If that time now sits near or inside a volatile auction window on expiry days, your exit fills happen in the most chaotic minutes of the session. Check when your square-off actually fires, what price you realistically get at that time, and whether moving it earlier on expiry days reduces slippage more than it costs in captured move. This is measurable — log it.
Settlement price versus your last fill
Short option positions held to expiry settle against official settlement values. If the closing mechanism produces a settlement level meaningfully different from where the index traded twenty minutes earlier, your realized P&L can differ from what your screen suggested at your last exit opportunity. The practical response is not prediction — it is deciding, in advance, whether your system carries positions into the settlement window at all, and sizing so that a 2 per cent adverse swing in that window is survivable.
Data and candle integrity
Does your data vendor include indicative auction prints in the final candles, or only the settled close? Do your one-minute bars for the last ten minutes look different post-August 3? If you feed candles into signals or into a scanner, you need to know what those last bars actually contain. A quiet data-definition change can alter signal behavior with no code change on your side.
Backtests built on the old close
Every close-to-close statistic in your backtest — overnight gaps, closing-basis calculations, end-of-day mean reversion — was computed on pre-CAS closes for most of its history. The mechanism that generates the close changed on August 3. More on this below, because it is the most under-discussed problem.
Practical Risk Filters for Expiry Days Under CAS
None of these are trade calls. They are filters you can define, test, and switch on or off deliberately.
Time-of-day filter on expiry days. The simplest control: no fresh entries in the final 30 to 45 minutes of an expiry session, and either exit or fully hedge before the closing window. You lose some opportunity; you also stop donating slippage to the most volatile minutes of the week. Backtest both versions and compare, rather than assuming.
Slippage assumptions that respect the clock. A flat slippage number across the day is fiction on expiry days. Use one assumption for normal hours and a visibly worse one for the last half hour. If your strategy's edge disappears under the worse assumption, it was an edge that depended on calm closes — better to learn that in backtesting than in a live auction.
Prefer defined-risk structures near expiry. A naked short option into a volatile settlement window has open-ended exposure to exactly the kind of 2 per cent swing the news described. A hedged structure — spread, condor, or a basket with protective legs — caps the damage a wild closing print can do. When you build such structures, check the max loss and margin before execution, not after. In Anadi's options workspace, the Strategy Finder ranks structures by max loss, theta, and capital fit, and the basket preview shows margin with existing positions considered — the point being that risk numbers should be visible before the order goes out, whatever platform you use.
Treat expiry days as calendar events. You probably already avoid RBI policy minutes or budget hours. Under the current mechanism, the expiry close itself qualifies as a scheduled volatility event. Put it in the same event-avoidance list, with the same discipline. A weekly market outlook habit — noting which sessions are expiry sessions and what mechanism applies — is preparation, not prediction.
Verify the calendar itself. Expiry schedules and settlement mechanics in India have changed multiple times, and SEBI's ongoing review means they may change again. Do not trust a hardcoded weekday in your code or an old blog post. Confirm current expiry days and mechanism details from NSE circulars before each series, and keep them as config values your system reads, not constants buried in strategy logic.
Backtesting Through a Market-Structure Change
Here is the uncomfortable part: you cannot properly backtest CAS behavior yet, because only a handful of expiries have happened under it. That sample is too small for statistical conclusions, and any parameter you tune to fit those few sessions is almost certainly overfit.
What you can do honestly:
Tag the regime. Mark August 3 in your data and treat pre-CAS and post-CAS closes as different regimes. Any strategy whose edge concentrates in the final minutes of the session should be evaluated separately in each regime, with the post-CAS sample clearly labeled as "too small to trust yet."
Log live expiry-day slippage separately. Since the backtest cannot tell you how auction-window fills behave, your live logs must. Record intended price versus filled price for every expiry-day exit, and review the distribution monthly. This turns an unknown into a measured quantity within a few expiries.
Resist the urge to "fix" the strategy after one bad close. One whipsaw through an indicative-period swing is an anecdote, not a signal. Change parameters only when the logged evidence accumulates. If you find yourself editing stop distances the evening after every expiry, you are curve-fitting to noise in real time.
Paper-trade the new windows first. If you want to test a closing-window behavior change — earlier square-off, frozen stops, a hedge-before-close rule — run it in paper trading across a few expiries before risking capital on it. The mechanism is new for everyone; there is no shame in observing before committing.
A Sensible Expiry-Day Workflow
Pulling it together, an expiry-day session under the current mechanism looks something like this for a process-driven algo trader:
Start with context, not calls: check index and sector conditions so you know whether the day is trending, choppy, or news-driven before your systems act. Validate the option chain before any structure goes live — liquidity at your strikes, spreads, and how OI is distributed — because a strike that is fine at 11 a.m. may be a bad exit venue at 3:25 p.m. Let your signal layer filter aggressively: late-day signals on expiry sessions deserve stricter entry-quality rules, and a blocked entry near the close is usually protection, not a missed trade. Anadi's Action Center works on exactly this principle — showing why an entry is blocked, such as chase distance or invalidated price, instead of silently letting a late order through.
Then, before the closing window: know what you are carrying, know its max loss if the close swings 2 per cent, and know whether you are exiting, hedging, or holding to settlement — as a rule written in advance, not a decision made while watching an indicative price flash red.
If you want to build these rules — time filters, expiry-day flags, defined-risk baskets, blocked-entry logic — without writing code, you can join Anadi Algo early access and set them up in the strategy builder and options workspace directly.
Expiry-Day CAS Checklist
Before the next expiry session, confirm each of these:
- Mechanism check: Do I know the current expiry day and closing mechanism from official NSE circulars, not from memory or old posts?
- Stop logic: Do my stops react to indicative closing-period prints, and is that what I want?
- Square-off timing: Does my end-of-day exit fire inside the volatile closing window, and have I measured the slippage there?
- Settlement exposure: If I hold to expiry, can I absorb a 2 per cent adverse swing in the settlement window at my current size?
- Structure risk: Are my near-expiry positions defined-risk, and did I see max loss and margin before execution?
- Data audit: Do I know whether my candles include auction prints, and did anything change in my feed after August 3?
- Regime tag: Is August 3 marked in my backtest data, with post-CAS results treated as a separate, small sample?
- Review discipline: Am I logging expiry-day fills and reviewing monthly, instead of re-tuning after every noisy close?
The CAS story will keep evolving — SEBI is reviewing the mechanism, and the rules you adapt to this month may shift next quarter. That is precisely why the durable edge here is not a view on where Nifty closes. It is a workflow that notices structure changes, measures their effect on your fills, and adjusts through tested config changes instead of panic edits.



