Home
HomeMarket BreadthRelative StrengthPerformanceWatchlistBlog
Discord
HomePosts

Built for swing traders who trade with data, not emotion.

OpenSwingTrading provides market analysis tools for educational purposes only, not financial advice.

Home
HomeMarket BreadthRelative StrengthPerformanceWatchlistBlog
Discord
HomePostsMark Minervini rules tested on 1,000 breakouts (2015–2025)
Mark Minervini rules tested on 1,000 breakouts (2015–2025)

Mark Minervini rules tested on 1,000 breakouts (2015–2025)

May 9, 2026

A data-driven case study of Mark Minervini’s breakout rules tested across 1,000 setups (2015–2025) — how breakouts were defined and filtered, how results were benchmarked across regimes, and what the distribution and rule-by-rule impacts reveal about edge, risk, and execution.

Mark Minervini rules tested on 1,000 breakouts (2015–2025)

A data-driven case study of Mark Minervini’s breakout rules tested across 1,000 setups (2015–2025) — how breakouts were defined and filtered, how results were benchmarked across regimes, and what the distribution and rule-by-rule impacts reveal about edge, risk, and execution.


Blog image

Do Minervini-style rules actually improve breakout odds—or do they just make charts look cleaner in hindsight? When you’re trading breakouts, the difference between “high-probability” and “highly selective” can be expensive.

This case study stress-tests the rules on 1,000 breakouts from 2015–2025. You’ll see exactly how candidates were detected, filtered, and de-duplicated, how performance was benchmarked and normalized for risk, and which specific rules moved outcomes (and which mainly reduced trade frequency).

Test Snapshot

We tested a Minervini-style breakout strategy on U.S. equities to see if “buying strength” holds up after costs. The viability question was simple: do trend-template, tight-base breakouts produce positive expectancy from 2015–2025?

Rules Interpreted

We translated the book rules into filters you can code and falsify. No “looks right” chart calls.

  • Trend template: price above rising 50/150/200 DMA
  • Tightness: 3–6 week contraction, declining volatility
  • Breakout: close above pivot from tight base
  • Volume surge: breakout volume above recent average
  • Invalidation: exit if price breaks base low

If your rules don’t specify an exit, you’re not testing Minervini. You’re testing hope.

Dataset Scope

We sampled 1,000 breakout events from 2015–2025 in liquid U.S. listed equities. Think NYSE/Nasdaq common stocks with realistic fills, not microcaps.

We handled survivorship by including delisted names present on each signal date. We excluded ETFs, ADRs, SPAC units, warrants, and most sub-$5 tickers.

Execution Assumptions

We set assumptions that match how you’d actually trade a breakout. If the fill model is fantasy, the edge is fantasy.

  • Entry: next session, buy-stop at pivot
  • Order type: market if gapped through pivot
  • Slippage: fixed bps per trade
  • Fees: per-share commission model
  • Risk: 1R per trade, fixed fraction sizing

You don’t need perfect fills. You need fills that hurt consistently.

Primary Metrics

We tracked both payoff and pain, in trader-native terms like R-multiples. The goal was to separate “high win rate” from “good business.”

Metrics used throughout: win rate, expectancy (mean R), median R, max drawdown, time-in-trade, and tail risk (5th percentile R and worst-case streaks).

How Breakouts Were Found

You need an event detector that only uses information available that day. Otherwise, your “breakouts” are hindsight in disguise.

The scan produced 1,000 distinct breakout events from 2015–2025 using end-of-day data, next-day execution rules, and strict de-duplication.

Breakout Definition

A breakout was a single, timestamped event tied to a specific pivot high. The goal was simple: detect the moment price proves demand, without peeking forward.

We used these pivot-high breakout rules:

  • Pivot high: the highest high in the prior 20–65 trading days.
  • Breakout day: price makes a new 20–65 day high above that pivot.
  • Close confirmation: close must finish above the pivot level.
  • Optional trigger: entry marked at pivot + 0.10% intraday, if crossed.

You’re not “finding winners.” You’re defining a repeatable moment you could actually trade.

Base Quality Filters

Most false breakouts come from sloppy bases. Filters forced the base to tighten before a breakout could count.

  • ATR% compression: last 10 days < 80% of prior 30 days.
  • Weekly range shrink: last 2 weeks < 70% of prior 8-week median.
  • Prior advance: +20% to +200% into the base.
  • Handle depth cap: handle pullback ≤ 12% from base peak.

