Win rate 43% → 84% while the loss more than doubles, −₹1.98 Cr → −₹4.52 Cr.
“80% accuracy” is the most common pitch in Indian trading courses and Telegram groups. A high win rate is easy to build: take profits quickly. Whether it makes money is a separate question, and the two are easy to confuse.
To separate them we held everything fixed except the profit target. The entry is a plain opening range breakout: the first 5-minute close above (or below) the first 15 minutes’ range, one trade per stock per day, a 1% stop, ₹5 lakh per trade, every NIFTY 50 stock from January 2016 to August 2026. That gives the same 120,643 trades every time. Only the target changes: 0.1%, 0.25%, 0.5%, 1%, 2%, or none (hold to 15:15).
Same entries, same stop. The more winners, the bigger the loss.
Why more winners lose more money
A 0.1% target on a ₹5 lakh trade is ₹500. The 1% stop is ₹5,000. Every winner is small and every loser is ten times bigger. To break even you need about 91% winners before costs, and with ~6.5 bps (about ₹325) of costs per trade, the ₹500 winner shrinks to roughly ₹175. Tiny targets also make the trade very short (the median trade lasts about 5 minutes), so you pay the full round-trip cost again and again for a move that is mostly noise.
As the target widens, fewer trades hit it, but each winner pays for more losers. Once the target is gone, trades are held to 15:15 and keep the full move when the breakout follows through. That version has the lowest win rate and the smallest loss. It still loses: this entry has very little edge to begin with (about 3 bps before costs at best), which the ORB guide test also found.
| Variant | Trades | Gross / trade | Win % | Net after costs | +3 bps slippage | 2016-20 | 2021-23 | 2024-26 |
|---|---|---|---|---|---|---|---|---|
| Target 0.1% | 1,20,643 | −1.0 bps | 83.9% | −₹4.52 Cr | −₹8.13 Cr | −₹2.26 Cr | −₹1.26 Cr | −₹1.00 Cr |
| Target 0.25% | 1,20,643 | −0.5 bps | 74.0% | −₹4.19 Cr | −₹7.80 Cr | −₹2.05 Cr | −₹1.18 Cr | −₹96.1 L |
| Target 0.5% | 1,20,643 | 0.2 bps | 60.5% | −₹3.78 Cr | −₹7.40 Cr | −₹1.79 Cr | −₹1.09 Cr | −₹90.2 L |
| Target 1.0% | 1,20,643 | 1.0 bps | 48.1% | −₹3.33 Cr | −₹6.95 Cr | −₹1.51 Cr | −₹93.8 L | −₹88.3 L |
| Target 2.0% | 1,20,643 | 2.4 bps | 43.6% | −₹2.49 Cr | −₹6.10 Cr | −₹93.9 L | −₹78.0 L | −₹76.6 L |
| No target (hold to 15:15) | 1,20,640 | 3.2 bps | 42.9% | −₹1.98 Cr | −₹5.59 Cr | −₹51.7 L | −₹69.8 L | −₹76.2 L |
₹5 lakh per trade, 5-minute bars, v2026.08 snapshot (Jan 2016 – Aug 2026), NIFTY 50 point-in-time members, discount-broker (₹20/order) and statutory charges + 1 bp slippage per fill. Generated 2026-10-07.
What to take from this
- Win rate alone tells you nothing about profit. Always ask for the average win, the average loss and the cost per trade. Profit factor (gross wins ÷ gross losses) is a better single number: below 1.0 is a loser, whatever the win rate.
- Small targets make costs dominate. At ₹5 lakh a round trip costs about ₹325. A ₹500 target spends most of its profit on charges.
- A seller quoting accuracy without these numbers is giving you the number that’s easiest to inflate.
The exact code we ranorb_fixed_target() in dpx_bt · 6 variants · snapshot v2026.08
def orb_fixed_target(target=None, stop=0.01, or_min=15):
"""First 5-minute close beyond the 15-minute opening range, stop 1%, fixed % target (None = hold to 15:15)."""
def strategy(p):
orh, orl = p.opening_range(or_min)
long, short = p.close > orh, p.close < orl
first = p.once_per_day(long | short)
return bt.Signals(long=long & first, short=short & first, stop=stop, target=target)
return strategyEvery variant in this post is this function with different arguments, run through dpx_bt over Jan 2016 – Aug 2026.
Have a variation in mind?
Ask runs your own idea on the same data and rules, with the same report: net after costs, +3 bps stress test, three periods.
Backtest on historical data (Jan 2016 – Aug 2026), net of discount-broker (₹20 per order) and statutory charges and 1 bp slippage per fill. Education and research only, not investment advice. Past results do not predict future returns. Disclaimer.