Market structure · A field note

CAS Games and Algo Trading

SEBI says two players pushed the Sensex closing price around on the 13 August expiry. The order tells you how they did it. What nobody is talking about is what happens after the expiry — because that one fake price is now sitting inside your pivots, your ATR and your trend indicators, and it is still there the next morning.

Two weeks ago, in The Phantom Close, I wrote about India’s new closing auction. For about fourteen minutes every afternoon the index chart stops moving while futures and options keep trading, and then the index jumps in one step to catch up. I treated that jump as an accident of arithmetic. Nobody’s fault.

On 19 August, SEBI passed an ex-parte interim order (ref. WTM/KV/ISD/ISD-SEC-6/32673/2026-27, 19 August 2026) saying that on 13 August, somebody made that jump happen on purpose.

Below: what happened, in plain language. What it cost the people on the other side. And then the part I actually care about — what one fake closing price does to the indicators that almost every positional trader and every overnight algo in India is running, and how long it stays there.

The headline number is ₹3.68 crore impounded. The number I would put on a slide is smaller: ₹57 lakh. That is what the order says it cost, in the cash market, to move a settlement price worth ₹2.96 crore in expiring options.

01

What changed at 3:15

Since 3 August, the closing price is not the last traded price any more. It is an auction.

For every stock that has F&O, normal trading now stops at 15:15. Between 15:15 and 15:20 the exchange fixes a reference price. Then from 15:20 to 15:30 there is a closing auction: everybody puts in orders, nobody trades, and at a random second between 15:28 and 15:30 the auction shuts and one single price is struck — the price at which the largest quantity can trade. Orders have to be within ±3% of the reference price. That struck price becomes the close, and the close is what your expiring options settle against.

While the auction runs, the exchange keeps broadcasting an indicative price for every stock and an indicative index — “this is what the close would be if we shut the auction right now.” Options carry on trading through all of it, and traders watch that indicative index to decide what an option is worth.

Here is the thing to hold on to, because everything else follows from it. That indicative index is not built from trades. It is built from orders. And an order can be cancelled. A trade cannot.

02

What happened on 13 August

Two players, opposite directions, the same ten minutes — on a day the market had barely moved.

13 August was a Sensex weekly expiry. The order describes two entities, which SEBI says were not acting together, pulling the indicative index in opposite directions — each in the direction its own expiring option book needed.

WhoExpiring position at 15:20Needed the index toWhat they did
Copthall Mauritius Investment Long calls and short puts at 77500, 78000, 78500 — effectively a long position finish higher Buy orders in every Sensex stock at 3.0% above reference — the very top of the allowed band
Mansi Share and Stock Broking Long puts at 77800, 77900, 78000, all bought that same day fall, or look like it Sell orders in eight stocks at up to 2.5% below reference — then cancelled every one of them

The concentration is what makes this remarkable. In the two seconds of the first spike, 88 buy orders came into the Sensex stocks, worth ₹66.64 crore. Thirty-two of them were Copthall’s — and those thirty-two were 99.91% of the entire buy value. Every one priced 2.7% to 3.0% above reference. Every one stamped 15:20:42. Nobody else had a single order above +2%.

The same shape repeats in the second spike (96.09%) and the third (85.21%). Across the whole auction, Copthall was 86.6% of all buying.

And then the orders disappeared. Copthall cancelled buy orders worth ₹98.12 crore across 30 stocks at 15:26:21. Mansi cancelled 12.65 lakh of its 12.77 lakh shares of sell orders between 15:26:02 and 15:26:05 — a cancellation rate of 99.06%.

An auction prices itself off the orders it can see. For those few seconds, orders that nobody intended to fill looked exactly like orders somebody did. That is the cheapest lever in the market, and it sits directly under the number every expiring contract settles against.

The order records the indicative index at each turn. Plotted, it looks like a tug of war — one side lifting it to the top of the band in two-second bursts, the other holding it down with sell orders that were never going to trade.