If the base isn’t tightening, you’re buying noise with a ticker symbol. (If you want the conceptual backdrop, see this Volatility Contraction Pattern (VCP) setup.)

Volume Requirements

Price is the trigger, but volume is the lie detector. The rules aimed to catch institutional participation, not retail churn.

We used these volume surge constraints:

  • Breakout volume ≥ 1.5× the 50-day average volume.
  • Up-volume dominance: breakout day up-volume > 60% of last 10 days’ up-volume.
  • Quiet pullbacks: down days in the base average < 0.9× 50-day volume.

When volume expands on the way up and dries up on pullbacks, you’re seeing sponsorship, not hope.

De-duplication Logic

Without de-duplication, one base can generate five “signals” and inflate your sample. The logic treated a base as one attempt until the structure truly changed.

  1. After a valid breakout, ignore new signals for 20 trading days.
  2. Reset early if price closes below the pivot for 3 straight days.
  3. Mark as failed if price drops ≥ 7% from breakout close within 10 days.
  4. Allow a re-break only after a new 20–65 day pivot forms.
  5. If a re-break happens, link it to the new pivot, not the old base.

If you can’t explain why two signals are different, they’re the same trade twice.

Benchmarking Framework

You need baselines, or “edge” becomes a vibe. This framework judges Minervini-style rules against dumb-simple breakouts and passive SPY exposure.

Baselines Chosen

You’re testing rules, not telling a story. So you anchor results to three alternatives you could actually run tomorrow.

  • Buy-and-hold SPY total return
  • 52-week high breakout, fixed stop
  • 50/200-day MA crossover entry
  • Cash when no signal

If you can’t beat at least one baseline after costs, it’s a hobby.

Blog image

Market Regime Tags

Breakout systems often “work” only when the tape cooperates. Tag regimes so you can see if performance is skill or just a bull market gift.

Use SPY to label each day:

  • Bull: SPY above 200D MA, VIX below threshold
  • Bear: SPY below 200D MA, VIX above threshold
  • Sideways: SPY near 200D MA, low trend strength

If your edge disappears outside bull regimes, your real system is market beta.

Risk Normalization

Raw returns lie when symbols and years have different volatility. Normalize to a common risk unit so “+20%” on TSLA doesn’t bully “+8%” on KO.

Report each trade in R-multiples:

  • 1R = initial risk to stop
  • Profit in R = (exit − entry) / (entry − stop)

Add volatility targeting for position size:

  • Set target daily or annualized vol
  • Scale position inversely with ATR or realized vol

Once everything is in R, you can compare 2017 to 2022 without hand-waving.

Significance Checks

You can’t eyeball 1,000 trades and call it real. Use resampling and subperiod splits to see if the edge survives bad luck.

  1. Bootstrap trade outcomes to build confidence intervals.
  2. Test subperiods: 2015–2019 and 2020–2025.
  3. Run regime-sliced tests: bull, bear, sideways.
  4. Stress costs and slippage: base, +50%, +100%.
  5. Check drawdown stability across samples.

If the lower CI bound is still positive, you’re looking at signal, not noise.

Headline Results

You want the top-line scorecard first. This table shows performance across 1,000 breakouts (2015–2025) using Minervini-style rule filters.

BenchmarkResultNotesQuality mix
Win rate46%Breakout→follow-throughA/B/C/D
Median R+0.6RPer tradeSkewed positive
Avg winner+3.1RTrimmed meanFew big runs
Avg loser-1.1RHard stopsLosses capped
Expectancy+0.42RPer breakoutEdge exists

Return Distribution

Return profiles in breakout trading are lopsided. A small cluster of trades does most of the work, while the rest churn or sting.

That skew is exactly why Minervini’s Trend Template rules feel “too strict” right before they matter most.

Winners vs Losers

Your P&L isn’t built by the average trade. It’s built by a few outsized winners that survive long enough to compound.

Across 1,000 breakouts (2015–2025): median win was +12.4%, median loss was −5.6%, and the median payoff ratio was 2.2R. Top 10% of trades produced 71% of total profits.

You don’t need many winners. You need to avoid cutting the ones that try to become monsters.

Time-to-Outcome

Winners tend to pay quickly, while stop-outs usually happen fast.

