Much Ado About Nifty · Part II of VIII

Sound, Fury, and Signal

In which fifteen indicators arrive in a week, and I discover that most of them are the same idea wearing a false moustache.

ONE FACT: “price has been going up” SMA slope MACD RSI uncapped 220 pts factor-capped 120 pts Meanwhile, the genuinely independent evidence: OI walls IV skew gamma regime futures build-up - drowned out, until capped A moving average, a MACD and an RSI cannot disagree: they are three arithmetic views of one series.
Three indicators, one fact. Factor caps stop a family of correlated signals outvoting the independent evidence.
Key takeaways
  • Fifteen technical indicators built in a week were largely measuring the same market fact, inflating the composite conviction score.
  • Factor caps group correlated signals and cap each group's contribution, restoring weight to independent options-market evidence.
  • AI supplies unlimited implementation capacity but no theory of which inputs are genuinely independent.

With the fences up, the building went fast. Absurdly fast.

In the space of a week the perception layer existed: moving averages across four horizons, ADX, RSI with divergence detection, Stochastic, MACD, Bollinger Bands with squeeze detection, ATR, pivot points, Fibonacci retracements and extensions, candlestick pattern recognition, and then the properly exotic end - open-interest walls, put-call ratios, implied-volatility skew, term structure slope, gamma regime, gamma flip level, vanna, charm, and a futures build-up classifier.

Every one implemented correctly. I checked. Black-76 greeks inverted from live chain prices, ADX with the right smoothing, the lot of it. If you have ever spent a fortnight getting the Wilder smoothing right on a single indicator, you will understand why this felt like witchcraft.

Then I ran the composite scorer and watched it produce a conviction of 91 on a market that was, by any honest reading, doing nothing much at all.

The moustache problem

Here is what happened. Price had drifted up for three sessions. So:

Three signals. Three votes. Weights of 8, 7 and 7 out of 10, each multiplied by a score up to 10 - 220 raw points of "evidence" pouring into the conviction score.

Except it is not three pieces of evidence. It is one piece of evidence - "price has been going up" - counted three times, because a moving-average slope, a MACD crossover and an RSI reading are three arithmetic transformations of the same underlying series. They cannot disagree. Asking them to vote independently is like polling a man, his reflection, and his shadow.

Meanwhile the options layer - open-interest walls, skew, gamma positioning, the genuinely independent read on what large participants had actually done with money - was being drowned out by the echo chamber.

Factor caps, and the limit of what a model can tell you

The fix is a construct called factor caps. Signals are grouped by what they actually measure - trend-technical, options-structure, futures-flow, price-structure - and each group gets a ceiling on its total contribution, not each signal. The three momentum views can shout as loudly as they like; between them they get 120 raw points, not 220. The options group gets its own 160. Suddenly the score reflects a balance of evidence rather than whichever family had the most members.

That single change did more for signal quality than any indicator I added.

And here is the part worth dwelling on, because it recurs for the rest of this series:

The AI implemented every indicator flawlessly. It could not tell me which of them were the same idea in a different hat.

That is not a knock. Correlation between technical indicators is a domain judgement - it depends on what you believe you are measuring and why. Ask the model directly and it will give you a reasonable-sounding answer, because it gives reasonable-sounding answers. But it had no stake in being right, and no way to know that my particular composite was about to double-count momentum into a false conviction on a flat tape.

I only found it by looking at a number that felt wrong and refusing to move on.

The signal that flickered

A second, subtler failure. One of the options signals - dominant OI flow, which classifies whether calls or puts are being built - turned out to be noisy at the boundary. On a balanced day it would flip between calls_building and puts_building on tiny changes, and because it fed both the trade conviction and the regime confidence, a meaningless flicker in the input produced a visible swing in the output.

It took a dedicated fix on its own branch and a fortnight of instrumented observation to confirm the noise was gone. The item sat in the deferred tracker as #32 and - in a piece of foreshadowing I did not appreciate at the time - was eventually closed not because it was solved but because the entire book it fed was retired. More on that in Part V.

What this means for senior product and engineering leadership

The temptation with a capable coding agent is to measure progress in features. Fifteen indicators in a week! Look at the commit graph!

But a signal system's quality is not the count of its inputs. It is whether those inputs are independent, and whether you have an honest theory of what each one adds. AI hands you unlimited implementation capacity. It does not hand you a theory. If you do not bring one, you will build a very fast, very well-tested machine for counting the same fact repeatedly and calling the result conviction.

← Part IWhat's Past Is ProloguePart III →Beware the Ides of Paper
A note on how this was made

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.

Who am I

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.

Get in touch

Questions, disagreements, war stories from your own build, or a conversation about senior product leadership and AI-delivery roles - all welcome.