Indicative index during the auction Where the index actually was
77,70077,90078,100 78,193 78,023 77,661 78,079.96 close reference 77,829.60 · last print 77,861.48 · SEBI’s fair estimate 77,840 15:2015:2215:24 15:2615:2815:30 spike 1spike 2spike 3 +362 in 2 sec+133 in 12 sec+405 in 28 sec orders cancelled 15:26:02–15:26:21
Sensex closing auction, 13 August 2026. The gold line connects the indicative-index levels and timestamps recorded in the order; the segments between those points are drawn straight because the intervening path is not published. The band is where the index actually was, by three independent readings. Vertical scale in index points.

The band on that chart is the closest thing here to a controlled experiment. Three completely separate ways of asking “where was the Sensex really that afternoon?”

All three sit inside a 32-point band. The auction closed at 78,079.96 — about 240 points above every one of them.

I find the regulator’s method quietly reassuring, because it is the same move anyone checking this has to make: when the number in front of you is not a traded price, check it against something that was trading. SEBI used a sister index. In the earlier note I used index futures and put-call parity. Different tools, same logic, same answer.

03

Who paid for it

The number that should bother option traders is not ₹3.68 crore. It is a price of 108.35.

Copthall’s side is easy to follow. The index finished 240 points above fair, so its calls paid more, and its short puts — which would have owed ₹1.35 crore to the buyers at the 78000 strike — expired at zero instead. The order values the package at ₹2.96 crore, against roughly ₹57 lakh of bad pricing in the cash market.

Mansi’s side is the one worth understanding properly.

Mansi was holding puts. The index was going to close above all of its strikes, so those puts were headed for zero. According to the order, during the five minutes its sell orders sat in the book pushing the indicative index down — 15:21 to 15:26 — Mansi sold the entire position. Four seconds after finishing, it cancelled the sell orders.

Put sold while the index looked weakQuantityAvg priceValueSettled at
SENSEX 77800 PE32,00016.39₹5,24,4800
SENSEX 77900 PE75,46042.05₹31,73,0930
SENSEX 78000 PE32,000108.35₹34,67,2000
Total treated as wrongful gain₹71,64,773

Somebody was on the other side of those trades. Every one of those puts was worth zero a few minutes later.

They bought because the index looked like it was sliding — and it looked like it was sliding because of sell orders that were pulled, in full, at 15:26:05.

This is where a market-structure argument turns into somebody’s actual account statement. Not the settlement price — the quotes on the way to it. A trader watching an expiry-day index apparently roll over in the last ten minutes, paying 108.35 for a put, was paying a price built out of intent that did not exist.

SEBI says as much itself, explaining why it acted immediately instead of waiting: such practices have “huge ramifications on participants who trade in F&O segments including retail investors”. And its reason for urgency is sharper still — both entities had already built positions in the next week’s Sensex options.

One detail I would not skip, because it cuts against the easy story: Mansi’s extra trading inside that window actually lost ₹7.15 lakh. The alleged gain came entirely from dumping a position that was already dead. Even here, the money was in the structure, not in the cleverness.

04

What your chart recorded

None of it.

Here is that same afternoon in one-minute index data — the data nearly every chart you look at is built from:

MinuteOpenHighLowClose
15:1477,879.2077,881.1177,839.2777,854.84
15:1577,861.4877,861.4877,861.4877,861.48
15:16 → 15:27— exactly the same, twelve more times —
15:2877,861.4877,861.4877,861.4877,861.48
15:2977,861.4878,079.9677,861.4878,079.96

Fourteen flat minutes, then 218.48 points in a single bar. Not one of the three spikes shows up. Nor the drawdown, nor the cancellations, nor the 532 points the indicative index travelled while all of that was going on. The chart recorded one tidy step and carried on.

That is not a data error, and no vendor’s feed will show you anything different. An index is a calculated number; it cannot move until its stocks’ auction prices are published, so it sits still and then jumps. But it does mean the whole episode above — the thing a regulator needed forty-six pages to describe — is invisible on the instrument almost everyone is actually watching.

And then the next morning arrives, and that one bar starts doing damage in a place most people never look.

05

Where it actually hits you

A bad closing price does not stay inside that day. It walks into the next one, inside your indicators.

This is the part I have not seen written up anywhere, and it is the part that matters if you hold positions overnight or run anything automated. It shows up in three places, and they get progressively worse.

a

Pivots and Camarilla

