Market Structure

Market structure is the practice of reading price as a sequence of swing highs and swing lows, and using changes in that sequence to decide whether a market is trending, reversing, or going nowhere. Unlike an oscillator or a moving average, it produces no value to threshold: the trader — or the code — labels the price series itself. Higher highs with higher lows is an uptrend; lower highs with lower lows is a downtrend; anything that alternates without progressing is treated as a range. Entries, stops, and targets are then hung on that skeleton.

Two events carry most of the weight in almost every version of the idea. A **break of structure (BOS)** happens when price trades beyond the last swing point in the direction of the prevailing trend, and is read as continuation. A **change of character (CHoCH)** happens when price breaks the last swing point against the trend, and is read as the first evidence that the sequence may be turning. Because both are defined relative to swing points, the entire method inherits whatever swing definition you adopt. That single dependency explains most of the disagreement between implementations that otherwise use identical vocabulary.

## How a market structure system is built

A complete implementation usually has six moving parts. First, **swing detection**: a fractal or pivot rule (a high with N lower highs on each side), a ZigZag with a percentage or ATR threshold, or a purely visual judgement. Second, a **trend state** derived from the last two confirmed swings on each side. Third, a **trigger**: BOS for continuation setups, CHoCH for reversal setups. Fourth, an **entry location** — at the break itself, on a retest of the broken level, or inside a zone such as a pullback area, an order block, or a Fibonacci retracement of the impulse leg. Fifth, an **invalidation level**, typically the swing point whose violation would negate the structural read. Sixth, a **target or exit rule**: the next opposing swing, a fixed multiple of risk, or a stop trailed behind each newly formed higher low or lower high.

## Main variants

The versions catalogued here cluster into a handful of families. *Pure price action structure* uses only swings and breaks, with no indicators on the chart. *Smart-money-flavoured structure* adds a liquidity narrative on top: inducement below an obvious low, a sweep of resting stops before the real move, and entries into imbalance or order-block zones. *Multi-timeframe or top-down structure* takes direction from a higher timeframe and times entries on a lower one, sometimes with a fixed divisor between the two. *Indicator-assisted structure* delegates swing labelling and target projection to an automated tool so the rules are consistent bar to bar. *Structure plus confluence* keeps the structural trigger but gates it with a moving-average trend filter, an ATR volatility condition, a volume profile or TPO reference, or a specific candle formation such as a marubozu or a pin bar at the level. Finally, *structure-based trade management* treats the concept less as an entry signal and more as an exit framework, trailing risk behind each new structural point.

## What typically differentiates implementations

Surface differences in naming hide a small number of real choices: how many bars confirm a swing; whether a break requires a candle close beyond the level or a wick suffices; whether minor internal swings count or only major ones; whether entry is on the break or on the retest; whether the stop sits at the swing extreme or beyond it; which timeframe pair is used; and how much of the process stays discretionary. Two systems that both claim to trade CHoCH can produce almost disjoint trade lists once these are pinned down.

## Common mistakes

The most damaging is hindsight labelling. Pivots are only confirmed several bars after they print, so a chart reviewed after the fact shows a structure that was not visible in real time. Closely related is leaving the confirmation rule vague, which lets the same chart be labelled two ways. In ranges, every minor break looks like a BOS, and treating them all as significant produces a stream of whipsaws. Mixing timeframes without an explicit rule for which one governs is another frequent failure, as is assuming that smart-money terminology adds edge on its own — renaming a swing low as *liquidity* does not change what the price series does next. Finally, placing stops immediately under an obvious swing puts them exactly where the method itself predicts stops are hunted.

## How to evaluate and backtest a version

Start by making it mechanical: write the swing rule, break rule, entry, stop, and target as conditions a script could evaluate. If it cannot be written down, it cannot be tested, only remembered fondly. Then check for lookahead — a pivot confirmed N bars later must be timestamped at the confirmation bar, never at the pivot bar itself.

From there, the useful checks are ordinary but often skipped. Test across trending *and* ranging periods rather than a curated sample. Vary the swing lookback or threshold and watch whether results degrade smoothly or collapse outside one setting — brittleness there is a curve-fitting signal. Compare the structural logic against a naive baseline such as a simple channel breakout; if BOS rules do not separate from it, the added vocabulary is not doing work. Model costs honestly, since retest entries fill differently from stop entries. Verify the trade count is large enough to say anything, especially on higher timeframes where breaks are rare. And examine the distribution of outcomes and the excursions before exit rather than accuracy alone, since structure-based stops and targets are what determine the shape of that distribution.

The versions linked below implement these ideas in different ways across instruments, timeframes, and confluence tools. Reading several side by side is the fastest way to see which choices are structural to the concept and which are one author's preference.

Strategies in this concept (82)

Frequently asked questions

What is the difference between a break of structure and a change of character?

Both are breaks of a prior swing point; the difference is direction relative to the current trend. A break of structure (BOS) breaks a swing point in the direction the market is already going, and is interpreted as continuation. A change of character (CHoCH) breaks the most recent swing point against the prevailing direction, and is interpreted as the first sign that the sequence of highs and lows may be reversing. Which one a given break is depends entirely on how the trend state was labelled beforehand, so a system with a loose swing definition can classify the same candle either way.

Is market structure the same thing as Smart Money Concepts?

No. Market structure is the narrower, older idea: labelling swings and reading the sequence of highs and lows. Smart Money Concepts is a broader framework that uses market structure as its base layer and adds a liquidity narrative on top — inducement, stop sweeps, order blocks, imbalance, premium and discount zones. Many SMC strategies are market structure strategies with extra entry filters; the structural read is doing most of the work, and the added concepts mainly change where entries and stops are placed.

Does a structure break need a candle close beyond the level, or is a wick enough?

There is no consensus, and this is one of the choices that most changes results. Requiring a body close beyond the swing point produces fewer, later signals and filters out some sweeps; accepting a wick produces earlier, more frequent signals and more failed breaks. Some implementations deliberately treat wick-only breaks as liquidity sweeps rather than structure breaks, and use them as reversal evidence instead of continuation evidence. Whichever you pick, it needs to be fixed in advance and applied identically in testing and in live trading.

Which timeframe should market structure be read on?

Market structure is timeframe-agnostic — the same labelling logic applies from monthly charts to one-minute charts — but the structure visible on one timeframe frequently contradicts another. Multi-timeframe implementations resolve this by assigning roles: a higher timeframe sets the permitted direction, a lower one times the entry. The practical requirement is that the relationship is fixed by rule rather than chosen after the fact, because switching to whichever timeframe agrees with a desired trade is how the method stops being testable.

Can market structure be automated, or is it inherently discretionary?

It can be automated, and doing so is the only way to evaluate it properly, but automation forces decisions a discretionary trader can leave open — how many bars confirm a swing, whether internal swings count, what happens when a range produces overlapping breaks. Note that automated swing labelling is confirmed retrospectively: a pivot is only known to be a pivot once N later bars have printed. Any backtest that acts on a pivot at the pivot bar rather than at its confirmation bar contains lookahead bias and will overstate results.

How does market structure behave in a range instead of a trend?

Poorly, in most naive implementations. Ranges generate frequent minor breaks in both directions, each of which satisfies a break-of-structure or change-of-character condition, so a system without a range filter can produce a long run of quickly invalidated trades. This is why many implementations add a volatility filter, a trend filter, a minimum-swing-size threshold, or a distinction between internal and major structure. When evaluating any version, test it specifically on sideways periods rather than only on the trending stretches where the concept looks obvious in hindsight.

All strategy concepts · Explore all strategies