ForexBestRobots.comCompare EAs →

MARKET STRUCTURE · GUIDE 1

Forex Market Structure: How to Read HH, HL, LH and LL

Learn to read Forex market structure with confirmed swing highs and lows, HH/HL and LH/LL, a timed H1 example and checks that prevent hindsight errors.

18 min readReviewed by ForexBestRobots Editorial Team
Hypothetical EUR/USD H1 market structure: confirmed highs 1.0880 and 1.0920, lows 1.0800 and 1.0840, and a five-bar zoom showing the last low confirmed at 11:00.EUR/USD · H1 · completed Bid barsSwing → confirmation → comparison

A pivot's candle time and the time it becomes known are different.

Market structure describes the order of price highs and lows on a chosen chart. It helps you distinguish an advancing sequence, a declining sequence and an unclear one. The useful question is not just where a turning point appears on a finished chart, but when enough information existed to identify it. This guide builds that distinction into a simple, reproducible reading method.

1. What market structure tells you

An impulse is a move away from a previous turning area; a pullback is a move against that direction. Their boundaries depend on the chart and the swing definition. A higher high by itself does not establish an uptrend: the lows matter too.

HH means higher high; HL higher low; LH lower high; LL lower low. Compare a high with the preceding confirmed high and a low with the preceding confirmed low. Never compare a high with a low to assign these labels.

This guide concerns chart structure, not the organisation of trading venues, broker execution models or the complete order book. A retail Bid chart does not reveal every participant's orders or prove an institutional intention.

2. Choose the chart before choosing the swings

The worked example uses ordinary EUR/USD H1 Bid candles from one hypothetical broker feed. Keep the symbol, price side, timeframe, server clock and data source fixed. An H1 sequence can rise while a daily sequence falls; those are observations at different scales.

For this demonstration, inspect the latest 64 completed, consecutive hourly bars. A missing hour, invalid OHLC or insufficient history produces a data warning, not a structure label. This deliberately strict window is an example convention; market closures require a separately declared rule.

Use ordinary OHLC candles rather than transformed Heikin Ashi prices. An EUR/USD pip is 0.0001; on a five-digit quote, a point is 0.00001, so 1 pip = 10 points. Symbol precision is not the definition of a swing.

3. Define a confirmed swing without future candles

Use a strict five-bar window: two completed bars on the left, the central bar P, then two completed bars on the right. P is a swing high only if its high exceeds all four neighbouring highs; it is a swing low only if its low is below all four neighbouring lows.

Equality with any neighbouring high or low fails the corresponding test. A candle can satisfy both tests: record an ambiguous event X because OHLC does not tell you which extreme occurred first. Do not silently choose a favourable order.

Call the right-hand bars R1 and C. The pivot is confirmed only after C closes. An arrow later drawn above P does not mean the swing was known while P was forming. This is an author-defined strict comparison inspired by the five-bar fractal concept; it is not the whole Bill Williams trading system.

4. Store the pivot time and the confirmation time

If P opens at 08:00, it closes at 09:00; R1 closes at 10:00 and C at 11:00. The low of P is only a candidate before 11:00. A live right-hand candle cannot supply its final low or high.

In MT4, once the next hourly bar exists, the current unfinished bar is shift 0, C is shift 1, R1 is shift 2 and P is shift 3. Verify the five completed bars directly for this guide's strict rule; an indicator buffer alone does not document every tie or ambiguity convention.

Record both timestamps in the journal. During replay, publish a pivot at its confirmation time and never let later bars create an earlier decision. Reloading a chart can backfill an arrow at P; that visual placement is not evidence of timely availability.

5. Compare the latest confirmed highs and lows

Scan the completed window in chronological order. Keep every strict pivot event, including X; do not remove inconvenient events or replace an earlier pivot retrospectively. The newest eligible centre is the third-most-recent completed bar.

For a conservative snapshot, use the latest four raw events only when they alternate H → L → H → L or L → H → L → H. Label the earlier and later highs H_A, H_B, and the earlier and later lows L_A, L_B.

An advancing snapshot requires H_B > H_A and L_B > L_A: HH and HL. A declining snapshot requires H_B < H_A and L_B < L_A: LH and LL. Mixed directions, equal corresponding levels, X, consecutive same-type events or fewer than four events remain unclassified by this method.

