Or: how I tested nine famous chart patterns, declared them all dead, then realized I had tested them wrong — and what survived when I tested them right.
I want to walk you through the most embarrassing — and most educational — week of my quant research career. It happened last week.
This issue is about how easy it is to convince yourself you've found something. And about how rigor, not enthusiasm, is what actually moves the needle.
The setup: I documented a "fail list"
Over several weeks I systematically backtested nine chart patterns sitting in every trader's mental toolkit:
- VCP (Mark Minervini's volatility contraction)
- Cup-with-Handle (William O'Neil)
- Flat Base (O'Neil)
- Holy Grail re-entry (Linda Raschke)
- Komar's Blue Dot (RS-line new high)
- Pradeep Bonde Momentum Burst
- Turtle Soup (Raschke)
- Mark Fisher's ACD
- Shelf-Breakout (multi-author)
For each I asked: does this pattern produce positive total return? What's the win rate? Big winners ≥20%?
The answers were grim. Most patterns showed essentially zero big winners over 36 years of US data. Many had negative expected return.
I wrote them all up as "mechanical replication failures" and moved on. The list became "9-pattern fail list" in my project memory.
I was wrong about every single one of them. Not because the patterns work — but because I was testing the wrong question.
The correction came from a reader
"Mark Minervini said that risk is what we can set. So VCP is the pivot point — get in with minimum risk. He leverages this: win big, lose less. The win rate isn't what he's measuring. Over time he accumulates the return."
Reader was right. I went back to Minervini's Trade Like a Stock Market Wizard, Chapter 3. Minervini doesn't claim VCP "predicts" breakouts. He claims it provides a tight pivot for asymmetric R-multiple expectancy.
Different claim. Different metric. Different test.
The unifying principle
Once I saw it for VCP, I saw it everywhere:
Every chart pattern is a risk-tightening mechanism. None of them predict direction. They all define where the stop goes.
Cup-with-Handle's handle gives you a tighter stop than the cup low. That is the entire reason the handle matters.
A flat base lets you stop two cents under the floor instead of seven percent under. That is why traders prize flat bases.
A first pullback to the 21-day MA gives you a 3% stop instead of 8%. That is why first pullbacks pay.
Geometry is incidental. The information is structural.
The R-multiple math, on a napkin
Two trades. Same stock. Same entry. Same eventual outcome (a 30% rally). Different stops:
| Stop | Risk per share | Shares (1% of $100K) | Profit at 30% rally | R-multiple |
|---|---|---|---|---|
| 7% (wide base) | $7 on a $100 stock | 142 | $4,200 | 4.2R |
| 3% (VCP / tight) | $3 on a $100 stock | 333 | $9,900 | 9.9R |
Same trade, same account, same outcome — 2.4× more R from a tighter stop.
This is the lever Minervini won three U.S. Investing Championships with. It isn't pattern recognition. It's stop-tightening on leadership stocks, multiplied by R-multiple math, multiplied by repetition.
So I rebuilt the bench, retested with the right metric
I rewrote the entire pattern_branch around the new lens:
1. Universe: only stocks with RS Rating ≥ 80 and RS Line rising (William O'Neil's leadership filter) 2. Stops: derived from the structure the pattern names, not generic -7% 3. Position size: 1% account ÷ (entry − stop) — naturally bigger when the pattern is tighter 4. Hard cap: -7% (Komar). If the structure says wider, the trade is rejected 5. Metric: R-multiple expectancy, not win rate 6. Regime gate: PTJ 200d veto + Weinstein Stage 2 (price > 30wk MA, MA rising)
Then ran 6 detectors (consolidation breakout, first-pullback, failed-reentry, VCP, cup-with-handle, flat base) over 24 month-end signal dates from 2024-2025.
The result was electric. All 6 patterns flipped from negative to positive expectancy:
- flat_base: +1.71R / 54.5% WR
- consolidation_breakout: +1.36R
- VCP: +1.20R
- cup_with_handle: +0.82R
- failed_reentry: +0.36R
- first_pullback: +0.31R
I almost wrote up "the 9-pattern fail list is fully refuted" and shipped it to you.
Then the council came for me
I have a habit — when a result feels too good, I run it past a council of personas modeled on Simons, Munger, Minervini, Tharp, Grimes, O'Neil, Webster, and others. Their job is to find what I'm missing.
They tore me apart.
Simons: "Sample sizes are tiny. Anything under n=100 is suspicious. You also tuned the detector parameters AFTER seeing the results — that's curve-fitting. And you tested in ONE regime — 2024-2025 was a bull market. Run a proper 7-window walk-forward across multiple regimes."
Munger (inverting): "What kills this thesis? Look-ahead bias in your universe (you used current RS data, which only includes survivors). Concurrent positions correlated drawdown. Late-cycle bias."
Grimes: "5/7 windows positive is the pass mark, but compute the binomial t-stat. Bootstrap CI. Per-window MFE capture stability."
Tharp: "Compute portfolio-level SQN. Per-trade is misleading."
Ang: "5%/month max drawdown. Otherwise discipline breaks. Compute monthly DD."
So I did all of it.
What survived rigor
7-window walk-forward, 2020-2025, point-in-time universe (no survivorship), regime filter, bootstrap CI per window, monthly drawdown audit, 5 historical bear regimes tested:
| Pattern | Walk-forward windows positive |
|---|---|
| failed_reentry | 5/7 ✅ |
| first_pullback | 4/7 |
| flat_base | 3/7 (was bull-only — blew up COVID + 2022) |
| cup_with_handle | 1/7 |
| consolidation_breakout | 1/7 |
| vcp | 0/7 (sample too small + zero windows positive) |
Only ONE of the six in-sample winners survived OOS testing. failed_reentry — Oliver Kell's pattern about "biggest winners take 2-3 attempts" — was the one that worked across regimes.
The other five were in-sample artifacts. Including flat_base, which had topped my list at +1.71R.
This was hard to write. But it's the truth.
Then the user reminded me: "exit and money management are equally important"
I had focused obsessively on entries. He pointed out the math: even my OOS-validated failed_reentry was capturing only 6% of the average favorable excursion (MFE +1.94R, captured +0.12R). I was cutting winners off too early.
So I built nine exit strategies — MA21 trail, MA50 trail, ATR-band trail, Chandelier, Minervini partial-take, O'Neil's 8 sell rules composite, Webster's Power Trend exit — and tested all of them on the SAME entries.
The results changed the picture again:
first_pullback × Webster Power Trend exit went from 4/7 windows (FAIL) with the default MA21 exit to 5/7 windows (PASS) with Webster's "exit when index 21EMA crosses below 50SMA" rule. Cumulative R: +203 over 6 years. The Webster exit literally cut 2022 bear losses from -12R to +1.5R because it had us out of the market when the trend died.
failed_reentry × Minervini partial_2r_ma21 held its 5/7 with a different exit philosophy entirely — take 50% off at 2R, trail rest at 21-DMA.
Two different entries. Two different exits. Both Simons-validated. Correlation between their monthly returns: ρ = -0.14 — genuine diversification.
The honest scorecard
After roughly 50 hours of work compressed into one week:
- 6 chart patterns initially "rescued" by the new R-multiple lens (in-sample)
- 2 patterns survived 7-window walk-forward (out-of-sample, 6 years, 5 historical bears)
- Both also depended on the right exit — same entries with the wrong exit failed OOS
- Bootstrap CI across windows: most individual windows are statistical noise; signal lives in 2-3 windows of 7
- Single-window dominance: first_pullback's +203R is half-from-W5 (2023 recovery). Strip W5, system is barely positive
- Live config locked: 50/50 ensemble, 0.5% risk per trade, 5 concurrent max, kill_switch wired
Expected: ~21% CAGR / ~21% max drawdown / portfolio SQN 2.33 over the backtest period. Live results will differ.
The five lessons I want you to take from this
1. Test the originator's actual claim, not your interpretation of it. Minervini doesn't say "VCP predicts breakouts." He says "VCP enables asymmetric R-multiples via tight stops." Different claim, different test.
2. Win rate is a vanity metric. Three patterns I tested had win rates in the 60-70% range and negative expected return. Three patterns had win rates in the 20-30% range and positive expected return. Your bottom line cares about $E[R] = WR \cdot \overline{R_w} + (1-WR) \cdot \overline{R_l}$, not about WR.
3. In-sample tuning is not validation. It's the FIRST step. Walk-forward 7-window with frozen parameters is the actual bar.
4. Entry is one factor. Exit and money management are equally important. Same entries with different exits gave 2-6× different expectancy in my tests. The MA50 trail beat the MA21 trail on 4 of 5 patterns. Webster's index-based Power Trend exit cut bear-market losses dramatically.
5. Patterns work on leaders, not laggards. Tight stops only pay off on stocks that produce 5R-20R big winners. Only RS-leadership stocks run that far. The universal pre-filter is non-negotiable.
Where the work goes from here
I'm not deploying live capital on these systems until November 2026, after a six-month paper-trade period. The walk-forward results are encouraging but not bulletproof — only 2-3 of 7 OOS windows are statistically significant. Live results may differ.
Going forward: - failed_reentry × Minervini partial-take: paper from now → November - first_pullback × Webster Power Trend exit: paper from now → November - Both at 0.5% risk per trade, 5 concurrent positions max - Kill switch at 5%/8%/12% drawdown tiers (Clement Ang's discipline rule)
I'll publish weekly trade journals so you can follow along. The next issue will cover the money management side — sizing math, when to scale in, when to exit early on portfolio-level drawdown.
A note on intellectual honesty
I had this story arc completely backwards for months. I want to be clear about what happened, because the meta-lesson matters more than the trading lesson:
I confused testing a methodology with testing my interpretation of it. I declared patterns failed when actually my test was failing. Then I corrected the test, found six winners, and almost shipped that to you. Council critique made me run proper walk-forward — and most of those "winners" disappeared.
The system that survives is failed_reentry × Minervini's partial-take exit and first_pullback × Webster's Power Trend exit. Not because they predict where stocks are going. Because they let me put a tight stop in a high-quality structure on a leadership stock, and exit when the broader trend dies. The market does the rest.
Track. Study. Wait. Strike.
The chart is the risk map.
The market does the rest.
MOEasymmetry · Issue #3 · May 25, 2026 Quantitative Thai + US stock research. Not investment advice.
Methodology references in this issue: Minervini's SEPA, O'Neil's CANSLIM, Webster's Power Trend, Tharp's R-multiples, Komar's contraction principle. All systems pre-validated by 7-window walk-forward 2020-2025 (incl. 2022 bear market). Live deployment pending six-month paper trade period.