Skip to content
MT5MT4soonTradingViewsooncTradersoonNinjaTradersoonPythonsoon
IndicatorPrice action & SMCMT5

Break of Structure

Free MT5 indicator that marks Break of Structure and CHoCH on closed bars, with zones, a panel and alerts. Lab repaint test: 0 of 714 checks changed.

Add to a kit
CompareRequest a variant
Embed
Break of Structure on XAUUSD M15, MT5 chart with default settings: bos / choch lines, break zones, swing points
Screenshots from a real MT5 chart · 9 · scroll sideways
Break of Structure inputs window in MetaTrader 5 with the default settings
Break of Structure inputs window in MetaTrader 5 with the default settings
Break of Structure signal on XAUUSD M15, 28 Oct 2026 04:30
Break of Structure signal on XAUUSD M15, 28 Oct 2026 04:30
Break of Structure signal on XAUUSD M15, 27 Oct 2026 16:30
Break of Structure signal on XAUUSD M15, 27 Oct 2026 16:30
Break of Structure signal on XAUUSD M15, 27 Oct 2026 06:30
Break of Structure signal on XAUUSD M15, 27 Oct 2026 06:30
Break of Structure on XAUUSD H4 (another timeframe)
Break of Structure on XAUUSD H4 (another timeframe)
Break of Structure on XAUUSD M5 (another timeframe)
Break of Structure on XAUUSD M5 (another timeframe)
Break of Structure on-chart panel: last signal and status
Break of Structure on-chart panel: last signal and status
Break of Structure on EURUSD M15
Break of Structure on EURUSD M15
Break of Structure zoomed out on XAUUSD M15: several weeks of history
Break of Structure zoomed out on XAUUSD M15: several weeks of history
Test verdict
Repainted
Not tested
Signals / week
—
Tested on
—
Tested
2026-10-04
Download free · Google DriveFree account needed · sign in with Google in one clickFree — share it freely. Just don’t sell, crack or modify it. Licencev1.00 · 96.1 KB · .ex5
Lab pick — built by the lab, not from a member request. Want something like it? Request a tool

Overview

Break of Structure is a free MT5 indicator that works on the main price chart, for traders who trade market structure and want swings and breaks marked the same way every time. When a closed bar breaks a confirmed swing high or low, it draws a line, a shaded zone and a "BOS" or "CHoCH" label, and it marks every swing with a small dot. In the Lab's repaint test, 0 of 714 checks changed after the fact. Once a break is drawn, it stays put.

What it draws on your chart

A break of structure (BOS) happens when price breaks a swing in the direction of the current trend. That is a sign the trend is continuing. A change of character (CHoCH) is a break against the trend, which is the first warning that the trend may be turning. The glossary covers both ideas in full. Here is what the tool puts on screen:

  • BOS / CHoCH lines put a line at the broken swing level, with its BOS or CHoCH label.
  • Break zones are rectangles that mark where structure broke.
  • Swing points are small dots on each confirmed swing high and low.
  • The Structure panel shows the last BOS or CHoCH and how many bars ago it happened, the current trend, BOS and CHoCH counts over recent bars, the trend on up to three higher timeframes, and which alert channels are on.

Everything draws in the main chart window. The indicator does not open a subwindow.

What the Lab tested and what 0 of 714 means

The Lab tested version 1.00 (96.1 KB) and finished on 2026-10-04. The Lab ran 714 repaint checks on v1.00 in MetaTrader 5 (build 6230) and none changed. The release notes do not describe the check procedure, symbol or timeframe, so read the result as a check on the code's logic, not on one market.

For you, this means a BOS you see in history is one you would also have seen live. Labels do not jump to a better bar later. The reason is the design: the tool only reads closed bars and only uses swings that are already confirmed.

Who it is for

The tool suits traders who already build trades around higher highs, higher lows and their breaks, and who want those breaks marked objectively, with alerts. It also helps if you are learning structure. Watching where the tool puts its dots and labels shows you which swings count under a fixed rule.

