Breakout Trading Strategy: We Backtested 4 Breakout Rules on NSE After Charges

Updated 2026-10-0910 min readData 2025-10-07 to 2026-10-07हिंदी सार ↓

The short answer

Does a breakout trading strategy work on NSE? We tested four breakout rules on 15 NIFTY 50 stocks for a year, after every charge, each with and without a volume filter. 0 of 12 runs ended above zero. The best result was Bollinger Band breakout (daily) with the volume filter: -3.8%. Between 16% (Opening range breakout (15-minute)) and 59% (Bollinger Band breakout (daily)) of trades were false breakouts, meaning they hit their stop without first moving one stop-distance in their favour. The one swing rule that did better over a longer history, the daily 20-day high from 2017-07-03, ended +12.5% in total over about nine years; see below.

Rules tested
4
20-day high, previous-day high/low, opening range, Bollinger
Runs ended above zero
0 of 12
after all charges
False breakouts
16% to 59%
of trades, by rule
Trades in all runs
10,425
15 stocks, one year
Result after all charges, by breakout ruleOne year, 15 NIFTY 50 stocks, no volume filter. Bars to the left of zero lost money.Bollinger Band breakout (daily)-17.7%20-day high breakout (daily)-23.3%Opening range breakout (15-minute)-25.4%Previous-day high/low breakout (15-minute)-27.9%20-candle high breakout (15-minute)-30.7%Bollinger Band breakout (15-minute)-30.8%
One year, 15 NIFTY 50 stocks, no volume filter. Bars to the left of zero lost money.
View data
ItemValue
Bollinger Band breakout (daily)-17.7%
20-day high breakout (daily)-23.3%
Opening range breakout (15-minute)-25.4%
Previous-day high/low breakout (15-minute)-27.9%
20-candle high breakout (15-minute)-30.7%
Bollinger Band breakout (15-minute)-30.8%
Run a breakout rule on any NSE stock, with chargesRun this backtest yourself on LeadFinnHow backtesting works

What is a breakout trading strategy?

A breakout is a move of price beyond a level the market has respected: the highest high of the last 20 days, yesterday's high or low, the opening range, or a Bollinger Band. The idea is that price tends to keep going once it clears the level. Whether that is true after charges is the question here.

  • 20-day high breakout (daily): Buy when the daily close is above the highest high of the previous 20 sessions. Exit when the close falls below the 10-day low, or at a stop 2 x ATR(14) below the entry. Delivery, long only.
  • 20-candle high breakout (15-minute): The same logic on 15-minute candles: close above the highest high of the previous 20 candles, exit below the 10-candle low or at a 2 x ATR(14) stop, intraday square-off; long only.
  • Previous-day high/low breakout (15-minute): Buy when a 15-minute candle closes above yesterday's high; sell short when it closes below yesterday's low. Stop 1%, target 2%.
  • Opening range breakout (15-minute): The range is the first 15 minutes (09:15 to 09:30). Buy when a 15-minute candle closes above the range high; sell short below the range low. Stop 1%, target 2%.
  • Bollinger Band breakout (15-minute): Buy when a candle closes above the upper Bollinger Band (20, 2); sell short when it closes below the lower band. Stop 1%, target 2%.
  • Bollinger Band breakout (daily): Daily candles, long only, delivery: buy when the close is above the upper band (20, 2). Stop 3%, target 6%.

The first four use stops and targets set at the start; position size, charges and slippage are the house settings used across LeadFinn's published tests (₹1,00,000 account, 20% per trade, up to 5 open trades).

Run a breakout rule on any NSE stock, with chargesRun this backtest yourself on LeadFinnHow backtesting works

Does the 20-day high breakout work, swing or intraday?

Daily swing version, last year: 58 trades, -₹23,269 (-23.3%) after delivery charges. The same rule on 15-minute candles with intraday square-off: 1,536 trades, -₹30,687 (-30.7%).

A single year is a short test for a swing rule, so we also ran the daily rule on all the daily history we hold (2017-07-03 to 2026-10-07). Without the volume filter: 405 trades, 32.4% won, +₹12,473 (+12.5%) after charges. With the volume filter: 272 trades, +₹27,538 (+27.5%). Buy and hold of the same stocks over that period returned 198.01% on average per stock, for comparison.

