WhitmanTrading

ABCD Pattern: A Mechanical Test on the S&P 500 Since 1970

The ABCD pattern is a four-point price pattern in which a move from A to B is followed by a partial pullback to C and then a second move, C to D, expected to match the length of AB. Traders use the projected D as a place where the second leg may end and reverse.

Most chart patterns are drawn by eye, and the ABCD is one of the easiest to draw after the fact. Pick any rise, any pullback and any second rise, and the letters fit. This page does what a drawing cannot: it fixes the swing points with a written rule, walks through a real case from September 2026, and measures every sequence on the S&P 500 since 1970.

How it forms

Four turning points make three legs. In the bullish version, price falls from a high at A to a low at B, rebounds to a lower high at C, then falls again toward D. The bearish version is the mirror: a rise from a low at A to a high at B, a pullback to a higher low at C, and a second rise toward D.

The core claim is that the second leg repeats the first. CD is expected to be about as long as AB, so D is projected by taking the AB distance from C. A bullish ABCD is read as a place to look for a low, and a bearish one as a place to look for a high.

Ratios are added to filter the shapes. Scott Carney, whose harmonic trading material lists this pattern among its harmonic patterns, allows the pullback BC to retrace anywhere from 38.2% to 88.6% of AB, and pairs a 61.8% pullback with a CD of 1.618 times BC and a 78.6% pullback with 1.27 times BC. This page tests the narrower 61.8% to 78.6% band, two of the ratios found on Fibonacci retracement tools.

It is a named case of a simpler idea. Projecting a second leg equal to the first is a measured move. The ABCD adds the four labels and the pullback filter.

Pinning down the four points

The pattern cannot be counted until its swings are defined. This page uses one rule for all of them. A swing high is a day whose high is above the highs of the five sessions before it and the five after it; a swing low is the mirror with lows. A tie with a neighbor does not count, and two days that were both a swing high and a swing low were dropped.

The swings then alternate. When two swing highs come in a row with no swing low between them, the higher one is kept, and the same for lows, which gives a zigzag of alternating highs and lows. This is the same idea as a zigzag indicator and as marking swing highs and lows by hand, written as code.

A setup, as a trader could have seen it. Three consecutive zigzag points A, B and C, with BC between 61.8% and 78.6% of AB, and C short of A. C is only known five sessions after it prints, because the rule needs five later days, so the setup starts on that fifth day. D is C minus AB for a bullish setup, C plus AB for a bearish one. The zigzag is rebuilt day by day, so nothing after the fifth day is used.

What happens next is sorted into three results. Price reaches D first, trades past C first, or does neither in 60 sessions. Where D is reached, the outcome is the close 10 sessions later against the close on the day D was touched.

A worked example

The S&P 500 gave a bullish ABCD in August and September 2026. A was the 13 August high of 7,816.70. B was the 24 August low of 7,638.17, so AB was 178.53 points. C was the 28 August high of 7,771.48, a rebound of 133.31 points, which is 74.7% of AB and inside the 61.8% to 78.6% range.

Daily S&P 500 candles from August to late September 2026 with swing points A, B, C and D labeled and the projected D level of 7,592.95 drawn as a dashed line.
S&P 500 daily candles, 6 Aug to 25 Sep 2026, with A, B, C and the projected D level marked. Source: Yahoo Finance, S&P 500 index daily bars (gspc-daily-ohlc-1970-2026-m26.csv).

The projection is one subtraction. D is 7,771.48 minus 178.53, or 7,592.95. C became a confirmed swing high on 4 September, five sessions later, and by then the index had not traded above C or down to D.

D arrived three sessions later. On 10 September the index fell to 7,580.06 and closed at 7,591.70. Ten sessions later, on 24 September, it closed at 7,704.13, 1.48% higher. AB had taken seven sessions and CD took eight, so this one also came close on timing.

The path was not clean. On 16 September, four sessions after D, the index traded down to 7,507.77, 85.18 points below the projected level, before it recovered.

The original data