How it works

  1. 1
    Finds swing highs and lows: a bar whose high or low beats the set number of bars on both sides.Swing high if High > High of K bars left and K bars right (K = SwingLookback)Inputs: SwingLookback
  2. 2
    Remembers the latest unbroken swing high and low. A close beyond one marks a structure break.Bullish break: Close > last swing high. Bearish break: Close < last swing low
  3. 3
    Labels a break BOS when it follows the trend, or CHoCH when it goes against it, then flips the trend.CHoCH if break direction is opposite to trend, else BOS
  4. 4
    Draws markers on the closed bar, fades old ones after the set bars, and counts BOS in a row.Inputs: ZoneFadeBars, ShowSwingMarkers
  5. 5
    The panel repeats the break logic on three higher timeframes using 500 bars, showing each trend and last break type.Inputs: MTF1, MTF2, MTF3

Specifications

Platform
MetaTrader 5
Version
1.00
Type
Indicator
Window
Main chart
Draws
3 zones, 1 panel
Alerts
popup, push, sound
Repaints
not tested
Inputs
16
Tested on
MT5 build 6230 · 2026-10-04

Repaint test

Repaint: not tested. This indicator draws zone, panel, which the IndicatorFree harness cannot read through iCustom().

IndicatorFree — tested 2026-10-04 · MT5 build 6230. Results come from historical data, not live trading, and do not guarantee future results.

What it draws

  • Rectangles (BOS / CHoCH Lines) drawn as chart objects, not buffers — they are not readable by iCustom() in an EA.
  • Rectangles (Break Zones) drawn as chart objects, not buffers — they are not readable by iCustom() in an EA.
  • Rectangles (Swing Points) drawn as chart objects, not buffers — they are not readable by iCustom() in an EA.
  • An on-chart panel (Structure); values shown in the panel are not exposed as buffers.

Inputs

InputDefaultWhat it does
SwingLookback5Bars on each side that confirm a swing high/low (2-15)
ShowSwingMarkerstrueShow a small dot on each confirmed swing high/low
ShowBOSLabeltrueDraw line, "BOS" text and zone where structure breaks with the trend
ShowCHoCHLabeltrueDraw line, "CHoCH" text and zone where structure breaks against the trend
ZoneFadeBars150Closed bars before lines, zones and dots are deleted (0 = never)
StatsLookbackBars100Closed bars used to count BOS and CHoCH on the panel (20-500)
EnableAlertPopuptruePopup alert on a new BOS/CHoCH (start state, also switchable on the panel)
EnableAlertPushfalsePush notification on a new BOS/CHoCH (start state, also switchable on the panel)
EnableAlertSoundfalseSound on a new BOS/CHoCH (start state, also switchable on the panel)
ShowMTFPaneltrueShow the trend of up to 3 higher timeframes on the panel
MTF1M15Higher timeframe 1 (skipped if not above the chart timeframe)
MTF2H1Higher timeframe 2 (skipped if not above the chart timeframe)
MTF3H4Higher timeframe 3 (skipped if not above the chart timeframe)
ThemeDarkChart color theme
RestoreThemetrueRestore the original chart colors when the indicator is removed
PanelScale1Panel size multiplier (DPI is applied automatically)

How to read it

Install in one line

Copy the file into File → Open Data Folder → MQL5 → Indicators, refresh the Navigator, then drag Break of Structure onto a chart.

How to read the lines, zones and dots

The chart below shows the order things appear in. First come swing dots. Then a BOS forms as price breaks a swing high with the uptrend. After a higher low forms, a CHoCH forms as price breaks that low against the trend.

Illustration of a typical signal: BOS in an uptrend, then a CHoCH against itIllustration
BOS line (broken swing high)1.10340CHoCH line (broken higher low)1.10120BOS break zoneCHoCH break zoneSwing high dotSwing low dotBOSHigher low dotCHoCH

The swings in this picture are only a few bars apart so they fit. On a real chart with the default SwingLookback of 5, they sit further apart. On your chart, zones extend to the right until ZoneFadeBars removes them; the picture cuts them short to stay readable.

Two rules for reading it:

  • A BOS says the trend shown on the panel just made a new swing in its own direction.
  • A CHoCH says price broke the last swing that protected the trend. Treat it as a warning, not a reversal.

How one break forms