Unclassified does not automatically mean a tradable range. A small higher high also does not imply useful momentum. If a test uses a minimum difference or a price tolerance, specify that separate parameter before reviewing results.

6. Work through an H1 example

Every price and date below is invented for explanation, not taken from a historical trade. All times use one hypothetical server clock. The four events are the latest confirmed pivots in the demonstration's 64-bar window.

The highs rise from 1.0880 to 1.0920 and the lows from 1.0800 to 1.0840. Both differences are 40 pips. The H1 snapshot is advancing only once the final low has been confirmed; the 80-pip move from the last high to that low is the observed pullback, not a promised recovery.

EventPivot opensConfirmed atBid price
H_A2026-10-08 08:002026-10-08 11:001.0880
L_A2026-10-08 13:002026-10-08 16:001.0800
H_B · HH2026-10-08 18:002026-10-08 21:001.0920
L_B · HL2026-10-09 08:002026-10-09 11:001.0840
Hypothetical EUR/USD H1 market structure: confirmed highs 1.0880 and 1.0920, lows 1.0800 and 1.0840, and a five-bar zoom showing the last low confirmed at 11:00.
How to read this diagram: the upper panel connects four confirmed pivot prices schematically; the connecting lines are not a candle-by-candle price path. The lower panel shows five actual candles from the invented example on a separate price scale. P is the central low, R1 and C are its two right-hand candles. That low becomes known only when C closes at 11:00. No subsequent move or trade outcome is shown.

A declining comparison reverses the same idea: highs 1.0920 → 1.0880 and lows 1.0840 → 1.0800 give LH and LL, each lower by 40 pips. That describes a sequence; it does not authorise a sell order.

7. Verify the five candles around the last low

The central candle's low 1.0840 is below 1.0847, 1.0844, 1.0841 and 1.0843. Those comparisons can all be completed only at 11:00. Candle C is bullish here, but candle colour is not part of the pivot definition.

Hour opensRoleOpenHighLowClose
06:00Left 11.08501.08541.08471.0851
07:00Left 21.08511.08511.08441.0847
08:00P1.08471.08501.08401.0844
09:00R11.08441.08491.08411.0848
10:00C1.08481.08561.08431.0854

At 10:00, C is still forming and the last low is unconfirmed. At 11:00, its completed low supports the strict comparison and the four-event structure snapshot becomes available. Confirmation is delayed by design; earlier identification would use a different, provisional rule.

8. Distinguish a level touch, a wick and a closed break

Once the example's snapshot exists, record the latest confirmed high 1.0920 and low 1.0840 as reading references. A touch reaches a level, a wick moves beyond it during the candle, and a close finishes beyond it. These are different events.

Under a declared close-based convention, a later Bid close above the confirmed high is a continuation break; a close below the confirmed higher low is a warning that the advancing sequence's reference has failed. A wick alone does not satisfy that convention.

Some analysts call these events BOS (break of structure) and CHoCH (change of character), or use MSS (market structure shift). Usage varies. Always state the referenced swing, price side and wick-or-close rule. A first opposite break is not enough to prove a complete LH/LL sequence or a profitable reversal.

Independent scenarioBid high / low / closeReading under the close rule
Wick above 1.09201.0924 / 1.0910 / 1.0916No closed continuation break
Close above 1.09201.0926 / 1.0914 / 1.0922Closed continuation break; no entry rule
Wick below 1.08401.0850 / 1.0836 / 1.0844No closed failure of the low reference
Close below 1.08401.0848 / 1.0834 / 1.0838Low reference fails; no full bearish sequence yet

The scenarios in the table are independent hypothetical branches, not subsequent candles of the worked example. A close exactly at a reference is not strictly beyond it. This guide adds no entry buffer or executable order to a descriptive break.

9. Know where this reading becomes weak

Inside a choppy consolidation, short swings can alternate frequently. A wide outside candle can be both a high and a low, while repeated highs or lows can leave the strict method without a label. Preserve those outcomes instead of forcing a clean zigzag.

A news jump, a price gap or an unusual spread can move a quote through a reference without creating a stable trend. A sparse feed can also change which candles meet the comparison. Compare the same timeframe and feed before attributing every difference to the market.

