Williams Fractals: Two Bars Late, Always
Williams fractals mark a bar whose high is above the highs of the two bars on each side, or whose low is below both neighbours' lows. The shape needs five bars to exist, so every fractal is confirmed two bars after the turn it identifies.
How it works
An up fractal is a bar whose high is above the highs of the two bars on either side. A down fractal is the mirror image using lows. There is no calculation and no smoothing.
Five bars, middle one marked. Some platforms let you widen the window to seven or nine bars, which makes the shape rarer and the lag longer in equal measure.
The lag is not a defect, it is the shape. You cannot know a bar had two lower highs after it until those two bars exist. Every fractal appears two bars after the high it marks.
Frequency is the real problem
A local high is not a significant high. In any normal stretch of price the five-bar shape occurs repeatedly, because two lower highs in a row is a very weak condition.
Which is why they are always filtered. Bill Williams paired them with an alligator of moving averages; others use a longer window, a trend filter, or a minimum swing size. Something has to reduce the count.
A percentage swing filter gives a sense of the right order of magnitude. On this site’s shared 576-bar history a one per cent threshold identifies 43 swing highs and 42 swing lows — roughly one significant high every 13 bars.
And 52% of those swing highs were higher than the previous one. Even after filtering down to genuinely significant turns, the sequence is close to a coin flip — which is the number to hold in mind before treating any single marked high as meaningful.
In practice
Volume is the cheapest filter available. A fractal formed on heavy participation is a different event from one formed on nothing, and the indicator itself cannot tell them apart.
The five-bar window scales with the timeframe. On a daily chart it spans a trading week; on a five-minute chart, twenty-five minutes.
A gap can manufacture the shape without anything happening at the marked price, which is worth checking before placing a stop behind it.
Stop placement is where the lag stops mattering. A stop sits behind a level that has already formed, so learning about it two bars late costs nothing at all.
Trading unfiltered fractals is the expensive failure mode. Every one is a round trip at 2% of a median bar’s range on this history, and most of them mark nothing.
The name promises more than the tool contains. Fractal geometry describes self-similarity across scales; this is a five-bar comparison of four numbers. The label is borrowed, and the borrowing is worth noticing because it is doing work the definition does not.
The filter question deserves a straight answer rather than a list of options. The cheapest workable one is a minimum distance: ignore any fractal that is not at least some multiple of the average bar range away from the previous one in the same direction. It requires no extra indicator, it scales with volatility automatically, and it is a single number you can write into a plan.
The alternative most people reach for — a moving average filter — does something different. It removes fractals that disagree with the trend rather than fractals that are too small, which leaves a chart full of insignificant highs that happen to point the right way. Filter for size first and direction second; the order matters more than which tools you use.
What Williams fractals are not
They are not fractal geometry. The name is borrowed, not descriptive.
They are not an entry signal. Two bars late, by construction.
They are not significant on their own. A local high is a very weak condition.
And they are not a trend tool. They mark turns and say nothing about direction.
When it fails
In a range the chart fills with them. Alternating highs and lows produce the five-bar shape constantly, and a trader taking each one pays the round trip repeatedly for nothing.
The second failure is trading the raw output. Without a filter the signal count is unusable, and every published version of the method includes one.
A third is forgetting the lag in a backtest. Marking the fractal on the bar it occurred rather than two bars later produces results that were never available.
A fourth is widening the window to reduce noise. It works, and it lengthens the lag in exact proportion.
And a fifth is treating a marked high as resistance. It is a local high; whether anything is resting there is a separate question the indicator does not ask.
The original data
On this site’s shared 576-bar history a one per cent swing filter identifies 43 swing highs and 42 swing
lows. 52% of the swing highs were higher than the previous one, the longest run of consecutive higher highs
was 4, and the mean run was 2.05. The figures are in research/series-measurements.json, produced by
site/measure_series.py.
The mean run of 2.05 is the number that decides how to use them. If marked highs tend to arrive in runs of about two, then the third one in a sequence is where the odds start working against a continuation trade — and a tool that marks turns is being asked to do the one job it can do. Use fractals to place the stop and to count the sequence, and take the entry decision from something that does not need two bars of hindsight to exist.
Related
Swing high and low is the concept the shape approximates. Stop loss placement is where they earn their keep. And market structure is what a filtered sequence of them describes.
I keep fractals on one chart and use them for exactly one thing: deciding where the stop goes. The two-bar lag that makes them useless as an entry signal is irrelevant to a stop, because a stop is placed behind something that has already happened. Used that way they are one of the few indicators I never argue with.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money.