These do not care what chart you are on. If you trade levels, this one is yours.

Every pivot formula used in India — classic floor pivots, Camarilla, Woodie, CPR — takes yesterday’s high, low and close and builds tomorrow’s levels out of them. On 13 August the high and the low were real. The close was not.

Camarilla spacing comes off the range, so the whole ladder simply slides: every single level — H1 to H4, L1 to L4 — sat 218.48 points too high for the next session. Classic pivots move less, but move unevenly: the central pivot shifted 72.83 points, R1 and S1 by 145.65.

Here is what that did on 14 August. Same high, same low, same formula. The only difference is which close you feed it.

77,600 77,800 78,000 78,200 78,400 THE LADDER EVERYONE HAD close 78,079.96 — the auction print H1 L1 H2 L2 H3 L3 H4 L4 THE HONEST LADDER close 77,861.48 — last live print H1 L1 H2 L2 H3 L3 H4 L4 low 77,684 broke L4 → “sell” closed above H3 → “buy” Shaded band = where the Sensex actually traded on 14 August · black dot = its close
Camarilla levels for 14 August 2026, built from 13 August’s high (78,119.39) and low (77,665.89). Left: the close everybody had. Right: the last genuine index print before the freeze. Both ladders drawn on the same price axis.

Now read the two ladders against the day that actually happened. The Sensex opened at 77,903.43, fell to 77,684.37, and closed at 78,009.25.

Same session. Same formula. One ladder says short and the other says long — and the only difference between them is a closing price that ten minutes of cancelled orders helped produce.

b

Candlestick charts

Your moving average shrugs it off in a session. Your ATR does not — and ATR is feeding half your toolkit.

On a time-based chart the print becomes one bar with a long body, and the clock does most of the cleaning up. On a 15-minute Sensex chart, a 20-period EMA computed with the print was about 20 points away from the same EMA computed without it at the next day’s open, and back within 2–3 points by that afternoon. RSI was a point or two out. Annoying, not fatal.

ATR is the one to watch, and this is the bit I think most people will miss. ATR does not only measure today’s range; it measures the distance from yesterday’s close into today’s range. A fake close manufactures a fake gap. On that 15-minute chart:

15-minute Sensex, 14 AugustWith the auction printWithout itDifference
ATR(14) at 09:15148.80123.33+21%
ATR(14) at 11:00113.49101.31+12%
ATR(14) at the close79.4477.41+2.6%
EMA(20) at 09:1577,861.9977,842.4519.5 pts

An inflated ATR for one session sounds harmless until you list what is standing on top of it. Supertrend. Keltner Channels. Chandelier stops. ATR trailing stops. ATR-based position sizing. Every one of them takes ATR and turns it into a distance — how far away your stop sits, how wide your channel is, how many lots you are allowed to take. If ATR is 21% too big at the open, all of those answers are wrong for the rest of the day, and nothing on your screen looks broken.

One honest note in the other direction: on the daily chart this barely registers. Daily ATR(14) came out at 596.68 with the print against 594.46 without — about two points. It is the intraday timeframes that carry it, because there the fake gap is large next to a normal bar.

c

Renko and P&F

A chart that only moves when price moves has no way of knowing that a move was not a move.

Noiseless charts — Renko, Point & Figure, range bars — ignore the clock completely and record only distance travelled. That is exactly what makes them quiet, and it is exactly the exposure here: hand them 218 points that nobody travelled, and they will faithfully record 218 points of travel.

That one bar becomes 7 bricks on a 0.04% Renko chart, or 14 boxes on a 0.02% P&F — on charts that print about forty box events in an entire session these days.

It is one thing to calculate that and another to look at it, so I built both. Below is the real Sensex P&F across that boundary at a 0.02% box — and beside it, the same chart from the same one-minute data with the auction window taken out. Same engine, same settings, same sessions. That one bar is the only difference.