Year by year (trades closed in each year, after charges):

YearTradesResult
201718-₹11,323
201836+₹21,712
201946-₹15,261
202043+₹8,551
202139+₹28,617
202249-₹14,701
202334+₹11,628
202439+₹26,247
202547-₹4,572
202654-₹38,426
20-day high breakout, result by yearNet result after delivery charges for trades closed in each year.2017-₹11,3232018+₹21,7122019-₹15,2612020+₹8,5512021+₹28,6172022-₹14,7012023+₹11,6282024+₹26,2472025-₹4,5722026-₹38,426
Net result after delivery charges for trades closed in each year.
View data
ItemValue
2017-₹11,323
2018+₹21,712
2019-₹15,261
2020+₹8,551
2021+₹28,617
2022-₹14,701
2023+₹11,628
2024+₹26,247
2025-₹4,572
2026-₹38,426

Read the long run with care: it is a rule tested on the stocks that are in the index today, and the rupee figure is for one ₹1,00,000 account.

Does a previous-day high/low breakout work?

Previous-day high/low breakout (15-minute): 1,623 trades, 42.0% won, price moves +₹5,261, charges -₹27,947, result after all costs -₹27,947 (-27.9%).

Previous-day high/low breakout (15-minute): from price moves to resultPrice moves, minus slippage, minus charges, leave the result after all costs.Price moves₹5,261Slippage-₹5,260Charges-₹27,947Net-₹27,947
Price moves, minus slippage, minus charges, leave the result after all costs.
View data
Step₹
Price moves₹5,261
Slippage-₹5,260
Charges-₹27,947
Net-₹27,947
How the trades ended: Previous-day high/low breakout (15-minute)Share of trades by the way they ended.Square-off time: 1,167 (72%)Stop hit: 370 (23%)Target hit: 85 (5%)Opposite signal: 1 (0%)
Share of trades by the way they ended.
View data
PartCount
Square-off time1,167
Stop hit370
Target hit85
Opposite signal1

With the volume filter (breakout candle volume at least 2 times its 20-candle average): 785 trades, 38.5% won, result -₹12,684 (-12.7%).

Does an opening range breakout work?

Opening range breakout (15-minute): 1,671 trades, 43.8% won, price moves +₹9,491, charges -₹29,334, result after all costs -₹25,363 (-25.4%).

Opening range breakout (15-minute): from price moves to resultPrice moves, minus slippage, minus charges, leave the result after all costs.Price moves₹9,491Slippage-₹5,520Charges-₹29,334Net-₹25,363
Price moves, minus slippage, minus charges, leave the result after all costs.
View data
Step₹
Price moves₹9,491
Slippage-₹5,520
Charges-₹29,334
Net-₹25,363
How the trades ended: Opening range breakout (15-minute)Share of trades by the way they ended.Square-off time: 1,210 (72%)Stop hit: 272 (16%)Opposite signal: 121 (7%)Target hit: 68 (4%)
Share of trades by the way they ended.
View data
PartCount
Square-off time1,210
Stop hit272
Opposite signal121
Target hit68

With the volume filter (breakout candle volume at least 2 times its 20-candle average): 629 trades, 32.4% won, result -₹14,040 (-14.0%).

Does a Bollinger Band breakout work?

Bollinger Band breakout (15-minute): 1,831 trades, 40.4% won, price moves +₹5,518, charges -₹30,565, result after all costs -₹30,800 (-30.8%).

Bollinger Band breakout (15-minute): from price moves to resultPrice moves, minus slippage, minus charges, leave the result after all costs.Price moves₹5,518Slippage-₹5,752Charges-₹30,565Net-₹30,800
Price moves, minus slippage, minus charges, leave the result after all costs.
View data
Step₹
Price moves₹5,518
Slippage-₹5,752
Charges-₹30,565
Net-₹30,800
How the trades ended: Bollinger Band breakout (15-minute)Share of trades by the way they ended.Square-off time: 1,208 (66%)Stop hit: 364 (20%)Opposite signal: 165 (9%)Target hit: 94 (5%)
Share of trades by the way they ended.
View data
PartCount
Square-off time1,208
Stop hit364
Opposite signal165
Target hit94

