24 September update: Read the fixed ₹60L / ₹5L comparison of all 132 opportunities. It separates closed profit, open marks, ordering sensitivity and missing-stop assumptions. Earlier figures below use different experiments and must not be treated as interchangeable.

Equity book · replay · 16 Mar – 22 Sep 2026

The Same Six Months, on the New Rules

The book made ₹4.16 lakh over these six months on rules that have since changed in five places. This replays the window on the reconstructed candidate population under the rules as they stand today — pivot-low stops inside a flat 5% cap, the best-of-best shortlist, a breadth gate, close-based exits with a disaster line, breakeven at +8%, and twelve slots at a ₹40,000 risk budget.

18 trades closed net ₹646,253 vs ₹363,934 actual source: bhavcopy reconstruction
net, new rules
₹6.46L
against ₹3.64L actually made
trades taken
18
from 64 that cleared the gates
win rate
50%
9 up, 9 down
profit factor
5.07
₹8.05L won vs ₹1.59L lost
mean return
+7.19%
median +1.05%
worst drawdown
₹-0.67L
peak to trough, realised
most slots used
6
of 12 — the shortlist was the limit, not the capital
cleared the breadth gate
19/64
30% of the shortlist
The headline

Fewer trades, bigger each, and more money — but a different book

The new rules take 19 positions over the same six months — and they are not the 132 the book took; only two of those clear all four price gates, so this is a different set of names, not a filtered version of ours (see the reconciliation below) — 16 of the 19 that cleared the gate fell in June to September, and only 3 in April and May, because breadth was below its own mean for most of that stretch. Every one of them is a name that cleared all four price gates, carried RS ≥ 90 and EPS growth ≥ 25%, ranged 3–7% a day, and had a pivot low close enough to put the stop inside 5% — and each was entered only on a session when universe breadth was above its prior five-session mean.

-1.3L+0.7L+2.6L+4.5L+6.5LApr 2026Jun 2026Sep 2026
Realised P&L, cumulative. Blue is the replay under today's rules; grey is what the book actually did. Both curves are realised — a position still open at the end contributes nothing to either.
Month by month

Where the money was made and given back

-0.32LMay-0.24LJun+1.31LJul+1.51LAug+4.20LSep
Realised P&L by exit month, new rules. A trade counts in the month it closed, not the month it opened.
The shape of the book

What a trade looked like

<-81-8..-55-5..-33-3..-1-1..00..212..515..10510..202>20return per trade, %
Return per trade. The 5% cap and the close-based stop put a floor under the left tail; what is left of it is the gap risk the disaster line exists for.

Median hold 14 sessions. The left tail is bounded by construction: the gate refuses a stop more than 5% below the close it was judged on, and the exit is taken at the next open after a close beneath it. The worst trade in the replay lost -6.5% and every loss is inside 7% — against a book whose six-month record contains losses of 11% and 45%.

Why 10 rows show a stop wider than the cap. The gate is judged on the signal close; the fill is the next session's open, which can gap above it. The stop stays where the chart put it, so the distance measured from the fill is wider than the distance the gate approved. That is not a breach — it is the gap risk the disaster line at stop × 0.95 exists for, and it is why an entry more than a few percent above the signal close is worth refusing.

The honest part

Half the money is one trade

Concentration

The single best trade is 36% of the net and the best three are 74%. Strip the best one out and the replay makes ₹4.15L — still ahead of the ₹3.64L the book actually made, on a seventh of the trades, but the distance narrows sharply.

Eighteen trades is not a sample that settles anything. What it shows is a shape: small bounded losses, a handful of long holds carrying the result, and a market gate that kept the book out for most of April and May.

Capacity

Twelve slots were never the binding constraint

12 slotsMar 2026Jun 2026Sep 2026012
Positions open, session by session. The dashed line is the twelve-slot ceiling. Where the area sits far below it, the shortlist — not the capital — was the limit.
The funnel

From the population to the book

stagesetupswhat removed them
candidate population152G1–G4 on the RS≥85 universe, Mar–Aug
best of the best64RS≥90, EPS≥25%, ADR 3–7%
market gate open19breadth above its prior five-session mean
actually placed18twelve slots, filled in date order — never all twelve at once
still open at 22 Sep1took a slot, contributes no realised P&L
Every trade

The replayed book, in full