77,720 77,798 77,876 77,954 78,032 highest point of the previous five columns where the index actually was at 15:14 THE CHART AS IT EXISTS 18-box column · breaks out by 6 boxes SAME ENGINE, WITHOUT THAT ONE BAR 4-box column · no breakout at all Columns 44–52 · SENSEX · 0.02% box · 3-box reversal · 13–14 August 2026 Gold = the 14 boxes stamped 13 Aug 15:29, and the 14 that unwound them at the next open Both panels are literal engine output — produced with NoiselessOS
SENSEX, 0.02% box, 3-box reversal, columns 44–52 spanning 13–14 August 2026. Left: the chart as it exists. Right: the same engine over the same one-minute data with the 15:15–15:29 auction window removed. Both panels are direct engine output; no geometry is hand-drawn.

Look at the sixth column in each panel. Same column, same afternoon.

On the left it runs eighteen boxes and finishes six boxes above the highest point of the previous five columns — on a chart type where breaking above prior column highs is the buy signal. Fourteen of those eighteen boxes carry one timestamp: 13 August, 15:29.

On the right, the same column stops after four boxes, eight boxes below those old highs. No breakout. Nothing at all.

The chart on the left shows a clean upside breakout. It never happened. The market did not trade there — it printed there, once, for one second, at the end of an auction that is now the subject of an enforcement order.

And a P&F chart cannot tell the difference, because from where it is sitting there is no difference to tell.

Now the indicators. I ran the same Sensex Renko chart at a 0.04% brick twice — once with the auction bar, once without — and read everything off at the close of 13 August. Same engine, same settings, same data. One bar apart.

Reading at the 13 August close · Renko 0.04%With the printWithout itDifference
Supertrend (10, 3)LONGSHORTopposite
RSI (14)65.7048.74+17 points
Bollinger band width294.99224.30+31%
EMA (20)77,927.8877,867.1761 points
ATR (14)38.1342.86−11%
Keltner channel width137.09174.38−21%

Take that table one line at a time, because there is more in it than “the numbers moved a bit”.

And then the two lines I did not expect, which turned out to be the most interesting part of the whole exercise.

ATR fell 11%. The Keltner channel narrowed 21%.

Seven identical bricks in a row are the calmest thing a Renko chart can draw. So the fake move does not only fake a direction — it fakes calm. Every volatility-based stop you have tightens up, at exactly the moment it should be widening.

The reason is worth a sentence, because it is peculiar to these charts. On a brick chart, true range is measured brick to brick. When price is chopping, each new brick sits on the far side of the last one and the true range is two bricks wide. When price runs straight, every brick is one brick from the last — the smallest true range the chart can produce. So a burst of seven bricks in one direction, out of one bar, looks like the smoothest trend of the month. ATR obediently drops, Keltner tightens around it, and Supertrend’s band moves close enough to price to flip.

Which leaves you with this: on a candlestick chart the print inflates your volatility reading, and on a noiseless chart it deflates it. Both are wrong. They are wrong in opposite directions, so you cannot even carry one intuition across from the other.

And how long does it last?

Longer than you would guess. Here is 14 August — a normal session, market open, trading properly — comparing the two charts as the day went on:

The reason is the thing I keep coming back to: on a movement-based chart, a lookback period counts bricks, not minutes. A 20-period average is twenty box events. It has no clock. It cannot know that fourteen of its twenty inputs were manufactured in ninety seconds and the other six took two days.

A bad print on a 5-minute chart is one bar out of twenty. The clock removes it in a hundred minutes, guaranteed.

The same bad print on a 0.04% brick chart is fourteen of the twenty — seven going up, and seven coming back the next morning — and nothing removes it except real movement.

Genuine movement Printed by the auction bar Printed by the unwind next morning
older newer → the 20 most recent box events at the next open not one produced by the market travelling that ground the window clears only as these arrive
Schematic, at 0.02% box on the 13 August print. Each square is one box event in sequence. The auction bar prints fourteen; the next morning's return to the genuine level prints fourteen more. A twenty-period indicator does not clear them until twenty further genuine box events arrive.
06

And the market has gone quiet

The clock that clears a phantom print is market movement. There is a lot less of it now.

This is where it stops being a one-day anecdote for me. Since the auction started on 3 August, everything has gone still. The twelve sessions since, against June and July:

June–JulySince 3 AugustChange
India VIX, average close13.6311.77−14%
Sensex average daily range0.895%0.641%−28%
Nifty average daily range0.845%0.624%−26%
Bricks per session, Sensex 0.04%6942−40%