How a single BOS or CHoCH appears on your chart
  1. 1Swing confirmedA high or low needs SwingLookback bars on each side (default 5) before it gets a dot
  2. 2Bar closesOnly closed bars are checked, so a candle still forming never triggers a break
  3. 3Break classifiedWith the current trend = BOS; against it = CHoCH
  4. 4Drawn and alertedLine, label and zone appear, the panel updates and the alerts you turned on fire
  5. 5Cleaned upObjects are deleted ZoneFadeBars closed bars later (0 keeps them)

The common misread: "the dot showed up late"

A swing dot can only appear once SwingLookback bars have closed after the high or low. With the default of 5, the dot appears 5 bars after the actual turn. That delay is the price of a signal that does not repaint. It is not a bug.

The same delay applies to breaks. Because breaks are measured from confirmed swings, a high or low that has not yet been confirmed gives no level to break.

Reading the Structure panel

The panel shows the last break and how many bars ago it happened, so you can tell a fresh signal from an old one. It also shows the BOS and CHoCH counts over the last StatsLookbackBars closed bars (default 100). A run of BOS with almost no CHoCH points to a clean trend. The higher-timeframe rows tell you whether the larger charts agree with the break you are looking at.

The inputs to change first

  • SwingLookback (2–15, default 5). This is the most important setting. Lower values find more, smaller swings and more labels, including more CHoCH flips in ranges. Higher values keep only the bigger swings, with fewer signals that arrive later.
  • ShowBOSLabel / ShowCHoCHLabel. Switch one off if you only trade continuation or only want early warnings.
  • ZoneFadeBars (default 150). This sets how many closed bars old lines, zones and dots stay on the chart. Lower it to keep a busy M1 chart clean. Set it to 0 to keep every object.
  • MTF1–MTF3 (defaults M15, H1, H4). These choose the higher timeframes on the panel. Pick ones above the chart timeframe you trade.
  • StatsLookbackBars (20–500). This sets how far back the panel counts BOS and CHoCH.
  • PanelScale (default 1). Raise it if the panel is too small on your screen.

Alerts

The tool alerts you when a new BOS or CHoCH appears. Popups are on by default. Push notifications and sound are off. Set the starting state with EnableAlertPopup, EnableAlertPush and EnableAlertSound, or turn each channel on or off from the panel while the indicator runs. Because breaks are confirmed on closed bars, an alert always refers to a finished candle.

Decision rules for each signal

These are reading rules, not Lab results:

  • BOS: act on it only when the panel's higher-timeframe trends point the same way. Skip a BOS that breaks against the higher timeframes. In our reading, on a lower chart that can be just noise inside a bigger pullback.
  • CHoCH: do not reverse on the label alone. Wait for a BOS in the new direction before you treat the trend as changed. Until then, use the CHoCH to tighten or close a trade that ran with the old trend.
  • Skip both when the panel's BOS and CHoCH counts are close over StatsLookbackBars. Labels in a range flip back and forth and lead nowhere.

Installation

  1. 1Download BreakOfStructure.ex5 from the button above (Google Drive).
  2. 2In MetaTrader 5: File → Open Data Folder → MQL5 → Indicators. Copy BreakOfStructure.ex5 there.
  3. 3Restart MT5 or right-click Indicators in Navigator → Refresh.
  4. 4Drag Break of Structure onto a chart. For push alerts, enable "Allow push notifications" under Tools → Options → Notifications.
  5. Tested on MT5 build 6230.

Key terms and guides

Entry Trigger
An entry trigger is the specific event on the chart, such as a candle closing past a level or price breaking a small swing, that tells you to open the trade now instead of only watching the setup.
Pullback
A pullback is a short, temporary move against the main trend: price dips during an uptrend or rallies during a downtrend, then turns back the trend's way. Traders use it to enter a trend at a better price.
Price Swing
A price swing is one move in a single direction, from a turning low to a turning high or the reverse. You measure it in pips from one swing point to the next.
Break of structure
A break of structure (BOS) happens when a candle closes beyond the last swing high in an uptrend, or the last swing low in a downtrend. It confirms that the trend has started a new leg in the same direction.

More on this subject: Price action & SMC guide, terms and tools

User reviews

No reviews yet. Members who download the tool can review it here.

Write a review

Sign in and download the tool to review it.

Build a checklist with it