The last four events are a local snapshot, not a statistical forecast or a complete map of longer-term support and resistance. Confirmation delay trades early visibility for a definition based on completed observations.

10. Read the chart and the executable price separately

At the invented 11:00 quote, Bid 1.0854 / Ask 1.0856 gives 2 pips of spread, or 20 points on a five-digit quote. The structure in this example is measured on Bid. An Ask above a Bid reference is not a Bid close above that reference.

A market buy opens at Ask and closes at Bid; a market sell opens at Bid and closes at Ask. Therefore, a sell stop evaluated against Ask can be reached while the displayed Bid high remains below the same numerical price.

Structure alone supplies no entry price, Stop Loss, Take Profit, lot size or expected return. Before using it in an EA, define those execution rules and include spread, commission, slippage and any financing in the risk calculation. See the linked risk and cost guides.

11. A repeatable chart-reading routine

  1. Fix the symbol, H1 timeframe, ordinary Bid candles, server clock and the 64 completed-bar demonstration window.
  2. Check timestamps and OHLC validity. Exclude the unfinished bar; keep incomplete data explicitly unclassified.
  3. Test every eligible centre against its four completed neighbours. Save type, price, pivot time and confirmation time; retain X events.
  4. Check that the latest four raw events alternate. Compare highs with highs and lows with lows; retain equal and mixed cases.
  5. Record the HH/HL or LH/LL snapshot and the two latest reference levels only at the time the final pivot becomes known.
  6. Log later touches, wicks and closes using the declared convention. Keep any trade decision in a separate, fully specified strategy.

12. Check for hindsight in an indicator or EA

Replay one completed candle at a time. Save the information available at each close, then compare those saved snapshots with the final chart. A pivot may appear at an old candle only after its confirmation time; an EA must not enter at that old candle's price.

Audit ties, dual high/low events, same-type sequences, missing bars and window edges. For the 64-bar demonstration, only centres with two neighbours on each side qualify: there are 60 eligible centres, not 64.

If a longer window, different pivot length or tolerance changes the label, record the configuration rather than retrospectively selecting the nicest chart. Use separate validation periods when researching a trading application.

No performance backtest was run for this guide. Verifying the invented OHLC comparisons proves the example's arithmetic and timing, not an edge. MT4's traditional tester can model Ask with a specified spread; a Bid-only chart cannot establish historical spread variation or intrabar event order.

13. Frequent reading mistakes

  • Treating one higher high as a complete advancing structure while ignoring the lows.
  • Using the unfinished right-hand candle or assigning a confirmed pivot before its confirmation time.
  • Confusing equal highs from different pivots with a tie inside one five-bar pivot test.
  • Deleting ambiguous or same-type events until the chart resembles the desired trend.
  • Calling every opposite wick a confirmed reversal without defining the break rule.
  • Mixing H1 and daily labels, Bid and Ask prices, or raw OHLC and transformed candles.

14. Market structure questions

Does HH/HL guarantee that the next high will be higher?

No. It classifies completed observations under a stated swing rule. The next move can fail, consolidate or reverse.

Can I use a different swing length?

Yes, as a separately specified method. Longer windows generally delay confirmation and select a different set of pivots. Do not combine methods while presenting one reproducible example.

Is an unclassified sequence the same as a range?

No. Insufficient data, equality, mixed comparisons or ambiguous event order can also prevent classification. A range needs its own explicit definition.

Is BOS or CHoCH an entry signal here?

No. Here these terms describe a declared break convention. A trade requires additional entry, exit and risk rules.

Why is a confirmed low shown on an earlier candle?

The earlier candle supplies the low's price and pivot time. The later right-hand candle supplies the information needed to confirm it; store both times.

15. Primary sources and the guide's scope

MetaQuotes documents the five-bar fractal concept, indicator shifts, order price sides, symbol properties and tester modelling. The strict tie handling, 64-bar demonstration window, four-event classification and close-based reading convention are editorial choices for this guide, not official trading recommendations.

16. Keep the price sequence and its availability together

A useful structure record includes the swing rule, comparable highs and lows, and the time each pivot became known. That makes HH/HL and LH/LL testable descriptions instead of labels added after the outcome. Use them as context for further study, with execution and risk defined separately.