Chart Pattern Track Record

Every signal we published, scored against SPY over the following 5, 20 and 60 trading days.

4564 signals have run their full 20-day window; 49.7% of them beat SPY. Another 1579 are still open and are listed here too — dropping them would flatter the record.

Settled signals
4564
Still open
1579
Beat SPY
49.7%
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.

PatternSettledOpen5d20d60dMean 20d alpha
Trendline break bullish118648547.3%43.8%42.3%-0.57%
Trendline break bearish90625848.9%53.1%50.9%-0.65%
60-day MA cross bearish2338253.9%60.1%50.8%+1.30%
60-day MA cross bullish2306449.6%49.6%46.2%-0.10%
Supertrend + ADX bullish2083947.3%37.5%45.0%-0.09%
MACD divergence bullish2059645.7%53.7%54.0%+1.74%
Moving-average stack bullish1875543.5%43.9%50.4%-0.37%
Supertrend + ADX bearish1878856.0%59.4%53.7%+1.65%
Head & shoulders bullish1583648.4%44.9%53.2%+0.66%
Flag & pennant bullish1492149.1%50.3%34.2%+1.52%
RSI divergence bullish14210543.4%48.6%55.2%+1.87%
Head & shoulders bearish1321754.8%62.1%39.0%+1.62%
Flag & pennant bearish123956.6%52.8%57.4%-0.82%
Moving-average stack bearish1185556.1%59.3%64.7%+1.11%
Double top / bottom bearish1002750.9%57.0%50.9%-0.17%
120-day MA cross bearish765059.1%53.9%51.4%+0.36%
120-day MA cross bullish742045.7%45.9%52.8%-1.47%
Support / resistance bullish602239.4%43.3%42.9%-0.71%
Support / resistance bearish512351.6%51.0%39.4%-1.76%
MACD divergence bearish35452.8%42.9%52.2%-2.64%
RSI divergence bearish4—50.0%75.0%100.0%+4.15%
Double top / bottom bullish023100.0%———

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.