That last row is what ties the whole note together. The phantom is fourteen bricks. It used to be a fifth of a day’s movement. Now it is a third — and there is 40% less real movement arriving to push it out of your indicator’s window.

Did the auction cause the quiet? Nobody can say that yet, and I am not going to pretend otherwise. Twelve sessions is nothing, August is usually slow, and plenty of people are simply sitting out while they work out how the new close behaves. Ask me in December.

But the two effects stack whatever the cause, and they stack in the same direction: a bigger footprint from every bad print, and less real movement to clear it.

The quieter the market gets, the longer a phantom stays in charge. And a dull, rangebound stretch is exactly when a trend reading feels most trustworthy.

I measured this rather than assuming it. On one index, a trend reading computed with the auction print disagreed with the same reading computed without it on every tradable minute of two straight sessions. Across the first ten sessions of the new regime, roughly a quarter of the decisions my own automated rules took landed on a state that differed from the clean series.

Not all of those would have gone the other way — a different state often produces the same action. But it was uneven: some rule sets were barely touched, one was affected on more than 40% of its decisions. So it does not simply add noise. It quietly re-ranks strategies against one another, which is the one thing a comparison period exists to prevent.

07

Three places it can reach you

The auction touches three different things, and it is easy to fix one and assume you are done.

Settlement no appeal

An expiring contract settles at the auction close. That is a rule, not an opinion. Here the gains were impounded six days later — but the settlement itself stood, and everyone on the other side settled at 78,080 regardless.

No regulatory finding retrospectively repairs an expiry P&L. Holding something into that print means holding the outcome of a ten-minute window you cannot see into and cannot trade during.

The quotes on the way there the expensive one

This order’s real lesson. Options keep trading through the freeze, priced off an indicative index that can be pushed around by orders which are later withdrawn. The 78000 put that changed hands at 108.35 was a real trade at a real price — and the price was built out of intent that evaporated.

Defined risk is the answer that does not require you to be right about any of this: a 400-point swing in the equilibrium price is unlimited against a naked short and capped against a spread. In the earlier note, The Phantom Close, the same window turned a put quoted at 56.35 — with the index 37 points in its favour — into a worthless expiry.

Your signals the slow one

The two above are about one afternoon. This one follows you into next week. Pivot levels are wrong for a day. ATR-based stops are wrong for a session. A Renko or P&F trend state can be wrong for longer than that — and stays wrong longest exactly when the market is quiet.

Two questions worth being able to answer about your own setup: does your indicator’s lookback count bars or minutes, and how many chart events did the last few closes actually produce? Both are answerable in an afternoon.

08

What this isn’t

The auction is not the villain, and an interim order is not a verdict.

Closing auctions exist to make closing prices harder to push around, not easier, and most major markets run one. The order also makes a point that deserves more attention than it will get: under the old volume-weighted method this would have been considerably harder to spot. The auction is what made it visible — every order, every cancellation, timestamped to the second, inside one window. SEBI caught it in routine surveillance and acted within six days. That is the system working, not failing.

The order is ex-parte and interim. The two entities have not been heard yet, its findings are expressly prima facie, and nothing in it is a finding of guilt. They may well have answers. I have described it here as the order describes it, and linked it so anyone can read the whole thing themselves.

And a caveat against my own argument, because it belongs here. When I ran my own results across this period properly, the closing auction was a real but minority contributor — the volatility regime explained far more of what changed than the auction did. Roughly a fifth to a third of trend flips on one index traced back to auction-born chart events; on another, under a tenth. Anyone going looking for this in their own numbers should expect something smaller than the story suggests.

The lesson worth carrying, and the reason I wrote this up. Every chart is a compression of what happened, and every compression rests on an assumption about what a price is. Movement-based charts assume a price move means somebody actually traded that distance. Pivot levels assume yesterday’s close was a price somebody paid. Both assumptions held for decades and quietly stopped being universally true on one afternoon in August — not because anything broke, but because the market changed how one number gets made. Nothing errored. Nothing warned you. The number just started meaning something slightly different, and every formula standing on top of it carried on as though it hadn’t.