symbolentryexitdays stop%RSqtydeployedreturnP&L
INDSWFTLAB31 Jul15 Sep315.8%982,207499,914+46.21%+230,995
TBZ06 Jul11 Aug265.1%992,629499,832+31.37%+156,819
VINDHYATEL26 Aug22 Sep183.8%93206498,657+18.37%+91,615
IOLCP17 Jun22 Jul243.0%963,957499,971+16.55%+82,737
QUESS15 Jul07 Sep385.4%911,687499,830+14.75%+73,750
MARINE20 May07 Jul323.3%942,189499,968+11.54%+57,680
RRKABEL22 May07 Jul306.0%90252498,708+10.66%+53,172
AETHER21 Jul15 Sep394.2%93341499,291+8.46%+42,217
CPPLUS17 Jun21 Jul235.4%93147497,107+3.24%+16,099
UNIVCABLES20 Aug21 Aug13.7%92301499,853-1.13%-5,671
VINDHYATEL02 Jul03 Jul15.3%93239499,653-1.98%-9,894
INDSWFTLAB29 Jul30 Jul15.6%982,212499,912-2.31%-11,525
MACPOWER13 Jul28 Jul115.7%96367499,292-3.31%-16,541
SYRMA03 Jul20 Jul114.7%95359498,924-3.52%-17,577
JGCHEM26 Aug07 Sep84.1%91827499,450-3.63%-18,136
SEDEMAC13 Jul15 Jul24.9%94182499,917-4.54%-22,695
GLAND12 Jun16 Jun27.0%91216499,651-4.90%-24,494
ARROWGREEN06 May12 May45.7%94918499,657-6.46%-32,298
net realised +646,253
The other question

Book A — our own picks, today's sizing and exits

The replay above asks what today's rules would have bought. This asks something different and, for a book that already exists, more useful: keep every name we actually bought — including the ones the entry gates would now refuse — and change only the two things that are not about selection. Size each position to a ₹40,000 risk budget under a ₹5 lakh cap, and exit on a close beneath the stop at the next open, with the disaster line at stop × 0.95 and breakeven at +8%.

net, our picks re-run
₹13.75L
against ₹3.64L as actually traded
the multiple
3.8×
same names, same entries, different size and exit
trades
54
twelve slots, filled in date order
win rate
44%
vs 37% as traded
profit factor
2.64
₹22.1L won vs ₹8.4L lost
worst drawdown
₹-2.48L
peak to trough, realised
-2.5L+1.6L+5.6L+9.7L+13.7LApr 2026Jun 2026Sep 2026
Three books, one window. Green is every name we bought, re-sized and re-exited under today's rules. Grey is what the book actually did. Blue is the set of names today's entry rules would have chosen instead — a different book, not a subset.
-1.32LApr+0.17LMay-0.37LJun+7.79LJul+0.10LAug+7.39LSep
Our picks re-run, by exit month. The shape is the book's own — the same names in the same months — with the losses cut earlier and the winners left alone.
What this isolates

Selection is held constant, so the whole difference is sizing and exit. Our picks made ₹3.64L as traded and ₹13.75L re-run — the close-based stop stops handing back gains on intraday shakeouts, and the ₹5 lakh cap puts the same money behind every name instead of concentrating it.

Two honest caveats on this figure

The parameters move it. With no slippage and no horizon the same book makes ₹16.59L; at 0.5% exit slippage with positions closed at the sixtieth session it makes ₹13.75L. Both are in the table below. An earlier run of this comparison reported ₹21.9L under a harness whose exact settings could not be reproduced here; treat the range ₹13–17L as the finding and the single number as a point in it.

Four names carry it. RUBICON, HFCL, WELCORP and KIRLOSENG are most of the gain, and three of them ran for two months or more — which is the six-month review's own conclusion (holding period explains the book) arriving again by a different route.

Correction · 24 Sep

The ₹21.9L reproduces. It was the exit rule all along.

This page says the ₹21.9L harness could not be reproduced and asks you to treat ₹13–17L as the finding. That was wrong. Replayed against the real bars of all 132 trades, the figure comes back at ₹23.8L — a 3.4% gap that is slippage and horizon assumptions, not a different result.

What was never true is that it came from sizing, or from a different entry rule, or from a shortlist. The same 132 fills at ₹40,000 of risk and a ₹5,00,000 cap give:

same trades, same sizing total
the exits actually taken₹12.44L
close-based exits₹23.8L
difference₹11.4L