Signal dateSymbolPatternStatus20d alpha
2026-10-16ABNBTrendline break ▲open—
2026-10-16ACGLTrendline Break ▲open—
2026-10-16ADBETrendline Break ▲open—
2026-10-16ADITrendline Break ▼open—
2026-10-16ADPTrendline Break ▲open—
2026-10-16ADSKTrendline break ▲open—
2026-10-16ADSKEMA Crossover ▲open—
2026-10-16AIZTrendline Break ▲open—
2026-10-16AJGTrendline Break ▲open—
2026-10-16ALABTrendline Break ▼open—
2026-10-16ALBRSI Divergence ▲open—
2026-10-16ALBMACD Divergence ▲open—
2026-10-16ALGNTrendline Break ▲open—
2026-10-16ALLTrendline Break ▲open—
2026-10-16AMATTrendline Break ▼open—
2026-10-16AMCRTrendline Break ▲open—
2026-10-16AMDTrendline Break ▼open—
2026-10-16AMTBullish Supertrend ▲open—
2026-10-16ANETTrendline break ▼open—
2026-10-16AONTrendline Break ▲open—
2026-10-16AOSTrendline Break ▲open—
2026-10-16APABullish Supertrend ▲open—
2026-10-16APHTrendline Break ▼open—
2026-10-16APTVTrendline Break ▲open—
2026-10-16ARESMACD Divergence ▲open—
2026-10-16ARKKTrendline Break ▼open—
2026-10-16ARKQTrendline Break ▼open—
2026-10-16ARKWTrendline Break ▼open—
2026-10-16ARMTrendline Break ▼open—
2026-10-16AXONMACD Divergence ▲open—
2026-10-16AXONRSI Divergence ▲open—
2026-10-16AZOTrendline Break ▲open—
2026-10-16BACRSI Divergence ▲open—
2026-10-16BALLTrendline Break ▲open—
2026-10-16BALLBullish Supertrend ▲open—
2026-10-16BAXTrendline break ▲open—
2026-10-16BBYTrendline Break ▲open—
2026-10-16BKNGTrendline Break ▲open—
2026-10-16BRTrendline Break ▲open—
2026-10-16BROTrendline Break ▲open—
2026-10-16CAGTrendline Break ▲open—
2026-10-16CBBullish EMA Alignment ▲open—
2026-10-16CBOEEMA Crossover ▲open—
2026-10-16CBRETrendline Break ▲open—
2026-10-16CCEPTrendline Break ▲open—
2026-10-16CCEPResist Break ▲open—
2026-10-16CCEPBullish EMA Alignment ▲open—
2026-10-16CDNSTrendline Break ▼open—
2026-10-16CHDBullish Supertrend ▲open—
2026-10-16CHDBullish EMA Alignment ▲open—
2026-10-16CHTRTrendline Break ▲open—
2026-10-16CITrendline break ▲open—
2026-10-16CIResist Break ▲open—
2026-10-16CINFTrendline Break ▲open—
2026-10-16CLBullish Supertrend ▲open—
2026-10-16CLXTrendline Break ▲open—
2026-10-16CMCSATrendline Break ▲open—
2026-10-16CMGRSI Divergence ▲open—
2026-10-16CMGMACD Divergence ▲open—
2026-10-16COOTrendline Break ▲open—
2026-10-16COPBullish Supertrend ▲open—
2026-10-16COSTBullish Supertrend ▲open—
2026-10-16CPBTrendline Break ▲open—
2026-10-16CPRTTrendline Break ▲open—
2026-10-16CRWVTrendline Break ▼open—
2026-10-16CSGPTrendline break ▲open—
2026-10-16CTASTrendline Break ▲open—
2026-10-16CVSTrendline Break ▲open—
2026-10-16DDOGTrendline Break ▼open—
2026-10-16DELLTrendline Break ▼open—
2026-10-16DGTrendline Break ▲open—
2026-10-16DLTRTrendline break ▲open—
2026-10-16DRITrendline Break ▲open—
2026-10-16DVATrendline Break ▲open—
2026-10-16EBAYRectangle Break ▲open—
2026-10-16EEMEMA Crossover ▼open—
2026-10-16EFXTrendline Break ▲open—
2026-10-16EGResist Break ▲open—
2026-10-16EIXTrendline Break ▲open—
2026-10-16ELTrendline Break ▲open—
2026-10-16EPAMTrendline Break ▲open—
2026-10-16ERIETrendline break ▲open—
2026-10-16ETNTrendline Break ▼open—
2026-10-16EXPETrendline break ▲open—
2026-10-16EXRTrendline Break ▲open—
2026-10-16FTrendline Break ▲open—
2026-10-16FDSRectangle Break ▲open—
2026-10-16FFIVTrendline Break ▼open—
2026-10-16FICOTrendline Break ▲open—
2026-10-16FISTrendline Break ▲open—
2026-10-16FISVTrendline Break ▲open—
2026-10-16FIXRectangle Break ▼open—
2026-10-16FTECDouble Top ▼open—
2026-10-16FTNTTrendline Break ▼open—
2026-10-16GENTrendline Break ▲open—
2026-10-16GISTrendline Break ▲open—
2026-10-16GLWEMA Crossover ▼open—
2026-10-16GLWTrendline Break ▼open—
2026-10-16GNRCTrendline break ▼open—
2026-10-16GOOGLEMA Crossover ▼open—
2026-10-16GPCTrendline Break ▲open—
2026-10-16GPNTrendline Break ▲open—
2026-10-16GSBearish EMA Alignment ▼open—
2026-10-16GWWEMA Crossover ▲open—
2026-10-16HASRectangle Break ▲open—
2026-10-16HDTrendline Break ▲open—
2026-10-16HLTBullish EMA Alignment ▲open—
2026-10-16HLTResist Break ▲open—
2026-10-16HLTRectangle Break ▲open—
2026-10-16HOODTrendline Break ▼open—
2026-10-16HPETrendline Break ▼open—
2026-10-16HRLTrendline Break ▲open—
2026-10-16HSTTrendline Break ▲open—
2026-10-16HSTEMA Crossover ▲open—
2026-10-16HSYTrendline Break ▲open—
2026-10-16IBKRRSI Divergence ▲open—
2026-10-16ICEBullish EMA Alignment ▲open—
2026-10-16IDXXTrendline Break ▲open—
2026-10-16INTCTrendline Break ▼open—
2026-10-16INTUTrendline Break ▲open—

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