Break of Structure does one job on the chart: trend / context. Put it on the same chart as the tools below and the IndicatorFree panels merge into one checklist card, ordered trend, zone, signal, risk.

  • Zone / levelBreakout Zone FinderAdds where price is: the zones and levels that Break of Structure does not draw.
  • Entry signalBox BreakoutAdds the entry signal: the moment to act once Break of Structure has set the scene.

The Lab has not tested these combinations. Each tool is tested on its own; the card only lines up what each one says. Free members get 2 new tools a day. If one has to wait until tomorrow, install BlackBox to raise the limit to 5 a day (20 on a live account).

FAQ

Does Break of Structure repaint?

Repaint: not tested. This indicator draws zone, panel, which the IndicatorFree harness cannot read through iCustom().

Why can’t my EA read the zones?

Zones and the panel are chart objects, not indicator buffers, so iCustom() does not return them.

How do I get alerts on my phone?

Enter your MetaQuotes ID under Tools → Options → Notifications, tick "Enable push notifications", and keep the push alert input on.

Which timeframe works best with the Break of Structure indicator?

It runs on any timeframe, and the Lab's notes do not name a best one. Lower charts give more labels and more noise, so most traders read the break on their trading chart and check the panel's higher-timeframe trends before acting.

Why does the panel show fewer than three higher timeframes?

MTF1, MTF2 and MTF3 are skipped when they are not above your chart's timeframe. On an H1 chart with the defaults (M15, H1, H4), only H4 shows, so set them to higher timeframes.

How do I get BOS alerts on my phone?

Turn on EnableAlertPush, or switch on push from the panel. Your MT5 terminal must also have push notifications set up with your MetaQuotes ID from the mobile app.

Does it work on gold, indices or crypto?

It only reads swing highs, swing lows and closed bars, so it draws on any symbol your MT5 shows. The Lab's notes do not name the symbol it was tested on, so check how it behaves on your own market before you rely on it.

Will it change my chart colours?

Yes. The Theme input (default Dark) recolours the chart. With RestoreTheme left on, your original colours come back when you remove the indicator.

Changelog

  • 1.00Initial release: Break of Structure and Change of Character detection from fractal-confirmed swing highs/lows, closed-bar only, no repaint (0/714 repaint checks verified in MetaTrader 5). · 2026-10-04

Final verdict

Where it earns its place

The core claim holds: breaks are drawn on closed bars, from confirmed swings, and the repaint test found no signal that moved. What you scroll back through is what you would have seen live. The panel puts the age of the last break, recent BOS/CHoCH counts and higher-timeframe trends in one place.

Where it falls short

  • It lags by design. Every swing waits SwingLookback bars to confirm, so the tool will never catch the exact top or bottom.
  • It only covers structure. There are no order blocks, fair value gaps, entries, stop-losses or targets. You decide where to enter and where to put your stop.
  • There is no follow-through number. The Lab has not measured how often price kept going after a BOS, so treat each label as context, not a trade signal.
  • It does not judge break quality. A small break of a minor swing gets the same label as a decisive one.

If you want a ready-made entry arrow, or you scalp the first bars of a move, skip this tool.

Break of Structure: use it when / skip it when
Use it when
  • –You trade trend continuation and want BOS marked without bias
  • –You want an early CHoCH warning to manage an open trade
  • –You check higher-timeframe trend before acting on a lower chart
  • –You review past setups and need signals that did not move
Skip it when
  • –You need entries, stops or targets drawn for you
  • –You trade the exact turn and cannot accept a SwingLookback-bar delay
  • –You want order blocks or fair value gaps from the same tool

Settings to start with

Start on the defaults and change one thing at a time. The suggestions below are starting points the Lab has not tested, so compare each one with the default on your own charts:

  • M1–M5: try SwingLookback 8 and ZoneFadeBars 80 to cut down small flips and clutter.
  • H4 and above: try SwingLookback 3 so swings confirm sooner.
  • Chart on H1: set MTF1 to H4, MTF2 to D1 and MTF3 to W1.
  • Phone alerts: turn on EnableAlertPush.

An idea to pair it with

An idea the Lab has not tested: pair it with Liquidity Sweep to see whether a stop grab came before a CHoCH.

More price action & smc tools