Every rupee of that gap is the exit rule: stop on a close below structure rather than a touch, sold at the next open, breakeven at +8%, a 20-day trail at 0.97, and the disaster line at stop × 0.95. It is the single largest measured effect in this system, and for a day it was being reported as an unexplained discrepancy between two harnesses.

Both figures are now pinned in tests/regressions/test_the_book.py against the real fills and 10,705 real bars, so a change to sizing moves one number, a change to the exits moves the other, and neither can drift unnoticed again. The missing-stop caveat below still stands: 39 of the 132 have no recorded entry stop and both figures assume 5% for them.

Correction · 25 Sep

The ₹23.8L is real, needs ₹242L, and is not the largest effect

Two things above need qualifying. Neither is an arithmetic error — the ₹12.44L → ₹23.8L pair is properly paired, same fills, same sizing, same 60-session horizon, and it still reproduces.

First, it assumes capital we do not have. Both rows size every one of the 132 trades independently at ₹40,000 of risk capped at ₹5L, with no cash pool and no slot limit. Measured afterwards, that book needs a peak of ₹242.5L across 49 simultaneous positions on 8 May. The account is ₹60L. Sequenced through one ₹60L pool with twelve slots — so that a full account simply misses the next signal — the same exit rule returns ₹12.60L, or 21.0%, taking 47 of 127 signals and missing 80. The ₹23.8L is the right number for the question "what are these exits worth per trade"; it is not an amount this account could have made.

Second, "the single largest measured effect in this system" is no longer true. Holding sizing fixed at the book's own quantities, the exit rule is worth +3.4 points over what the book actually did (6.1% → 9.4% on ₹60L). Holding the exit rule fixed and changing only the sizing — ₹40,000 of risk, ₹5L a name, twelve slots, against the 35 thin positions the book really ran at its April peak — is worth +11.6 points (9.4% → 21.0%). Position sizing is roughly three and a half times the exit rule. The exit rule remains the largest thing we have measured about exits, which is what the sentence should have said.

Correction · 26 Sep — the figure is ₹23.8L, not ₹21.16L. Two faults, found in that order. The bar fixture these replays read held split-adjusted prices for TDPOWERSYS (2:1) and POCL (2.5:1), while the trade book beside it holds the prices actually traded. Those two symbols were replayed across two price scales — their entries read 1.97× and 2.48× their own bars. Correcting the bars to the book's raw scale moves the close-based replay from ₹21.16L to ₹23.2L. No rule changed; two symbols' bars were wrong.

Then to ₹23.8L on 26 Sep, after the broker's own contract-note trail was recovered. WELCORP's second lot was carrying the first lot's fill price: the P&L statement shows 270 shares in two lots for ₹355,605.30, and with the 21 May lot at 1348.81 confirmed by that day's GTT alert, the 22 May lot works out at ₹1,285.30 — a price that session actually traded, where 1348.81 never did. A lower entry buys a larger position for the same ₹40,000 of risk, which is why the sizing row moved further than the replay: ₹11.16L → ₹12.44L. The exit rule's edge over the recorded exits is ₹11.4L, not ₹10.25L.

The figures above have been restated in place, so nothing on this page needs reading through a substitution; the tables and the tally say ₹23.8L and ₹12.44L directly. Three further entry dates were corrected the same day from the tradebook and the GTT alerts (SAKAR, GOLDBEES, NATIONALUM). All of it is now pinned by tests/regressions/test_book_fills_are_possible.py, which fails if any recorded fill sits outside the bar of the session it claims.

Both corrections come from cortex/india_strategy/retrospectives/2026-09-25_ms_vs_ours_v3.py, which runs every arm through a single ₹60L pool. See MarketSmith's Exits Against Ours for the full study and for two superseded versions of it that got this wrong in the other direction.

Correction · 23 Sep, evening

A third of these trades have no recorded entry stop

An independent audit of this work found an assumption this page never stated, and it is a material one. 41 of the 134 closed trades carry no initial_stop_price at all — 39 of the 132 in the research sample. Checked directly against production: count(*) filter (where initial_stop_price is null) on trading_trade returns 41. Twenty-eight of those rows say explicitly that they were backfilled from broker fills, and the audit inspected five database backups from May to September without finding a single original entry stop.

