A modelled result after costs — positive across all three indices in both periods.
The rules the tool runs today were replayed across three years of
15-minute candles and every trade was priced as the option you would have
bought, with Zerodha’s charges and slippage taken off. Across all three
indices they came out positive after costs in the first two years and
positive again in the held-out final year: Nifty, Bank Nifty and Sensex
all made money in both periods — Bank Nifty only since a stop that
tightens to breakeven on a stalled trade was added 29 Sep 2026; before that
it had been losing money in the held-out year since its weekly expiry
ended. Read the next section before reading anything into that.
6,012
trades on the current rules over three years
PF 1.29
profit factor in the held-out year, after costs: positive
₹1.30 lakh
worst drawdown per lot in that year
modelled
option prices, not real fills - unproven
Why it is not proven
- The option prices are modelled. Each trade is priced with
Black-Scholes from India VIX, not from recorded option quotes, and
volatility is held constant through the trade. Real fills, a widening spread
and implied volatility falling after you buy all make real results worse.
- Expiry days still do disproportionately well. Across the three
indices, trades on a contract’s own expiry day made ₹1,89,695
per lot in the held-out year (360 trades, profit factor 1.77); every
other day together made ₹2,62,601 (2,025 trades, 1.20) — both
positive since the breakeven-on-a-stall exit was added 29 Sep 2026, but
expiry day still earns roughly four times as much per trade. Expiry
day is exactly where a constant-volatility model is least
trustworthy.
- The held-out year is no longer clean. Several of today’s
rules were chosen after the held-out year had been looked at — the
reward-to-risk floor on 11 Sep 2026, and on 15 Sep 2026 dropping the
opening-range break, trading Bank Nifty again and skipping entries into an
RSI divergence, on 16 Sep giving a trend day more room to run and
dropping the opening-range wait, on 17 Sep a faster trend measure, on
27 Sep an early exit on a sustained reversal, and on 29 Sep a stop that
tightens to breakeven on a stalled trade. A test you have used to
choose rules is no longer an independent test of them.
- The drawdowns are large. The worst run in the held-out year was
₹1,29,881 per lot, with the three indices’ trades taken in the
order they happened. An account sized so that a drawdown like that is
survivable is the only kind this should be run with.
- There is no long live record. The trades this server has logged
are a sample of weeks, not years.
- One input was measured inside the held-out year. The VWAP vote
weights each quarter-hour by how much the index futures usually trade then,
measured from July to September 2026. With equal weights instead — no
measurement at all — the held-out year made ₹14,044 less and the
first two years ₹22,387 less, measured before the trend-day rule. Every other input the backtest decides
with was checked, candle by candle, to be known at the moment of entry.
The two measurements
The current rules, priced as options
Per lot, after Zerodha’s charges and 0.25% slippage a side, on the
contract the tool would have suggested with the exchange’s real expiry
dates. All three indices are traded: Nifty, Bank Nifty and Sensex.
| Trades | Total per lot | Per trade | Profit factor | Worst drawdown |
| First two years (to 15 Aug 2025) | 3,627 | +₹12,30,015 | +₹339 | 1.48 | ₹83,630 |
| Held-out year (15 Aug 2025 to 11 Sep 2026) | 2,385 | +₹4,52,296 | +₹190 | 1.29 | ₹1,29,881 |
A profit factor of 1.29 means about ₹1.29 won for every ₹1 lost.
A modest increase in real costs over the modelled ones would still take a real
bite out of it.
By index
| First two years | PF | Held-out year | PF |
| Nifty | +₹4,24,337 | 1.58 | +₹1,43,094 | 1.28 |
| Bank Nifty | +₹3,76,614 | 1.37 | +₹1,25,323 | 1.21 |
| Sensex | +₹4,29,064 | 1.53 | +₹1,83,879 | 1.38 |
Bank Nifty lost money under these rules, in the held-out year, every time
this was measured before 29 Sep 2026 — since its weekly expiry ended
in November 2024, every earlier version of the rules lost money on it in
that year. It is traded because that was chosen on 15 Sep 2026, before the
test supported it; the breakeven-on-a-stall exit is the first change that
makes the test agree.
The raw signal, in index points
Every signal the engine produced on all three indices, before the
reward floor, measured in index points
against the stop and before any cost.
| Signals | Reached T1 | Reached T2 | Reached T3 | Stopped out | Average |
| Nifty | 2,185 | 34% | 17% | 10% | 31% | +0.078R |
| Bank Nifty | 2,191 | 33% | 17% | 10% | 30% | +0.020R |
| Sensex | 2,194 | 31% | 17% | 10% | 32% | +0.056R |
About +0.05R a trade before costs across the three: the signal on its own
is close to nothing. What the options test measures is that signal with its
filters, its exit at T2 and the leverage of an option on the moves that do
come — which is why the two can differ, and why the options result
depends so heavily on its pricing assumptions.
What was tested and dropped
- Buy today, sell tomorrow. Buying an option into the close and
selling it at the next morning’s open lost money on all three indices
in both periods — about ₹700 to ₹900 a trade per lot in the
last year, mostly time decay and charges. Of 30 setup, side and index
combinations, three passed both periods, about what chance produces across
30 tries. It is not offered; an open ticket in the last hour instead shows
what holding it overnight would cost.
- Other ideas, each pre-declared and tested the same way: skipping
expiry day, skipping days when VIX is above 20, skipping big opening gaps,
rolling to the next expiry on expiry day, a two-hour time stop, taking half
at T1, and moving the stop to breakeven after T1. None improved both periods,
so none is used.
- Two more indicators, at their standard settings: not buying once
price has closed beyond its Bollinger Band (20, 2), and not buying when the
Stochastic (14, 3) is already above 80 for a call or below 20 for a put.
The Bollinger filter made more in the held-out year and cut the drawdown,
but made ₹64,909 less in the first two years; the Stochastic filter
made far less in both. Neither beat the current rules in both periods, so
neither is used — and neither was re-tuned to make it pass.
- Three ideas from trading-skill checklists, 15 Sep 2026: a stop that
trails 1x ATR behind the best price once T1 is reached made less in both
periods; requiring the 1-hour trend to agree made more in the first two years
and less in the held-out one. Neither is used. Skipping an entry that runs
into an RSI divergence — a new closing high or low that RSI does not
confirm — made more in both periods, and is now a rule.
- One ticket per direction across the indices. Nifty, Bank Nifty and
Sensex move together, so a second ticket the same way is close to the same bet
twice. Holding back a new ticket while another index had one open in the same
direction made less in both periods, so it is not used.
- More room to run on a trend day. The room a trade needs is what is
left of a normal day's range; on 15 Sep 2026 every index had used all of it by
10:30 and went on to travel two and a half to three times it, while the tool
held its signals for "low reward". Once a day has used its normal range and
price is still near that day's extreme, the room that way is now one more
normal day's range. It made more in both periods and on every index, and is
now a rule.
- Two controls meant to cut the drawdown. A circuit breaker that paper-traded
once the strategy was ₹1,00,000 below its high, until it had recovered to
within ₹50,000, cut the held-out year’s worst drawdown from
₹4,80,832 to ₹1,80,995 — measured against the rules as they stood
that morning, which still waited out the opening range — but in the first two years it sat out
recoveries and made both profit and drawdown worse. Halving size when India VIX
was in the top quarter of its year made profit per unit of drawdown worse in both
periods. Neither is used.
- Trading from 09:15, and a lower reward floor. Two changes meant to
produce more trades. Dropping the wait for the 09:15–09:45 opening range
made ₹55,233 less in the first two years and ₹63,905 more in the
held-out year, with a drawdown ₹54,804 shallower — mixed, and worth
only 138 extra trades out of 6,158, because the gap between entries and the
daily cap refill the day anyway. It is in use from 16 Sep 2026, chosen
knowing it fails the “better in both periods” test. Asking a target of
only 0.7× the stop instead of 1× did add trades — 404 of them
— and made ₹75,136 more in the first two years, but turned the
held-out year down to ₹61,958 with the deepest drawdown of the four
versions tested, ₹5,31,939. It is not used.
- A faster trend measure. ADX averages its trend reading over 14
fifteen-minute candles, so on 17 Sep 2026 it sat at 12–15 while Nifty
rallied from the open. Keeping the buying and selling pressure over 14
candles but averaging the trend reading over 3 made ₹1,17,292 more in the
first two years and ₹42,603 more in the held-out year, on fewer trades,
with a shallower worst drawdown in both (₹4,26,028 to ₹3,00,843 in the
held-out year). Most of that is Bank Nifty losing less; on Nifty and Sensex
alone it made slightly less, with a shallower drawdown. In use from 17 Sep
2026, on the Indian indices only — Bitcoin was not tested with it.
ADX over 7 candles also beat the old measure, but on many more trades and a
deeper drawdown in the first two years; it is not used.
- An early exit on a sustained reversal. While a ticket is open,
the opposite direction has to hold for the same confirmation a fresh entry
itself needs before the ticket closes early, instead of riding out to its
target or stop. Replayed on the rules’ own real entry gates rather
than an older, stale copy of them: 328 of 6,012 trades exited earlier than
holding to target or stop would have, for ₹9,266 more in the first
two years and ₹27,755 more in the held-out year, with the held-out
drawdown ₹14,666 shallower. In use from 27 Sep 2026.
- Waiting before moving the stop up to T1. The stop already moves
to T1 the instant price first reaches it (see how-it-works). Delaying that
by 15 minutes to 3 hours, so a pullback right after T1 gets some room, was
tested against the instant version and against never moving the stop at
all: every delay tried did worse than both. The instant version wins
because it locks in T1 before a genuine reversal has any distance to
travel back toward the original, farther stop; a delay only gives that
reversal room to do so. Tested and measured 28 Sep 2026, not used —
the stop keeps moving to T1 instantly.
- Which target the ticket exits at. Tickets exit at T2 today. Priced
the same way, on the same entries, T3 came out ahead of T2 on every
measure in both periods — more total, a better profit factor, and a
shallower drawdown — while T1 alone was underwater in the held-out
year. Measured 28 Sep 2026; the exit target has not been changed while
this is looked at further.
- A candlestick pattern filter. Requiring the entry bar to also show
a Hammer, Shooting Star or Engulfing pattern — the standard shapes,
not swept or re-tuned — kept only 1,614 of 6,024 entries that already
clear today’s real gates (27%), and the ones it kept did worse, not
better: profit factor 1.17 to 1.03 in the first two years, and a net loss
in the held-out year (−₹41,122 against the rules’ own
+₹2,24,975). Not used.
- Gann Square of Nine levels, and a volume-weighted momentum read.
Re-measured against today’s real entry gates after an earlier run of
this test had used an older, superseded approximation of them. Skipping an
entry with a Gann level closer than the stop kept only 8% of entries and
lost money outright, in both periods; only taking one with a level just
behind the entry kept 63% and cut the held-out year’s worst drawdown
by a third, but still made less than the rules alone in both periods.
Neither is used. The volume read still cannot be measured on the Indian
indices — there is no futures volume history to read it from.
- A veto for a “stalled” trend. The market-trend panel
already says when ADX reads a trend but price has not actually moved
— “STALLED — GOING NOWHERE.” The entry rules never
read that: their own trend gate is a bare ADX threshold. Carrying the
same displacement check over as an entry veto was tested at the trend
panel’s own threshold and swept across a wide range either side of
it: every threshold tried, from half an ATR to twice one, lost money in
the held-out year — most gained in the first two, the tightest
setting lost in both. Priced the trades it would have removed on their
own: in the first two years they were genuine losers (37.9% win rate
against 43.7% for the rest), but in the held-out year they were
statistically ordinary trades (44.1% against 44.3%) — the same rule
meant something real in one period and nothing in the other. Not
used.
- A stop that tightens to breakeven if a trade goes nowhere. The
stop already moves to breakeven once T1 is reached (see how-it-works);
this is the untested other half — if T1 is not reached
within two hours of entry, the stop tightens to breakeven and never
loosens again, without closing the trade the way a fixed time stop
(tested and dropped earlier) does. Priced on the same entries as the
rules already run, only the exit differs: it roughly doubled profit and
roughly halved the worst drawdown, in both periods. Swept from 30
minutes to 10 hours to check it was not a fluke of one setting —
every value tried beat the rules in both periods too, a smooth curve
rather than a spike at one lucky number. Also measured on Bitcoin, with
the same kind of gain and a drawdown cut of roughly three-quarters in
both periods, using the technical signal as a stand-in for the AI
desk’s own entries — which would need real, paid model calls
against three years of history to replay exactly. In use from 29 Sep
2026, on the Indian indices and Bitcoin alike.
What the test could not do
- Fill you at the price on the screen. Index options move in ticks
and spreads, and the spread is where a marginal edge goes to die.
- Know your slippage. Lot size, time of day and how far out of the
money the strike sits all change it, and none of them are constant.
- Model your own behaviour. A backtest takes every signal. Nobody
does. Whether that helps or hurts is not something the test can say.
- Predict a regime it never saw. Three years is three years of
particular markets, not of all markets.
Why publish it
Because a rule set you can inspect and measure is worth more than a tip
you cannot. Everything on the how-it-works page
is checkable line by line, the code is in one place with the reasoning
written beside it, and this page exists so that the measurement — and
everything that weakens it — is as easy to find as the screenshots.
The useful version of this tool is as a second opinion you can
interrogate: a fast, consistent read of what the indicators say, and an
explicit statement when a setup does not clear its own bar. Whether it makes
money is not settled by a backtest on modelled prices, and it is not claimed
here.
Treat everything here as something to examine, never as something
to act on. Options can lose their entire value.
How the live record is kept
Every ticket this server issues is written to a trade file when it closes,
whichever way it went, with the targets and stop that were frozen at entry.
The live figures shown with the measurement are computed from that file
— there is no separate curated list, and nothing is excluded for having
been a bad day.
A live record of a few dozen trades is a sample. It is shown because
hiding it would be worse, not because it settles anything.