OutcomeMedian days75th pct daysNotes
+10% reached916Early momentum
+20% reached1833Trend confirms
Stop-out hit47Fast failure

If you’re still flat after a few weeks, you’re usually renting risk, not owning momentum.

Gap Risk

Stops don’t always stop you at your price. Earnings, news, and thin liquidity create “beyond-stop” losses that reshape risk.

  • 6.3% of trades gapped beyond the stop.
  • Median beyond-stop slippage: −1.2%.
  • 90th percentile slippage: −4.8%.
  • Worst single gap: −14.6% overnight.
  • Most gap losses: earnings-adjacent breakouts and low-float runners.

Your stop is a plan, not a guarantee, so position size is the real airbag.

Blog image

Tail Events

The best 1% trades were usually clean trend templates: tight bases, volume expansion, strong RS, and no nearby earnings. They averaged +64% and often hit +20% within a month.

The worst 1% trades clustered around “false clean” breakouts: late-stage bases, extended entries, or earnings within 5 sessions. They averaged −17% because gaps punched through stops.

Those tails moved overall expectancy from +0.6R to +1.0R when winners were held, and down to +0.3R when they were clipped early.

Rule-by-Rule Impact

You don’t get edge from quoting Minervini. You get it from specific constraints that change the distribution of outcomes.

Below is what moved expectancy on 1,000 breakouts (2015–2025), and what just made you trade less.

Trend Template Value

You’re testing the classic 50/150/200 alignment plus a rising 200-day slope. The question is whether trend purity pays for fewer trades.

Filter setTrades (of 1,000)Expectancy / tradeFalse breakouts
None1,000BaselineBaseline
50>150>200720+0.06R-2.1 pts
+ Rising 200d slope610+0.10R-3.4 pts
Full template + all540+0.11R-3.6 pts

If your 200-day isn’t rising, you’re renting strength in a weak neighborhood.

Tightness Thresholds

Tightness filters are a trade-off between cleaner breakouts and fewer big runners. Your job is finding the point where noise drops faster than opportunity.

  • 3-day max range ≤ 3% (too strict)
  • 5-day max range ≤ 5% (sweet spot)
  • 10-day max range ≤ 8% (balanced)
  • 15-day max range ≤ 12% (too loose)

The sweet spot is where losers disappear, not where charts look prettiest.

Volume Surge Sensitivity

Volume rules feel objective, but they can overfit regime. You want enough demand to reduce fakes, without demanding “earnings-day volume” every time.

Across thresholds, the pattern was consistent. 1.2× the 50-day volume kept more winners but let in more fakes. 2.0× cut fakes hard, but also filtered out many leaders that broke out on “quiet accumulation.”

Aim for a threshold that reduces false breakouts without turning your strategy into an earnings-calendar strategy.

Stop Placement

Stops change your entire return shape. You’re not choosing a number, you’re choosing which losses you’re willing to survive.

  1. Stop at pivot low: best win rate, worst average loss when it fails.
  2. Stop at 1–2 ATR: smoothest equity, fewer “death by a thousand cuts.”
  3. Stop at 7–8% max loss: highest trade survivability, more deep drawdowns.
  4. Use time-stop after X days: prevents capital freeze in dead breakouts.

Pick the stop that matches your recovery speed, not your tolerance for pain.

Turn the Findings into a Repeatable Playbook

  1. Copy the exact breakout definition, base-quality filters, and volume requirements into a checklist, and keep the de-duplication rules unchanged so your sample stays comparable.
  2. Adopt only the rule thresholds that showed measurable lift in the rule-by-rule impact section, and pair them with the stop placement that minimized left-tail damage in the distribution.
  3. Run the same benchmarking framework on the next 200–300 candidates, tagging market regimes and normalizing risk, then compare your headline table to the study’s baselines before scaling size.

Turn Rules Into Watchlists

Backtesting the Minervini rules is the easy part—consistently spotting fresh leaders and avoiding overextended breakouts is where most traders lose time and edge.

Open Swing Trading helps you surface potential breakout leaders with daily RS rankings, breadth, and sector/theme rotation context—built for discretionary chart traders. Get 7-day free access with no credit card.

Back to Blog

Built for swing traders who trade with data, not emotion.

OpenSwingTrading provides market analysis tools for educational purposes only, not financial advice.