Every number on this page treats those trades as having a 5% stop, because that is the convention the reconstruction adopted. That was never disclosed here, and the result is sensitive to it. The audit’s cash-constrained replay puts the range at:

how the 39 missing stops are handled modeled total
assume 5% — what this page did, silently₹16.87L
use six provisional pre-entry scan stops, assume the rest₹17.16L
reject every trade with a missing stop₹8.88L

The audit’s primary figure of ₹16.87L sits inside the ₹13–17L range this page already published, which is the one thing here that holds up unchanged. What does not hold up is the silence: a result that halves under a different treatment of a third of its inputs needs that treatment on the page, not in a script. The missing stops should stay recorded as unknown rather than filled in.

The audit also separates the effect of the new exits from the effect of sizing and selection, which this page does not: at equal sizing, limits and admission rules it puts the exit change at +₹46,430, far below the headline improvement. Most of the gain here is sizing and selection, not the exit rule itself.

Reconciliation

Why this says ₹6.5L when yesterday said ₹21.9L

Three numbers, three different questions

They are not the same measurement, and the first version of this page did not say so.

figurewhat it actually asks windowtradesnet
Book Aour own 132 fills, kept exactly as they were, re-sized to ₹40k/₹5L and re-exited on the close-based rule. No new entry gate applied. Reported as ₹21.9L yesterday under a harness not reproducible here. Mar–Sep54₹13.7L
₹13.0Lthe candidate population, best-of-best, without the breadth gateNov 2025–Aug57₹11.5L
— same, cut to this six-month windowMar–Aug 41₹9.6L
₹6.5Lsame, with the breadth gate — the rule as it actually shipsMar–Aug18₹6.5L

So the ladder is: −₹1.9L from measuring six months instead of ten, and −₹4.3L from the breadth gate, which removes roughly seven of every ten setups that clear the shortlist. The ₹21.9L is a different exercise altogether — it keeps every name we actually bought, including the ones the entry rules would refuse, and only changes the sizing and the exit.

The honest comparison

This is not a subset of our book — it is a different book

Eighteen against 132 invites the reading "the new rules rejected 114 of our trades". That is not what happened. Measured at entry, our own 132 fills fail the gates like this:

gatepassedfailed what it means for the old book
G1 ext from 10MA ≤ 2%7854 two in five entries were extended
G2 ext from 20MA ≤ 8%9834—
G3 30-day momentum ≥ 25%4191 the book mostly bought things that had not moved yet
G4 pivot stop ≤ 5% of fill13119 the scanner then used a different stop entirely (fixed-window low, fixed 21 Sep)
G7 RS ≥ 904488—
G6 EPS growth ≥ 25%4884—
G8 ADR 3–7%10923—
all four price gates2130 only 22 of our 99 names appear anywhere in the population
What that actually tells us

Seventy-two of the 132 came from paths the TIS gates never touched — manual picks, tradebook imports, the ETF sleeve, canslim, sideways, ORB. And of the 60 that did come from the scanner, the stop it used at the time sat a median 14.7% below the fill on the pivot definition, because the scanner was then using a fixed-window low — the bug fixed on 21 September.

So we have almost no live evidence about the rules we are now running. One of 132 fills matches a setup this population contains. The replay is not our book improved; it is a book we have never traded.

The tension worth naming

Nineteen trades in six months, against twelve slots

These two decisions do not fit together

The rules as shipped admit about three setups a month. Twelve slots at ₹5L each is a ₹60L book. At this admission rate the book peaks at six positions and spends most of the window under three — the capital is not the constraint and never becomes one.

Either the deployment target or the admission rate has to move. The two candidates are the momentum gate (G3 refuses 91 of our 132 and is the single largest filter) and the breadth gate (it removes 70% of an already-short shortlist). Neither should move without the same grid, permutation and split test the others were held to.

How to read this

What the replay can and cannot say

The caveats, restated

Survivorship. The population is built against today's universe — names dropped or delisted since March are absent, and they are disproportionately the ones that fell.

Fills are modelled. Entry at the next session's open where the trigger was met, with no slippage beyond that, and exits at the following open after a close below the stop.

One path. This is a single sequencing of one population. The earlier work (2026-09-23_entry_conditions_reconstructed.md) ran the grid, the permutation test and the within-period split that this page does not repeat.

The number to take from it is the comparison, not the level: far fewer positions, each sized to the same risk, with the left tail bounded by a cap the old book did not enforce.