In which I stop inventing my own data, and discover that the cleverest half of the system was worthless.
Until the 16th of July, every backtest in this project ran on data I had partly made up.
Not dishonestly. NSE publishes a free daily archive - the bhavcopy - giving one closing price per strike per day, with open interest and volume. Real numbers. From those I reconstructed a chain: invert Black-Scholes on each day's close to recover the implied volatility, then use that surface to price any strike at any moment in between.
It is a reasonable reconstruction. It is also, unavoidably, a smooth curve drawn through a series of dots. The file that does this documents its own limits in a comment at the top, written on day one and never removed:
bid/ask is synthetic (fills overstate quality), BS-smooth intraday
I knew. It said so on the tin. And for two months I built on it anyway, because it was free and it was there.
Here is the problem with a curve you drew yourself: it has no surprises in it.
A backtest on reconstructed prices cannot tell you what a spread actually costs to cross, because the bid/ask is a formula. It cannot tell you how a position behaves during the sixteen minutes a market takes to travel 75 points, because the intraday path is interpolation. It cannot show you skew that moves against you at exactly the wrong moment, because the skew is whatever the model says it should be.
Every one of those is precisely the thing my strategy depended on.
So in mid-July I bought the real thing: a licensed tick archive of Nifty options - 177 million rows of one-minute data from February 2019 to July 2026. Real premiums. Real open interest. Real skew. Actual bid and ask.
It is the least glamorous line item in the project and the highest-leverage decision in it.
With real prices, the sensible move was not to check the existing strategy. It was to re-ask every question at once.
2,529,537 simulated trades. Every structure crossed with every strike anchor, every wing width, every exit style, every management rule, run on real stitched multi-day paths with verified costs and slippage - then joined against a 10,749-row hourly signal and regime matrix so that every trade knew what the signals had been saying at the moment it was opened.
That produced 832 full configuration cells. To reach the finalists, a cell had to clear n ≥ 800 trades and be positive in both eras - 2019-22 and 2023-26 - so that nothing survived on the strength of one favourable regime. 133 cells passed. A broad region, not a lone lucky point. Those then went through a margin-capped, NAV-compounding portfolio simulation and a 500-path Monte Carlo.
The findings, in the order they hurt:
condors lost ₹1,345 per trade. Five-hundred-point wings made ₹489. Monotone across the range. Not a tuning miss - a sign error in my understanding of the structure.
into −25%.
every tick - the whole careful apparatus. The configuration I was actually running had, over seven and a half years, approximately zero expectancy.
reasoning that thin premium was not worth the risk. In the real data, the thin-credit bucket is the profitable one. My quality filter was a loss filter with the sign flipped.
classification, the composite scorer, factor caps, fifteen indicators. Across 7.5 years the gating showed no measurable edge. Non-monotone. Flat.
The executive summary of that study contains the sentence this whole project turns on:
Structure and geometry are the edge; signals are not.
Two things followed within a fortnight.
The winning cell - nearest weekly, 0.30 delta, 500-point wings, one convert-and-ride management action on a 75-point breach - was promoted to its own isolated paper book the same day. That book is the one trading real money now. It has no signals in it at all.
And SWING - the flagship, the strategy this entire specification was written around - was tested directly on the real tape. An eight-rule opening series: no edge. The fade variant on the full 2019-2026 tape: no edge. The non-fade core: no edge either. Seven closed paper trades had already hinted at it (43% win, −₹4,366), but seven trades prove nothing and I knew it. The real-data tests were what settled the argument.
On the 23rd of July I retired it.
Roughly two months of work - the regime state machine, the indicator library, the composite scorer, the conviction thresholds, four pre-execution gates - was measured against real prices and found to contribute nothing over a rule you could write on a napkin.
The work was not wasted, exactly. The scaffolding, the risk engine, the execution layer and the research infrastructure all survived and are load-bearing today. But the part I was proudest of, the part that felt like insight, was decoration. And I could not have known that while I was grading my own homework with a Black-Scholes pencil.
Your data purchase is not a line item, it is the experiment. I spent two months building on reconstructed prices because they were free, and every conclusion drawn in that period was provisional in a way I had noted, filed, and stopped thinking about. The moment real data arrived, the answers inverted - not shifted, inverted, on wing width and on credit filtering.
AI makes it dramatically cheaper to build systems and to test them. It does nothing whatsoever about the quality of what you test them against. If anything it makes the gap more dangerous, because you can now generate a thousand confident, well-formatted, beautifully reconciled conclusions from a source that cannot support one.
Before you fund the model, fund the measurement.
This series was written with Claude, the same tool it describes. I supplied the project, the judgement calls and the arguments; Claude supplied the drafting, and dug every figure out of the repository’s own commit history so I could not flatter myself from memory.
Declaring that seems the least I can do given the subject. It would be a peculiar hypocrisy to publish eight posts on harnessing AI while implying I typed them all by hand. If the writing is good, that is partly the tool. If the judgement is sound, that part is mine. Distinguishing between those two things is, as it happens, what the entire series is about.
By day I run product for data strategy and operations at Condé Nast, where the brief is customer identity: the unglamorous business of establishing that the person reading on a phone in Mumbai and the one subscribing on a laptop in London are the same human being. Essentially the ‘slow work’ of turning unknown into known, in various stages. The glamorous parts of my day: developing the single customer view, and harnessing that data to optimise for amplified engagement and revenue across multiple lines and brands.
Twenty-four years of it now, across product, data and technology - client side and agency side, in media and publishing, CPG, insurance, automotive, FMCG and telecom, across North America, Europe and Asia. Enough time in front of CXOs to have learned that a business case travels further than an architecture diagram, and enough time behind them to know the diagram still has to be right.
This project was my evenings. It brings together the triumvirate - my love for the world of finance and markets, my drive to build a production grade system using the latest AI toolset, and the itch to discover first hand what these tools are truly capable of. And the only honest way to find out what these tools can carry is to hand them something that can lose real money.
Questions, disagreements, war stories from your own build, or a conversation about senior product leadership and AI-delivery roles - all welcome.