With the volume filter (breakout candle volume at least 2 times its 20-candle average): 1,263 trades, 36.5% won, result -₹26,939 (-26.9%).

Does volume confirm a breakout?

A common rule of thumb is to trust a breakout only when volume jumps. We added one condition to every rule: the breakout candle's volume must be at least 2 times the average of the last 20 candles.

No filter

Breakout ruleCandlesTradesWon %Price movesSlippageChargesAfter all costsReturn
20-day high breakout (daily)1d5817.2%-₹20,000-₹198-₹3,070-₹23,269-23.3%
20-candle high breakout (15-minute)15m1,53634.8%+₹541-₹4,946-₹26,283-₹30,687-30.7%
Previous-day high/low breakout (15-minute)15m1,62342.0%+₹5,261-₹5,260-₹27,947-₹27,947-27.9%
Opening range breakout (15-minute)15m1,67143.8%+₹9,491-₹5,520-₹29,334-₹25,363-25.4%
Bollinger Band breakout (15-minute)15m1,83140.4%+₹5,518-₹5,752-₹30,565-₹30,800-30.8%
Bollinger Band breakout (daily)1d6921.7%-₹13,631-₹247-₹3,796-₹17,674-17.7%

Volume at least 2x

Breakout ruleCandlesTradesWon %Price movesSlippageChargesAfter all costsReturn
20-day high breakout (daily)1d2119.1%-₹9,338-₹77-₹1,167-₹10,582-10.6%
20-candle high breakout (15-minute)15m92632.8%-₹1,051-₹3,157-₹16,773-₹20,981-21.0%
Previous-day high/low breakout (15-minute)15m78538.5%+₹4,987-₹2,799-₹14,873-₹12,684-12.7%
Opening range breakout (15-minute)15m62932.4%-₹178-₹2,196-₹11,666-₹14,040-14.0%
Bollinger Band breakout (15-minute)15m1,26336.5%-₹891-₹4,126-₹21,921-₹26,939-26.9%
Bollinger Band breakout (daily)1d1323.1%-₹3,023-₹48-₹736-₹3,807-3.8%

The filter gave a better result after charges in 6 of 6 rules. Most of that comes from fewer trades and so fewer charges: the price moves before costs were higher with the filter in only 2 of 6 rules. The daily rules took only 13 to 21 trades with the filter, so treat those two results as anecdotes, not evidence.

Result after charges with and without the volume filterYearly result after all charges for each rule with and without the volume filter.20-day high breakout (daily) (no filter)-23.3%20-day high breakout (daily) (volume 2x)-10.6%20-candle high breakout (15-minute) (no filter)-30.7%20-candle high breakout (15-minute) (volume 2x)-21.0%Previous-day high/low breakout (15-minute) (no filter)-27.9%Previous-day high/low breakout (15-minute) (volume 2x)-12.7%Opening range breakout (15-minute) (no filter)-25.4%Opening range breakout (15-minute) (volume 2x)-14.0%Bollinger Band breakout (15-minute) (no filter)-30.8%Bollinger Band breakout (15-minute) (volume 2x)-26.9%Bollinger Band breakout (daily) (no filter)-17.7%Bollinger Band breakout (daily) (volume 2x)-3.8%
Yearly result after all charges for each rule with and without the volume filter.
View data
ItemValue
20-day high breakout (daily) (no filter)-23.3%
20-day high breakout (daily) (volume 2x)-10.6%
20-candle high breakout (15-minute) (no filter)-30.7%
20-candle high breakout (15-minute) (volume 2x)-21.0%
Previous-day high/low breakout (15-minute) (no filter)-27.9%
Previous-day high/low breakout (15-minute) (volume 2x)-12.7%
Opening range breakout (15-minute) (no filter)-25.4%
Opening range breakout (15-minute) (volume 2x)-14.0%
Bollinger Band breakout (15-minute) (no filter)-30.8%
Bollinger Band breakout (15-minute) (volume 2x)-26.9%
Bollinger Band breakout (daily) (no filter)-17.7%
Bollinger Band breakout (daily) (volume 2x)-3.8%

