Chart Pattern Track Record
Every signal we published, scored against SPY over the following 5, 20 and 60 trading days.
3399 signals have run their full 20-day window; 48.0% of them beat SPY. Another 751 are still open and are listed here too — dropping them would flatter the record.
- Settled signals
- 3399
- Still open
- 751
- Beat SPY
- 48.0%
- Reference window
- 20d
By pattern type
Share of settled signals in each bucket that beat SPY over the window. Above 50% means the pattern added something; below means holding the index would have done better. Sorted by sample size, because a bucket of 400 says more than a bucket of 6.
| Pattern | Settled | Open | 5d | 20d | 60d | Mean 20d alpha |
|---|---|---|---|---|---|---|
| Trendline break bullish | 992 | 143 | 43.9% | 44.6% | 42.7% | -0.36% |
| Trendline break bearish | 619 | 186 | 46.9% | 46.0% | 55.9% | -1.88% |
| 60-day MA cross bullish | 195 | 31 | 48.7% | 51.8% | 43.0% | +0.41% |
| 60-day MA cross bearish | 153 | 40 | 51.7% | 51.0% | 52.7% | +0.05% |
| Supertrend + ADX bullish | 151 | 53 | 48.7% | 39.7% | 47.9% | +1.11% |
| Moving-average stack bullish | 145 | 38 | 41.1% | 43.4% | 53.3% | -0.07% |
| MACD divergence bullish | 144 | 25 | 49.0% | 54.9% | 52.9% | +2.12% |
| Head & shoulders bullish | 125 | 25 | 45.9% | 48.8% | 58.3% | +1.19% |
| Supertrend + ADX bearish | 125 | 20 | 53.0% | 57.6% | 57.3% | +1.43% |
| Flag & pennant bullish | 113 | 25 | 53.1% | 51.3% | 36.4% | +2.53% |
| RSI divergence bullish | 113 | 10 | 55.7% | 52.2% | 57.3% | +2.19% |
| Head & shoulders bearish | 91 | 24 | 55.4% | 57.1% | 36.7% | -0.34% |
| Flag & pennant bearish | 86 | 23 | 56.2% | 52.3% | 51.1% | -0.76% |
| Moving-average stack bearish | 75 | 20 | 50.0% | 58.7% | 70.9% | +0.99% |
| Double top / bottom bearish | 62 | 24 | 47.4% | 48.4% | 52.3% | -2.16% |
| 120-day MA cross bullish | 55 | 17 | 45.1% | 49.1% | 52.9% | -0.69% |
| Support / resistance bullish | 46 | 13 | 39.7% | 45.7% | 44.8% | -0.43% |
| 120-day MA cross bearish | 42 | 19 | 58.5% | 52.4% | 53.3% | +0.48% |
| Support / resistance bearish | 35 | 8 | 59.0% | 45.7% | 41.7% | -2.05% |
| MACD divergence bearish | 29 | 6 | 52.9% | 44.8% | 47.6% | -3.95% |
| RSI divergence bearish | 3 | 1 | 50.0% | 100.0% | 100.0% | +6.76% |
Win rates from fewer than 30 settled signals are shown faded: at that sample size the number is mostly noise.
Recent signals
The last 120 signals at the 20-day window, newest first — including the ones that have not settled and the ones that lost.
By month
Every month on record, kept permanently. Nothing is removed from these pages after the fact.
How this is scored
For each signal we take the close on the detection date and the close N trading days later, and subtract SPY's move over the same calendar span. That difference is multiplied by the pattern's direction, so a bearish signal "wins" when the symbol underperforms SPY. A win is any alpha above zero.
Subtracting SPY is the whole point. US equities rose through most of this period, so any bullish signal at all would post a win rate above 50% on raw returns — that is beta, not skill. Only the part left after the index's move says anything about the pattern.
Signals whose window has not finished are listed as open, not hidden. Publishing only the finished ones would quietly select for signals that had time to work out, which in a rising market means flattering the recent bullish calls. Symbols that stopped trading before their window closed are marked "no data" rather than left open forever.
This is a record of what happened, not a prediction of what will. Sample sizes vary enormously between buckets, the period covered is short in market terms, and none of it accounts for costs, slippage or position sizing.
Common questions
- Do chart patterns actually work?
- On this data, mostly not in the direction people expect. Bullish trendline breaks have consistently underperformed SPY over 60 days, while bearish signals have held up better. The two bullish exceptions worth noting are the divergence buckets. The table above is the current state of that, updated daily — it is the answer, not a summary of one.
- Why do some buckets show a win rate above 50% but a negative mean alpha?
- Because the two measure different things. A bucket can win slightly more often than it loses while its losses are larger, which is exactly what a high win rate with negative mean alpha describes. Read them together; either alone is misleading.
- Is anything removed from this page?
- No. Every signal that was ever scored stays, including the ones that went against us, and the monthly archives are not edited after the fact. Signals still inside their window are shown as open rather than omitted.
- Can I trade from this?
- It is not built for that. A bucket win rate is a property of hundreds of past signals, not a probability for the next one, and nothing here accounts for costs or risk. Its purpose is to let you judge how much weight the rest of this site's signals deserve.
Related
Pattern Vista is a technical-analysis research tool. Everything on this page is automated pattern detection and historical statistics published for educational purposes. It is not investment advice, not a recommendation to buy or sell any security, and past performance does not indicate future results. Full disclaimer