Myth #7 · Chart levels

Do Support Levels and Fibonacci Work? We Drew Random Lines Too.

Buying at support levels: +0.77% to +1.07% per trade. Same order at a randomly shifted level: +0.73% to +1.27%. Verdict: myth.

Verdict: myth. Prices bounced off Fibonacci levels no more often than off a naive guess, more overlapping levels didn't make a stronger barrier, and buying at support did no better than buying at a line shifted to a random nearby price. The only real effect we found was small: prices that stretch far from their 10-day average tend to drift back. It didn't make money once traded.

Uncle Gary has discovered support. He opens a chart, finds the price where the stock "always bounces", and draws a line. Then he adds Fibonacci levels: 38.2%, 50%, 61.8%. Where three of his lines meet, he says, the price has "nowhere to go".

Aunt Linda took the ruler, closed her eyes and drew her own lines. Gary said that's ridiculous, they're random. Linda said yes, that's the point. She wanted to know whether his lines did better than hers.

So we did Linda's test, properly, on about 580 stocks.

What we tested

What we found

Fibonacci levels: no better than a guess. When a Fibonacci zone was below the price, the price held there within five days 51.9% of the time. A naive guess did 52.4%. We even let a computer search history for the best possible level for every stock, the most overfit "perfect" line it could find, and then tested it on later years: 52.7%. Above 50% isn't the level working; it's the market drifting upwards.

Where lines meet, nothing special happens. Zones where several Fibonacci levels overlapped were, if anything, very slightly less likely to hold (the link was tiny, below 0.006 on a scale where 1 is perfect). For support and resistance from old highs and lows, more levels in one place made the price slightly less likely to even reach the zone.

Linda's random lines did just as well. This was the decisive test. We placed buy orders at the lower Bollinger band and at pivot supports, with costs and fixed exits, and compared them with the same orders placed at a level shifted 0.6 ATR (a fraction of a typical day's move) up or down.

Final test period, per tradeResult
Buy at a support level (Bollinger band, pivot support)+0.77% to +1.07%
Same order at a randomly shifted level+0.73% to +1.27%
Sell at a resistance level-0.29% to -0.06%

Buying dips made money in a market that mostly went up. The level itself added nothing: the shifted line was as good, and the deeper shifted line was often better. Selling at resistance lost money once costs were counted. Splitting the years into calm, volatile, rising and falling markets didn't rescue any level either.

Final test period, result per trade (%)

Buy at a support level+0.77 … +1.07
Same order, randomly shifted level+0.73 … +1.27
Sell at a resistance level-0.29 … -0.06
-0.50+0.5+1.0+1.5
Ranges across the levels tested (Bollinger bands and pivot points), with costs. The shifted line did as well as the level.

The one thing Gary got half right

There was one small, real effect. When a price stretched far from its 10-day average, by 1.5 to 2 times a typical day's move, it was about 4.4 percentage points more likely to come back and touch the average within ten days than to touch a level the same distance on the other side. Prices that run too far do tend to drift back a bit.

But touching isn't profit. When we traded it with costs and stops, selling the stretch lost money in every period, and buying it couldn't be told apart from a simple comparison in one of the two test periods. A real wobble, not a strategy.

Statistics for noobs: why lines look magic on a chart

Draw any line on a chart and the price will touch it eventually, and sometimes turn there, because prices turn all the time. You'll remember the turns and forget the times the price sailed straight through. That's cherry-picking with a ruler.

The fix is a control: put a line at a random nearby price and see whether yours does better. If it doesn't, the line was decoration. In our data, it didn't.

The moral

Gary looked at the results for a long time and said the problem is that 580 stocks is too many: the levels work best on the charts he looks at personally. Linda agreed that this is exactly how it works.

Linda's lines are now framed in the hallway. Gary walks past them twice a day. They have the same track record as his.

What this test can't tell you

Simulations on historical data, not real trades. Daily prices of about 580 US stocks listed today, 2010 to 2026, with trading costs in the trade tests. Historical results do not guarantee future returns. This is educational content, not financial advice.