What percentage of breakouts fail?

There is no single agreed way to count a failed breakout. Here a false breakout is a trade that hit its stop without first moving one stop-distance (1R) in its favour. It does not count trades that reached 1R and then reversed. Other definitions, such as price closing back inside the level within 3 candles, were not measured.

False breakouts, by ruleShare of trades that hit their stop before moving 1R in their favour.20-day high breakout (daily)41.4%20-candle high breakout (15-minute)24.2%Previous-day high/low breakout (15-minute)21.6%Opening range breakout (15-minute)15.9%Bollinger Band breakout (15-minute)18.8%Bollinger Band breakout (daily)58.8%
Share of trades that hit their stop before moving 1R in their favour.
View data
ItemValue
20-day high breakout (daily)41.4%
20-candle high breakout (15-minute)24.2%
Previous-day high/low breakout (15-minute)21.6%
Opening range breakout (15-minute)15.9%
Bollinger Band breakout (15-minute)18.8%
Bollinger Band breakout (daily)58.8%
False breakouts with the volume filterThe same measure with the volume filter on.20-day high breakout (daily)47.6%20-candle high breakout (15-minute)22.7%Previous-day high/low breakout (15-minute)21.0%Opening range breakout (15-minute)12.2%Bollinger Band breakout (15-minute)20.4%Bollinger Band breakout (daily)58.3%
The same measure with the volume filter on.
View data
ItemValue
20-day high breakout (daily)47.6%
20-candle high breakout (15-minute)22.7%
Previous-day high/low breakout (15-minute)21.0%
Opening range breakout (15-minute)12.2%
Bollinger Band breakout (15-minute)20.4%
Bollinger Band breakout (daily)58.3%

Are intraday or swing breakouts better after charges?

Intraday trades pay intraday charges and are closed by the end of the day; swing trades pay delivery charges and can be held for days. They are different trades with different charges, so compare the last column, not the trade counts.

Intraday vs swing, result after chargesResult after all charges: the four intraday rules and the two daily rules, last year.20-candle high breakout (15-minute)Previous-day high/low breakout (15-minute)Opening range breakout (15-minute)Bollinger Band breakout (15-minute)20-day high breakout (daily)Bollinger Band breakout (daily)Result %
Result after all charges: the four intraday rules and the two daily rules, last year.
View data
Result %
20-candle high breakout (15-minute)-30.7%
Previous-day high/low breakout (15-minute)-27.9%
Opening range breakout (15-minute)-25.4%
Bollinger Band breakout (15-minute)-30.8%
20-day high breakout (daily)-23.3%
Bollinger Band breakout (daily)-17.7%
Charges per trade, by ruleAverage charges paid per trade for each rule.20-day high breakout (daily)₹5320-candle high breakout (15-minute)₹17Previous-day high/low breakout (15-minute)₹17Opening range breakout (15-minute)₹18Bollinger Band breakout (15-minute)₹17Bollinger Band breakout (daily)₹55
Average charges paid per trade for each rule.
View data
ItemValue
20-day high breakout (daily)₹53
20-candle high breakout (15-minute)₹17
Previous-day high/low breakout (15-minute)₹17
Opening range breakout (15-minute)₹18
Bollinger Band breakout (15-minute)₹17
Bollinger Band breakout (daily)₹55

How do I find breakout stocks today?

To see which stocks are breaking out today, use the daily scans: breakout stocks, 20-day high breakouts, Bollinger Band breakouts, volume at least 2 times average and NR7 stocks. The scans list the stocks; this page tests the rules.

How we tested