The legs first, in hindsight. Across S&P 500 daily bars from 2 January 1970 to 25 September 2026, the rule found 783 swing highs and 826 swing lows, which alternate into 1,349 zigzag points and 1,346 four-point sequences. For each one, the CD leg was divided by the AB leg.

Horizontal bars counting 1,346 S&P 500 swing sequences by how long the CD leg was compared with the AB leg, from under half to more than double.
CD leg as a multiple of the AB leg, 1,346 S&P 500 swing sequences, 1970 to 2026, five-session swing rule. Source: Yahoo Finance, S&P 500 index daily bars (abcd-legs-gspc-1970-2026-m26.csv).

The median ratio was 1.00, and it was almost never 1.00. Only 161 of the 1,346, 12.0%, had a CD leg within 10% of AB. The middle half ran from 0.61 to 1.61. 215 sequences (16.0%) had a CD under half of AB, and 217 (16.1%) more than double it. By bucket: 215 under 0.5, 244 from 0.5 to 0.75, 125 from 0.75 to 0.9, 161 from 0.9 to 1.1, 220 from 1.1 to 1.5, 164 from 1.5 to 2.0 and 217 at 2.0 or more. The ratio is right on average and wide on any single swing.

The classic filter did not tighten it. 146 sequences had BC between 61.8% and 78.6% of AB with C short of A. Their median CD was 0.85 of AB, 22 of them (15.1%) landed within 10%, and 50 (34.2%) reached the full AB length. Changing the swing rule to three or ten sessions gave 2,145 and 665 sequences, with medians of 1.01 and 0.99 and 11.6% and 11.3% within 10%. Every sequence is in the S&P 500 ABCD legs file.

Then the live version. Built day by day, the rule found 81 bullish and 74 bearish setups. Of the 155, 19 had already reached D before C could be confirmed, 85 traded past C before reaching D, 50 reached D after the setup was known, and 1 did neither within 60 sessions.

At D, the result sat below the base rate. 13 of the 24 bullish setups that reached D closed higher 10 sessions later, 54.2%. Across all 14,295 index days with 10 later sessions, 8,396 closed higher, 58.7%. Only 9 of the 26 bearish setups that reached D closed lower 10 sessions later, 34.6%, against 41.2% of all days. Both samples are small, and both gaps are well within chance (exact binomial p = 0.68 and 0.55). The setup file lists each one.

Why hindsight flatters it

On a finished chart, C is always a turning point. That is how it was chosen. In real time, C is just the latest high, and the index went on past it in 85 of 155 setups before reaching D. A drawing made after the fact shows none of those.

D can arrive before C is known. In 19 setups the second leg had already reached D inside the five sessions it took to confirm C. On a chart they look like perfect ABCDs; nobody following the rule could have acted on them.

The letters are flexible. Move A to a different swing, or use a tighter or looser swing rule, and the same chart gives a different D. The sensitivity test above changed the number of sequences from 665 to 2,145 without changing the story: the median stays near 1.00 and the share within 10% near one in eight.

When it fails

The second leg stops short. In the hindsight count, 459 of the 1,346 sequences had a CD under 0.75 of AB, so a trader waiting at D for a reversal never got the price.

The second leg runs through D. 381 sequences had a CD at least 1.5 times AB. The 16 September 2026 low, 85.18 points under D, shows the size of move that can follow a reached D.

C gives way. More than half of the live setups traded beyond C first, which ends the pattern before D is in play.

Reaching D says little about what comes next. The bullish cases that touched D closed higher 10 sessions later less often than an ordinary day did, on a sample of 24.

The measured move page covers the general rule that the second leg matches the first, without the letters or ratios. Swing highs and lows explains the turning points the ABCD is built from. The Fibonacci extension page covers the ratio projections some traders use instead of an equal leg, and how to use Fibonacci retracement covers the pullback ratios in the BC filter.

What I actually do

Draw the ABCD as a rough map of where a second leg might end, then plan for it to fall well short or run well past. I want the swing rule written down before I measure anything, because the letters move wherever hindsight wants them.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.