Do 'three weeks tight' patterns lead to profitable breakouts?
Across 142 of 220 tickers between 2015-01-01 and 2024-12-31, average return was 2.66%, average max drawdown -6.48%.
A modest edge: +2.66% mean return across 142 tickers, with -6.48% average drawdown — directional, though execution costs would chew into it.
What we tested
We want to buy breakouts that come out of a tight three week consolidation, the classic William O'Neil "three weeks tight" pattern. Group daily bars into weekly bars from Monday close to Friday close. A "three weeks tight" pattern occurs when the last three completed weekly closes are all within 1.5 percent of each other. In other words, the highest of the three weekly closes is no more than 1.5 percent above the lowest of those three weekly closes. Enter long the next open after a daily close that is above the highest of those three weekly closes, provided the daily close is also above the 50 day simple moving average. On entry, place a protective stop just below the lowest daily low of the three week consolidation, but no more than 5 percent below the entry price. Size the position so a stop-out loses exactly 1 percent of account equity. Round down to a whole number of shares. Take profit at 2R, twice the entry to stop distance. If the position has been held for 40 trading days without resolving, exit at the next open. Long only. One open position per ticker at a time. No leverage and no pyramiding.
- Window
- 2015-01-01 → 2024-12-31
- Universe
- 220 tickers
- Ranking metric
- return_pct

Overall results
Aggregated across 142 runsEqual-weighted mean of total return across symbols that completed. · 1 codegen refinement on pilot
Unweighted mean across successful runs.
142 completed · 78 failed
Mean of worst peak-to-trough per symbol.
Aggregate gross profit ÷ gross loss.
Summed over successful symbols.
Return distribution
How the 142 tickers split up across return_pct buckets. Reads left to right from worst to best.
- ≤ -10%4 (2.8%)
- -10% to -5%22 (15.5%)
- -5% to -1%22 (15.5%)
- −1% to +1%14 (9.9%)
- +1% to +5%30 (21.1%)
- +5% to +10%30 (21.1%)
- > +10%20 (14.1%)
By sector
Top and flop names per GICS sector, ranked by return_pct.
Communication Services
14 / 20 completed- NFLX18.85%
- GOOGL14.18%
- LYV12.48%
- GOOG9.04%
- TTWO7.80%
- T-7.08%
- OMC-5.93%
- PINS-4.08%
- MTCH-3.86%
- EA-1.52%
Consumer Discretionary
12 / 20 completed- AMZN31.61%
- HD28.73%
- BKNG7.48%
- TJX4.33%
- CMG3.22%
- F-3.91%
- ROST-3.29%
- GM-3.12%
- LULU-0.59%
- YUM1.48%
Consumer Staples
11 / 20 completed- COST18.15%
- ADM14.65%
- EL9.58%
- MO8.03%
- HSY5.93%
- KHC-7.93%
- CLX-5.34%
- KR-4.36%
- PEP-3.33%
- WMT1.36%
Energy
13 / 20 completed- WMB9.40%
- MPC5.94%
- BKR5.55%
- OKE2.19%
- HAL1.41%
- PSX-9.69%
- COP-6.98%
- XOM-6.09%
- VLO-5.42%
- FANG-4.28%
Financials
14 / 20 completed- MCO12.81%
- SPGI8.50%
- SCHW7.10%
- AON6.95%
- PNC4.60%
- USB-10.65%
- BAC-7.09%
- COF-5.98%
- WFC-5.63%
- BK-5.24%
Health Care
13 / 20 completed- ISRG20.66%
- DHR12.05%
- ABBV8.59%
- JNJ6.83%
- UNH6.20%
- BMY-11.99%
- GILD-5.63%
- CVS-3.60%
- PFE-3.57%
- MDT-0.75%
Industrials
13 / 20 completed- LMT12.55%
- UNP10.34%
- BA10.23%
- PH9.60%
- DE7.23%
- ITW-7.27%
- FDX-5.93%
- EMR-2.68%
- RTX-0.50%
- NOC0.02%
Information Technology
12 / 20 completed- MSFT23.31%
- NVDA16.60%
- NOW12.78%
- ADBE6.21%
- AAPL5.56%
- PANW-9.41%
- CSCO-9.18%
- QCOM-2.09%
- IBM-1.78%
- INTC0.96%
Materials
14 / 20 completed- NUE12.38%
- CF6.79%
- DOW6.41%
- ALB5.36%
- APD4.79%
- PPG-10.13%
- NEM-7.44%
- CTVA-6.77%
- MOS-2.41%
- FCX0.98%
Real Estate
12 / 20 completed- AMT19.20%
- PLD6.85%
- EQIX4.98%
- AVB4.84%
- VICI2.15%
- ARE-11.11%
- WELL-7.18%
- INVH-6.42%
- CCI-1.65%
- ESS-0.92%
Utilities
14 / 20 completed- WEC14.16%
- ATO13.06%
- PEG9.04%
- PPL6.12%
- DUK5.52%
- CNP-4.61%
- D-3.90%
- EIX-1.00%
- NEE-0.38%
- EXC1.10%
Disclaimer
Past performance does not predict future results. This is a backtest over a fixed historical window and it does not model execution costs, borrowing, taxes, or survivorship of the universe. Nothing here is investment advice.
Generated Apr 23, 2026 · slug three-weeks-tight