Period
2025-10-07 to 2026-10-07
Stocks
15 stocks: RELIANCE, HDFCBANK, ICICIBANK, INFY, TCS, SBIN, BHARTIARTL, ITC, LT, AXISBANK, KOTAKBANK, HINDUNILVR, MARUTI, SUNPHARMA, BAJFINANCE
Account
₹1,00,000 in one account, 20.0% per trade, up to 5 open trades
Slippage
0.01% per fill
Charges counted
brokerage, STT, exchange transaction fee, SEBI fee, stamp duty and GST
Engine
LeadFinn backtest engine (files backtest_engine 68ab8514c88d, account 26450af3ec14, india_charges 272d6186e093; repo commit 8451eec3)
Run date
2026-10-08 (IST)
Rules
see 'What is a breakout trading strategy?'
Volume filter
breakout candle volume at least 2 times the average of the last 20 candles
False breakout
a trade stopped out without first moving 1R in its favour (R = entry to initial stop)
Long history
the daily 20-day high rule was also run on all daily history held (from 2017-07-03)

More on how we test: How we test.

20-candle breakout on volume: every timeframe, intraday and swing

Data updated: 11 Oct 2026, 01:49 IST

The same rules on every candle size, the way the Run button gives them: the strategy's own stop loss and target, no tuning, every result shown. 15 NIFTY 50 stocks, ₹1,00,000 in one account, 20% per trade, up to 5 trades open, India charges and 0.01% slippage, 9 Oct 2023 to 9 Oct 2026.

Stop loss 3% and target 6% (its own).

Intraday: closed the same day

CandleResult after chargesTradesWonChargesBiggest fall
1 min−₹98,317 −98.3%18,22121.4%−₹74,761−98.3%
5 min−₹82,773 −82.8%8,21430.9%−₹76,018−82.9%
15 min−₹50,810 −50.8%3,54736.9%−₹54,945−51.8%
1 hour−₹31,561 −31.6%1,50337.6%−₹26,543−32.3%

Swing: held overnight (delivery, buy side only)

CandleResult after chargesTradesWonChargesBiggest fall
1 min−₹98,769 −98.8%2,9134.0%−₹90,233−98.8%
5 min−₹98,712 −98.7%2,94815.6%−₹92,506−98.7%
15 min−₹84,738 −84.7%2,43227.8%−₹94,188−84.8%
1 hour−₹29,777 −29.8%77531.7%−₹42,728−39.0%
4 hours−₹23,893 −23.9%30430.6%−₹16,404−29.0%
1 day−₹20,104 −20.1%19429.9%−₹10,787−27.5%

Past results on past prices, not advice. Every number is from LeadFinn's backtest engine. Tap a candle size to run that test yourself.

Frequently asked questions

Which breakout strategy works best in India?

In a one-year test on 15 NIFTY 50 stocks after all charges, the least bad rule was Bollinger Band breakout (daily) (-17.7%). Only the daily 20-day high rule over a longer history (+₹12,473, +12.5% in total, about nine years) ended above zero.

Is breakout trading good for intraday?

0 of the 4 intraday breakout rules ended above zero after charges in our one-year test.

Where should I put the stop loss on a breakout trade?

The intraday rules here used a 1% stop and a 2% target; the swing rule used 2 times ATR(14). We have not found a single best stop; the stop-loss test on LeadFinn compares several.

Breakout trading kya hai?

Breakout trading mein hum tab kharidte hain jab price kisi purane level (20 din ka high, kal ka high, opening range ya Bollinger Band) ke upar band hota hai. Hamare test mein charges ke baad zyadatar rules ghate mein rahe.

Keep going

हिंदी में सार

ब्रेकआउट ट्रेडिंग क्या है? जब भाव किसी पुराने लेवल (20 दिन का हाई, कल का हाई या लो, ओपनिंग रेंज, या बोलिंगर बैंड) के ऊपर या नीचे बंद होता है तो उसे ब्रेकआउट कहते हैं। हमने NSE के 15 शेयरों पर 4 नियम एक साल टेस्ट किए, सारे चार्ज काटकर। 12 में से एक भी टेस्ट फायदे में नहीं रहा। 16% से 59% ट्रेड झूठे ब्रेकआउट निकले, यानी स्टॉप लगा बिना 1R चले।

Roman mein: breakout trading kya hai, aur charges ke baad kitne rules chale, upar diya hai.

This is education, not investment advice. These are tested results on past data; they do not promise future returns. Trading can lose money. See our disclaimer.