The book is flat in cash today. This is what the record says about how it got here — and the one variable that accounts for almost all of the profit.
Every trade is plotted below: days held on the horizontal, rupees made or lost on the vertical. The distribution is not symmetric and not random. Losses cluster hard against the left edge — they resolve quickly and stay small. Every result large enough to matter sits to the right, and all of them are positive.
Cut fast, hold slow. Losers stopped inside a day averaged −₹4,440. Losers left 11–30 days averaged −₹10,884 — two and a half times worse. Meanwhile the entire profit of the book lives in positions nobody touched for a month or more.
Concentration is usually quoted against gross profit, where it sounds like the familiar 80/20. Against net — what the account actually kept — it is far sharper.
The other trades — % of everything done in six months — netted between them. Less than a single average winner, on a book of .
This is why several rules proposed elsewhere in this report were withdrawn after testing. A filter with a meaningful chance of excluding one of six trades is negative-value almost regardless of what it does to the other 127 — and what it does to the other 127 is worth . The EPS gate is the clearest case: it would have refused WELCORP, which is % of the net on its own.
It is also why win rate is close to meaningless here, and why "average P&L per trade" describes nothing real. The mean of a distribution this skewed is not a fact about any trade.
The 127 ordinary trades are not waste. They are the ticket pool, and they are nearly free — losses are controlled well enough that the whole mass of ordinary activity costs approximately nothing. The six winners emerge from it.
Which leaves exactly two jobs. Keep the tickets cheap — the stop cap's real justification, since a pool that stops being free starts eating the six. And never cut a winner early, which is the only unforgivable error, because there is no recovering a WELCORP. Every mechanism retired this year — the bulk liquidation, the target ladder — failed the second test.
A realised curve moves only when a trade closes, and this system closes losers in a median of 4 days and winners in 28. The May dip is partly an artefact of that: 24 positions were open at the 15 May low, eventually worth +₹3,08,800, and none of it appears here until those trades exit weeks later.
A true equity curve needs a daily mark-to-market of open positions. We store none, so this is the honest best available — and it reads more violently than the account did.
Read win rate and median hold down the table. Both climb almost monotonically — 28% to 57%, two days to thirty-six — and P&L follows them exactly. The improvement is not one good trade; it is a change in behaviour.
May lost ₹1,08,593. On 12 May the book closed seven positions and cancelled thirteen resting entry orders — twenty rows in the ledger, but seven actual exits, for −₹48,820 with two winners among them. The thirteen cancellations are not trades and are excluded from every statistic in this report; they are worth seeing here because pulling thirteen pending orders in a session is itself a decision, and it is what a de-risking day looks like.
The same shape repeated on 16 September, when a regime rule closed five positions in one 09:20 pass and issued a sell order for ₹39 lakh of the cash-parking fund before it was cancelled by hand. That one happened to be profitable. The mechanism was identical.
Top ten winners are 56% of gross profit; top twenty are 75%. A mechanism that closes everything at once is, by construction, aimed at the part of the book that makes the money. The rule responsible was deleted on 16 September — the regime now gates entries and never liquidates.
Fifty-eight of eighty-two losses respected the 5% cap. Twenty-four did not, and they are expensive.
There is not one meaningful winner outside the two parking instruments. That is what a momentum system looks like when it is pointed at broad-index ETFs, which by construction average away the leadership it is built to find.
The winners were re-entered after the stock made a new high. The failures were re-entered while it was still basing or falling — which is averaging down with extra steps. No rule currently enforces that distinction.
Twenty-four trades were stopped within a single day for −₹1,06,556. Individually small, collectively the third-largest bucket in the book. These are entries taken into a market that was not offering them — which is what the regime entry gate now prevents.
Rupees are the wrong unit for asking whether to borrow. Define 1R as the 5% stop — the amount a position is supposed to lose when it is wrong — and every trade in the book becomes comparable regardless of size, and the question becomes arithmetic.
Each trade taken is worth about 37% of what it risks. Over 133 filled trades that compounded to +48.7R. It also means the system can survive long losing runs: the worst observed was nine consecutive losses costing 5.6R, against a maximum drawdown of 20.3R.
Kelly on this distribution — solved numerically for the fraction maximising expected log growth — says risk 14% of capital per trade, half that at 7%. Both numbers are unusable and it matters why: Kelly assumes one bet at a time, settled before the next. You hold six to eight positions simultaneously in correlated smallcaps, so effective exposure is several times the per-trade figure, and 133 samples with a 74% outlier cannot support a fat-tail estimate. It is useful only as proof of direction — current risk of ₹20,000 on ₹60 lakh is 0.33% per trade, roughly one-twentieth of even the conservative estimate. There is room. The rest of this section is about how to use it without being destroyed by it.
VCP is three trades and CANSLIM is five. That is not a sample, it is an anecdote with a decimal point. A single bad trade takes VCP from +2.78R to roughly +1.3R.
What the comparison does support is the shape: the two setups with the strictest entry criteria and the longest holds (37 and 28 days median) outperform the loosest and shortest by a wide margin, and that is consistent with everything else in this report. The honest conclusion is not "trade VCP" — it is "route capital toward the strict setups and collect a real sample before betting size on them."
This is not a coincidence, it is arithmetic. Position size is derived as risk ÷ stop distance, so a tighter stop mechanically produces a larger position. The largest third of positions have a median loss of % when they lose; the smallest third, %. The big positions are the tight-stop positions, and tight stops sit inside the noise of a smallcap and get shaken out of trades that later work.
This is the UNIPARTS lesson the swing-low stop rule was written for, showing up as a portfolio statistic rather than one bad memory.
Leverage applied at entry would concentrate capital into exactly the cohort that performs worst. Raising risk to ₹80,000 makes every tight-stop position four times larger — four times more money in the trades with +R expectancy. The data does not support that, and it is the single strongest argument against naive 4× sizing.
92 trades have both a recorded initial stop and an exit price, which is what it takes to ask the question. Their stop distances ran from effectively zero to 11.1%, median 4.62%.
A stop is placed at the chart's invalidation point. If that point is far away, the entry is extended — you are buying well above the level that would prove you wrong. So stop distance is a proxy for setup quality, and a required stop wider than about 4.5% is evidence of a poor entry, not merely a reason to buy fewer shares.
At the other end, tight stops produce large positions (size is risk ÷ stop distance) that sit inside ordinary smallcap noise: 50% of sub-3% stops were hit, and only 14% of those trades ever ran to +10%.
Both ends are bad for different reasons, which is why the middle wins. The current rule treats 5% as a ceiling to size against. The data says treat roughly 3.0%–4.5% as a band to qualify on, and skip what falls outside it.
That band was chosen after seeing which one worked, on 92 trades. So the honest test is whether the result survives moving the boundaries. It half does:
Moving the boundaries answers "is this band stable?". It never answers "is there an effect at all?" — and five overlapping cuts of the same 92 points are near-identical samples, so they cannot confirm one another.
The right test is a permutation: shuffle the returns against the stop distances 20,000 times and ask how often chance produces a gap this large. It does so 18.6% of the time. That is before any penalty for the band having been chosen after seeing the answer. By the conventional bar this effect is not distinguishable from noise.
Concentration says the same thing. The band's ₹1,71,758 is 83% from three trades and 37% from one — ATHERENERG at ₹64,178. Remove that single position and the case largely evaporates.
So this is a hypothesis, not a rule, and it is demoted accordingly. The earlier draft of this report recommended skipping entries outside the band. On a p of 0.19 and three trades carrying the result, that recommendation was not earned and has been withdrawn.
What survives is weaker and still worth something. The median comparison is far more robust than the mean: +0.14% in-band against −2.44% outside, a statistic no single outlier can move. Both failure modes have a mechanism predicted independently — tight stops oversize into noise (the position-size finding, from a different cut of the data), and wide stops mark extended entries (what the extension gates already test for). Log the stop distance on every entry and re-test in six months — that is what this justifies, not a change to the rules today.
Only 27 of 92 trades carry a recorded exit reason, so being stopped out is inferred here: a trade counts if it finished at or below 80% of its initial stop distance. Against those 27 the rule agrees 20 times — but 7 of the 27 are labelled breakeven_stop or manual, which it agrees with trivially. Among the 20 rows actually labelled stop, it catches 13 — 65%, not 77%.
All seven disagreements run the same way — labelled stop but not counted as one — and RRKABEL shows why: it exited at +7.01% with reason stop, which is a trailing stop banking a profit. So this column measures "took roughly a full loss", not "a stop order fired". The comparison between bands is unaffected, since the same rule is applied to all of them, but the label would mislead if read literally.
Under four percent of trades produced over a third of the profit, and every one of them was held at least 42 days. None came from the ETF sleeve. The two best came from a manual entry and a TIS signal that was left alone.
The operational consequence is unglamorous: the job is not finding more trades, it is not interrupting these. Every mechanism that closes positions early — the bulk liquidation, a target ladder, a stop trailed too tight — is aimed at this cohort.
The obvious next question, and the one that would change what gets bought tomorrow: the 25 positions that produced 71% of the profit — what did they have in common at entry?
Only 4 of 159 rows can be matched to a scan record. The Candidate table holds 467 rows and covers recent scans only, so the gate measurements — extension from the 10MA, 30-day momentum, stop width, daily range — do not exist for the trades that made the money. That is the single most valuable missing dataset in this system.
And the regime table starts on 14 September. Six snapshots exist. What the Nifty and the smallcap index were doing on the day each winner was bought is not recorded anywhere, so the market-condition half of this question cannot be answered at all from our own data.
What survives is UniverseMember, which matched trades and carries RS rating, EPS growth and sector. Those values are current, not as-of-entry — a stock whose earnings accelerated after we bought it reads as a high-EPS entry. Treat everything below as a strong hypothesis to test forward, not a proven rule.
Requiring RS ≥ 88 and EPS growth ≥ 50% together splits the book cleanly: % win rate and average against % and . On trades against .
Note what the median comparison hides: RS was identical across cohorts — 89 for the 31-day winners and 89 for everything else. On its own RS did not separate them at all. EPS did: a median of 80% against 36%. The screen is already filtering hard for relative strength, so RS has no variance left to explain anything; earnings growth is the variable still carrying information.
Capital deployed was also near-identical — ₹1,98,899 against ₹1,99,163. The winners were not bigger bets. They were the same size, held five times longer.
That concentration is the sector-rotation gate (G5) working, or luck. With trades across three themes it is not possible to tell which, and the honest response is to record the sector quadrant at entry from now on so the next review can answer it.
Zerodha's MTF charges 0.04% per day on the funded amount — 14.6% a year — plus ₹15 pledge and ₹15 unpledge fees per stock per day, and ₹50 if they square you off. Leverage is VAR + 5×ELM for non-F&O stocks, so 4× is available on liquid names and less on the smallcaps this book actually trades. There is no maximum holding period, and only stocks on the approved list qualify.
An earlier version of this section said the book had "lived through" a drawdown of ₹2,03,159, dated to 18 May. Both the measure and the date were wrong — an independent audit caught the second: the trough was found by walking trade by trade, so it depended on the order of fills within a day, which the data does not record. 18 May was in fact a day the book closed ₹10,022 up. Aggregating to day-end puts the low on 15 May.
That figure is peak-to-trough on the realised P&L curve — booked trades only — which ran +₹72,812 on 23 April down to −₹1,26,439 on 15 May, a fall of ₹1,99,251. But this strategy books losers in a median of 4 days and winners in 28. The losses land inside the dip; the winners are still open and contribute nothing to the curve until they close.
At the 15 May low there were 24 open positions eventually worth +₹3,08,800 — KIRLOSENG +₹1,02,682, GVT&D +₹51,132, HONASA +₹37,387 among them, all entered before the trough. None of that existed on the realised curve on the day.
So a realised-P&L drawdown is structurally pessimistic for a cut-fast-hold-slow system: it is produced by the exact behaviour the rest of this report identifies as the edge. The true account drawdown was materially smaller, and is not computable from our data — it needs a daily mark-to-market of open positions, and we store none.
What is defensible: cumulative booked P&L was negative from early May to late June, bottoming at −₹1,26,439 on 15 May. Month ends ran +₹2,726 → −₹1,05,867 → −₹22,185 → +₹1,00,271 → +₹1,09,622 → +₹4,16,382.
The R figure is a different series, not a translation of that one. Weighting each trade by its own risk rather than by rupees gives a curve whose deepest point is −20.3R, reached on 12 May, three sessions earlier than the rupee low. Dividing one by the other invites a false precision: ₹1,99,251 ÷ a median 1R of ₹9,952 is 20.0R, which is close to 20.3R by coincidence of scale rather than by construction. Both are stated; neither is derived from the other.
The figures below are therefore an upper bound on a realised basis, useful for ranking risk levels against each other and not for predicting what an account statement would show.
Today's risk budget is ₹20,000 a trade. The book that produced this record was sized at a median of ₹9,952. The current setting is already double the sizing being analysed, before any margin is involved — so ₹80,000 is not 4× this history, it is 8×.
Read as a ranking rather than a forecast: quadrupling risk quadruples the fall, whatever the true starting figure is. And it assumes the strategy behaves as it did — while the position-size finding above says a leveraged version would behave worse, because the money would flow into the tight-stop cohort.
Since the drawdown number turned out to be softer than first stated, it is worth being explicit about what the case against entry leverage now rests on. Not drawdown. It rests on two findings that do not depend on it: the largest third of positions returned +R against +R for the smallest, because size comes from a tighter stop — so leverage at entry buys more of the worst cohort; and the best-performing strategies are three and five trades deep, which cannot carry size whatever the drawdown history says.
Leverage the add, never the entry. Enter every position at the current ₹20,000 risk. Once it is up 1R and the stop has moved to breakeven, add a second tranche on borrowed money with its own stop at the add price. The original capital is no longer at risk, and the borrowed tranche can only surrender its own gain.
This is the standard pyramiding construction — add only on strength, each add no larger than the last, stop raised with every add — and the governing rule is that the risk of any addition must be covered entirely by the unrealised profit already in the position. You get 4× exposure in the trades that are working, and 1× in the trades that are not.
The book was not sized consistently — deploys ran from under ₹1 lakh to ₹5.1 lakh with a median around ₹2 lakh. So the obvious question: what if every trade had been sized the same way, at ₹20,000 of risk with a ₹5 lakh cap?
Each trade is re-sized as min(risk ÷ stop distance, cap ÷ entry) and re-priced at its actual return. Then — and this is what makes it a simulation rather than a fantasy — trades are walked in date order against a ₹60 lakh capital limit, and one that does not fit on its entry day is skipped rather than silently funded.
An earlier version compared the simulated rows against the book's stored realised P&L of ₹2,25,863 while computing the simulations as (exit − entry) × quantity. 35 of the 92 rows differ between those two bases — partial exits, where quantity records the full position — so the comparison was measuring an accounting difference as well as a sizing one.
Like for like the book grosses ₹2,98,618. Which means the ₹2 lakh cap scenario returns ₹3,02,167 against ₹2,98,618 — +1%, not the +34% first reported. And it should be close to nil, because the median position actually traded was ₹1,99,783: the book was already being sized at roughly a ₹2 lakh cap. The scenario reproduces what was done rather than improving on it, which is a useful check that the simulation is wired correctly, and no argument for changing anything.
The ₹5 lakh cap is still a real uplift — ₹6,43,501 against ₹2,98,618 — but it buys that by deploying the entire account.
Peak deployed capital as actually traded was 88% — 35 positions open at once on 28 April, excluding the cash-parking fund. The rulebook's exposure ceiling is 33.3%.
An earlier draft said 75% and 29 positions. That was the figure for the 92 stop-bearing rows the simulation runs on, not for the book, and it understated the very thing it was raised to alarm about.
That reframes the ₹5 lakh cap. Unconstrained it appears to return ₹6.12 lakh, but it needs 177% of capital deployed simultaneously, which without margin is not a strategy but an overdraft. Held to the real 33.3% ceiling it takes only 33 of 91 trades and returns ₹3,98,419.
Combining the two findings above — take only entries whose stop falls in the 3.0–4.5% band, and size each at ₹20,000 risk with a ₹5 lakh cap:
Layering 4× margin on that selection projects ₹19,88,318, at a peak deployment of 265% of capital. Which is the honest shape of the answer to "4× on the best of the best": the selection does most of the work, and the leverage multiplies whatever the selection was going to do — in both directions.
Four limits on every number in this section. It covers 92 of the 133 filled trades — the ones with a recorded stop — so it describes a fraction of what was actually earned, and those 92 are dominated by scanner entries (52 TIS), so the conclusions are about that scanner more than about the book. The simulations run on 91, since GOLDBEES has no entry date. It assumes a position four times larger fills and exits at the same prices, which in a smallcap it will not. And the ordering is unstable: trades are sequenced by entry date with same-day ties broken arbitrarily, and re-randomising those ties moves the ₹6,43,501 figure across a range of roughly ₹5.6–7.3 lakh. Treat one decimal place of any of it as false precision.
Seven conditions, each traceable to a number in this report rather than to a preference. On six months of history this gate would have fired rarely — which is the intent. Leverage is not a setting to turn on; it is a response to a position that has already proved itself in a market that is already cooperating.
Risking ₹80,000 at entry is not supported: it quadruples the drawdown to 27%, concentrates capital into the worst-performing cohort, and bets size on strategies whose edge rests on three and five trades.
Risking ₹20,000 at entry and reaching ₹80,000 of exposure through two pyramid adds on a position already at breakeven is supported by every number here. The capital at risk never exceeds 1R. That is the version of 4× worth having.
And note where the counting starts. The record analysed here was traded at a median 1R of ₹9,952. Today's ₹20,000 is already double that. ₹80,000 at entry would be eight times the sizing that produced every number in this report — applied to a strategy whose best expectancy rests on three trades.
The owner named three stocks by eye — LAURUSLABS and WELCORP as rideable, CUPID as choppier — and asked what separates them. Touch frequency does not: CUPID touches its 20MA least of the three. Neither does the efficiency ratio. What orders them correctly is how much of their recent life closed above the 20MA: 94%, 97% and 88%.
It is a measure of whether a name can be held, not whether it will rise. A stock that whipsaws across its 20MA turns one correct thesis into four small losses, because the trail keeps ejecting. That is the same finding as holding period approached from the other side.
Win rate and holding period move with it too: % and days in the bottom third against % and days in the top. Above 80% it is trades, a % win rate and days held, averaging against for everything below.
The position-size finding in this report died on exactly this test — its effect was the calendar wearing a disguise. So the same split was run here first: within each entry month, does the less choppy half still do better?
It holds in of months. That is not unanimous, and the month that reverses it is not a rounding error. It is enough to rank on and not enough to refuse on — which is exactly how it has been wired: recorded on every candidate and every trade, used as the last tiebreak after evidence and relative strength, and absent from the gate set.
There is no single threshold that is obviously right, and the two obvious ones fail in opposite directions.
Cut at the bottom third — below % — and you refuse trades that netted . That is an improvement in aggregate, and it is also how you never take at %, which made , or at .
Cut at 80%, where the evidence looks strongest, and you refuse trades netting to keep . A gate that declines nine trades in ten needs to be far better established than one month of within-period agreement.
This is the same shape as the EPS gate examined above, which would have refused WELCORP. Four proposals died in a single week from fitting a threshold to a hundred trades; this one earns its place by ranking and accumulating instead. From 17 September every candidate and every trade records it, so in a few months there is a sample this report has not already seen.
Everything above is computed from our trade records. This section is the same period read from Zerodha's P&L statement for FY 2026-27 — a different source, built for tax rather than for analysis, and therefore a real check rather than a restatement.
It agrees on the shape. symbols, net on deployed, a % win rate, average win against average loss — a payoff of . Low win rate, high payoff, arrived at independently.
The statement aggregates per symbol, not per trade: a name traded three times appears once, netted. So this win rate is per-symbol and is not the same quantity as the per-trade figure above. The two are consistent, not identical.
Two readings, and they are not exclusive. The rules tightened over this period — the 5% cap, the swing-low stop, the regime pre-conditions — and the improvement tracks them. But September is also the month a full book was liquidated, and a month that exits everything books every accumulated gain at once. That is not six months of edge; it is six months of holding, realised in one window. It is the same artefact that made the realised curve above structurally pessimistic, running the other way.
Concentration is worse than our own records showed. Five names are — % of the net. The other netted between them.
The stop discipline is real. Median loss %, with only of losers beyond −6%. The cluster at −4% to −5% is the cap being obeyed, visible from outside our own system.
The raw cross-section says small positions win: thirty winners under ₹2.5 lakh returned ₹4,64,537, while the twelve over the ₹5 lakh cap returned ₹1,05,708 on ₹79.4 lakh — 1.3%. That comparison is confounded, and the confounder is the calendar. Sizing was ₹2.5 lakh at ₹10,000 risk for most of this period and moved to ₹5 lakh at ₹20,000 only recently. "Small" means April to July; "large" means August and September. Size and period are the same variable.
Split by size within each month, the effect flips: larger positions did better in June (+54,450 against +40,172) and July (+55,386 against +31,387). Only September favours the smaller half, and that is one month. Three of the twelve oversized positions are top-five winners — KIRLOSENG, LAURUSLABS, GVT&D.
So this dataset cannot confirm the expectancy-falls-with-size finding above. That finding was computed per trade in R multiples with stop distances, which a tax statement does not carry, and it remains the better instrument. What is retracted is the cross-sectional version of it, which is an artefact of when the sizing rule changed.
Four of 159 rows can be matched to a scan record, and the regime table begins on 14 September. The question "what did the winners look like when we bought them" is currently unanswerable from our own data, and every future review depends on fixing that. Persist the gate evidence, the regime snapshot and the RS/EPS reading against each fill.
The band takes P&L from ₹2,98,618 to ₹4,96,288 on a third of the trades, at lower peak exposure. Wide stops mark extended entries and took a full loss 46% of the time; tight stops oversize into noise and took a full loss 50% of the time. The middle band: 33%. Today's rule sizes against a 5% ceiling — this makes the stop a reason to skip.
The median position actually traded was ₹1,99,783, so the book is already being sized at about a ₹2 lakh cap; that scenario reproduces what was done rather than improving it. An earlier draft claimed +₹76,304 from consistent sizing — it was comparing two different accounting bases, and the real difference is about 1%. Raising the cap to ₹5 lakh does lift P&L materially, but only by deploying the whole account.
Peak deployed capital was 88%, with 35 positions open at once on 28 April, against a rulebook ceiling of 33.3%. Nothing in the service measures this, which is why it was found by a retrospective rather than by a gate.
An earlier draft recommended this at "2× expectancy", on a 59% win rate against 43%. Simulated as a gate — refusing trades, sequenced against available capital — it produces ₹1,237 against ₹3,93,338 ungated, because it refuses five of the top ten winners including WELCORP, whose EPS is −55%. Win rate was the wrong measure for a book whose profit is six trades. The existing 25% threshold stays.
Pyramid a borrowed tranche only once a position is +1R with its stop at breakeven. Upper-bound uplift ₹5.14 lakh net of interest. Risking ₹80,000 at entry instead quadruples the drawdown to 27% and concentrates capital in the worst-performing cohort.
Twenty-four losses ran past it. Separate from the qualifying band above and still needed: the band decides whether to take the trade, the cap is what stops a loss running once taken. Neither needs judgment — only that the rule holds.
trades, roughly a % win rate, no winners outside cash parking. That is not a sample that argues for continuing. Keep LIQUIDCASE and LIQUIDBEES — they are a cash account, not a strategy.
RPTECH, MARKSANS, POCL and SENORES were each re-entered while still weak, for a combined −₹84,851. KIRLOSENG, WELCORP and ATHERENERG were re-entered after new highs, for +₹2.65 lakh.
Twice in six months — 12 May and 16 September. The rule responsible was deleted on 16 September; the regime now gates entries and leaves open positions to their stops and the 20-DMA rule.
Twenty-five positions held beyond a month are 71% of all profit. Any mechanism that shortens holding periods is attacking the only part of the book that pays.
The gap this page named — "entry conditions are not recorded" — was closed from the
exchange's own bars rather than the database: every fill's gate readings and market state were
rebuilt from the NSE bhavcopy, the exit and entry rules replayed on them, the replay audited by an
independent agent, then re-run on setups the book never took. The full working is in
2026-09-23_entry_conditions_reconstructed.md alongside; this is the summary.
| test | on | what it found |
|---|---|---|
| Entry conditions rebuilt | 132 fills | The Nifty-20MA gate refused 3 of the 6 largest winners; breadth ≥ MA5 was right in both halves. 15 of 60 stopped losers never closed below their stop; 13 recovered within 20 sessions. |
| Exit grid, 144 cells · entry×exit grid, 23,040 cells | 132 fills, sequenced against capital | The live exit rule was the worst of 144. Stops judged on the close: +₹6.1L, p = 0.021, both halves, survives removing any top-6 trade. Breakeven at +5% was the worst setting. Eight slots beat six by ~20%. |
| Independent audit | every figure | All reproduced; six corrections, including a day-0 bias in the engine (gap shrank, sign held). |
| Out of sample | 229 universe / 347 broad-market setups, Nov 2025–Aug 2026 | Better on average (p 0.003 / 0.03), unchanged at the median, the whole gain in ~10 setups, 5× the losses beyond −8%, positive in 2 of 4 quarters. A tail bet, not a steady edge. |
| 8% stop (max of swing low, 1.2×ADR) | fills + population | Worse on fills; better on the population only by doubling the risk taken — identical per rupee risked. Not shipped. |
| Full ₹60L: 12 slots, ₹40k budget, liquidated 22 Sep | 132 fills | any ADR, stop ≤ 5%: ₹24.2L · ADR ≤ 5, stop ≤ 8%: ₹20.9L · any ADR, stop ≤ 8%: ₹17.7L · old rules: ₹6.0L. Roughly ₹11L of each is the 22 Sep liquidation of 4–5 open positions. |
equity-service v138/v139, equity-agent v29. Stops are judged on the close with the broker trigger resting at stop × 0.95 and a 09:16 IST pass that sells into the open after a close below the stop; breakeven moves at +8% (the 3R trigger is gone); the entry gate is universe breadth above its prior five-session mean, with the index legs recorded rather than refusing; twelve slots at a ₹40k budget under the unchanged ₹5L cap and 5% stop cap — so every position is ₹5L flat, risks ₹5L × stop% (at most ₹25k), and ₹60L deploys in full.
The close-based stop makes most trades slightly worse (the next open against the stop print) and a few much better; on every dataset the gain is five to ten names, and the worst single loss widens from about −8% to about −12%. The owner armed it knowing that. The account was flat and paused when this shipped; nothing here has traded yet.
Every figure is computed from the filled trades — the non-paper rows in trade_service with an exit timestamp on or after 16 March 2026, less never-filled orders — using recorded realised P&L. Percentages are against capital deployed at entry. Nothing is modelled or estimated except where a counterfactual is named as such.
One real gap. 113 of the 159 rows carry no exit_reason. For those the record shows what happened but not why the system did it. The 46 that are labelled break down as stop (23, −₹1,59,597), breakeven_stop (8, +₹3,46,297), manual (14, of which 13 are cancelled orders) and trailing_stop (1). Until every exit records its cause, retrospectives can measure outcomes but not attribute them.
Trades imported from broker history carry no entry timestamp, so they are excluded from holding-period charts but included in every P&L total. One loss, GOLDBEES at −₹9,001, is in this position: the holding-period buckets therefore cover 81 of the 82 losses.
What was audited, and what it caught. Two independent reviews recomputed every figure here from the raw exports and cross-checked them against the database. The database confirms 159 rows, ₹4,16,382.25 realised, split 51 wins / 82 losses / 26 cancelled. Four real errors were found and are fixed above: the 26 never-filled orders were being counted as trades and as winners, which inflated the win rate to 48% and understated the average win; the drawdown trough was taken per-trade rather than per-day, putting it on 18 May — a day the book closed ₹10,022 up — instead of 15 May; the entry-DNA table mixed a 19/81 cohort with a 25/134 one without saying so; and the median helper returned the upper-middle value rather than averaging on even-sized cohorts.
One anomaly is unresolved. LIQUIDCASE's stored P&L of +₹43,404 does not reconcile with its header prices, which imply −₹15,050 — a sign disagreement, not a rounding one. The stored value is settled from exit records and is treated as authoritative here, but it has not been explained.