NomadTradingFX · MT5 Indicator

MarketStructure SMC Prov3.0

A market structure indicator built on the premise that most SMC tools tell you where structure broke — but not whether you should trust the break. This one does both.

Platform
MetaTrader 5
Type
Chart Indicator
Markets
FX · Metals · Indices · Crypto
Timeframes
M5 — D1 (recommended)
§ 01 — Premise

What the market actually does at structure breaks

Every SMC indicator on the market will draw a BoS line. Most will draw a CHoCH. A few will mark equal highs and lows. None of that is the problem — the problem is that structure breaks lie, often. Roughly half of all "clean" BoS events on lower timeframes are stop-runs that reverse within five bars. The chart prints the same horizontal line in both cases.

What separates a real shift from a fakeout is almost never visible in price alone. It lives in three places: which type of structure broke (internal noise or genuine swing), how the wick behaved at the level (clean break or a tail rejection that triggered stops), and whether order flow agreed with the move during the break itself. MarketStructure SMC Pro v3 is the first indicator I'm aware of that puts all three on the chart, in real time, on every break event.

"The wick that takes out an old high before reversing is not a failed breakout. It's the entire trade." — Trading floor adage, rediscovered weekly

The three pillars

I.

Dual-Track Structure

Two independent pivot trackers run in parallel — a fast Internal stream catches intraday shifts, while a slower Swing stream maintains higher-timeframe context. Internal breaks inside a swing trend are continuation; counter-swing internals are warnings.

II.

Sweep Detection

A two-stage liquidity sweep engine: identify a wick exceedance that closes back inside the level, then wait up to N bars for a reversal close through the sweep bar's midpoint. Only confirmed sweeps print — no false signals during the move.

III.

Flow Confirmation

Every break carries a flow badge derived from Bulk Volume Classification — an order-flow proxy from the Easley/López de Prado/O'Hara microstructure literature. [++] means flow agrees. [!?] means it doesn't, and you're probably looking at a fakeout.

§ 02 — The Flow Model

Order flow on retail charts, for the first time done correctly

Standard volume indicators on MT5 charts are useless for direction. Tick volume tells you how much traded, never which side initiated. To classify a bar as buy-pressure or sell-pressure, retail tools usually fall back to the up-tick / down-tick heuristic — a method known to be noise-dominated on aggregated bars.

The academic solution, dating to 2012, is Bulk Volume Classification (BVC). Instead of guessing trade-by-trade, you estimate the fraction of a bar's volume that came from buyers, using the standardised return of that bar against a calibrated volatility window. A large positive return relative to recent volatility means most of the bar's volume was buyer-initiated. A large negative return means it was sellers. The math is one line:

// For each bar in the cumulative window:
z          = (log_return - mean_return) / sigma   // standardised
buy_frac   = NormalCDF(z)                         // in (0, 1)
signed_OFI = tick_volume × (2 × buy_frac − 1)     // signed flow

Summed across the last N bars and normalised by total volume, this produces a directional flow index in [−1, +1], displayed on the dashboard as a buy/sell percentage. When a structure break fires, the indicator immediately compares break direction against accumulated flow:

Badge Meaning How to read it
[++] Strong aligned flow Flow agrees with break direction beyond the strong threshold. Highest-confidence signals — institutions are pushing the move, not absorbing it.
[~] Weak / ambivalent Flow is mixed. Treat the break as tentative. Often appears in low-conviction sessions and on news-driven choppy bars.
[!?] Contrarian flow Break direction and flow disagree. Statistically the most likely fakeout case. The price broke up, but the bars were selling. Wait for confirmation, or fade.
Why this matters

BVC is what HFT desks use to estimate flow toxicity in the absence of full order-book data. The exact same math, calibrated to the timeframe you trade, runs on every break this indicator prints. You are not reading raw volume — you are reading an estimate of who initiated.

Citations behind the model

§ 03 — The Sweep Engine

Two-stage liquidity sweeps, no premature signals

Liquidity sweeps are the highest-probability reversal setups in price action, and the most commonly mis-marked. The naive approach paints "SWEEP" the moment a wick pokes through a level — long before you know whether it was actually rejected. Result: a chart full of sweep tags that never produced a reversal.

This engine uses two-stage confirmation. A sweep is registered as pending when three conditions all fire on the same bar:

Wick exceedance

The bar's high (or low) penetrates an active swing or internal level by at least SweepMinPenetration × ATR. Penetration must exceed market noise — measured against current ATR, not a fixed pip distance.

Close back inside the level

The bar's close must return through the level. A bar that closes above a broken high is a break, not a sweep. A bar that breaks the high with the wick but closes below it is exactly what a sweep looks like on the tape.

Wick-to-range rejection ratio

The wick above the body must exceed SweepRejectionPct of the bar's full range. A small upper wick on a doji is not a rejection; a long tail with the body buried at the opposite end is.

Reversal confirmation (the second stage)

The pending sweep then waits up to SweepLookback bars for confirmation. Confirmation requires a close past the sweep bar's midpoint, on the opposite side, with bar direction matching. Until that happens, no signal is drawn. If lookback expires, the pending sweep silently dies.

The net effect: SWEEP tags only appear after the reversal has begun. There is no waiting for confirmation, no second-guessing whether the wick was "real." When you see the tag, the trade is already moving — and the flow badge tells you whether to trust it.

Dashboard counter

The dashboard's Pending sweeps counter shows how many wick exceedances are currently waiting on confirmation. A spike here often precedes a reversal cluster — it's a leading indicator of indecision being resolved.

§ 04 — Dual-Track Structure

Two pivot streams, one chart

Standard market structure tools force one length parameter — pick small for sensitivity and live with noise, pick large for cleanliness and miss the entries. The dual-track approach runs both, simultaneously, and labels them differently so the chart stays readable.

Stream A · Default len 5
Internal Structure

Catches micro shifts inside the larger trend. Labeled with lowercase prefixes — iBoS, iCHoCH, iSweep — and drawn in muted gold with dotted lines. Use these for continuation entries inside a confirmed swing trend, or for early warning that swing structure is weakening.

Stream B · Default len 25
Swing Structure

The trend you would draw by hand. BoS and CHoCH labels in solid lines, with stronger colors and thicker strokes. The swing trend on the dashboard reflects this stream. Counter-trend swing CHoCH is the highest-conviction reversal signal the indicator produces.

The continuation-vs-reversal logic

The engine tracks the prevailing trend on each stream independently. A new high break in the same direction as the existing trend is logged as BoS (Break of Structure — continuation). A break against the prevailing trend is logged as CHoCH (Change of Character — potential reversal). This distinction is essential: a CHoCH on the swing stream with aligned flow is a high-probability trend reversal entry. A BoS with contrarian flow is a continuation that's running on fumes.

How to read the four combinations

§ 05 — Visual Legend

Every mark on the chart

BoS
BREAK · BULLISH
Swing BoS — bullish continuation

Existing uptrend confirmed. Old swing high taken cleanly. Trade in trend direction.

BoS
BREAK · BEARISH
Swing BoS — bearish continuation

Downtrend confirmed. Old swing low broken. Continuation short setups in play.

CHoCH
REVERSAL · BULLISH
Swing CHoCH — bullish reversal

First higher-high after a downtrend. Character change. New leg likely beginning.

CHoCH
REVERSAL · BEARISH
Swing CHoCH — bearish reversal

First lower-low after an uptrend. Trend likely turning. Short setups validated.

SWEEP
LIQUIDITY · BULLISH
Bullish sweep — low taken, reversal up

Stops below an old low were run; price reversed. Classic long entry after stop-hunt.

SWEEP
LIQUIDITY · BEARISH
Bearish sweep — high taken, reversal down

Stops above an old high were run; price reversed. High-probability short entry.

EQH
EQUAL LEVELS
EQH / EQL — equal highs & lows

Two consecutive swings within ATR threshold of each other. Resting liquidity zone — frequent sweep targets.

[++]
FLOW · BADGE
Flow score on every break

Appended to every BoS, CHoCH, and SWEEP label. [++] strong aligned · [~] weak · [!?] contrarian.

§ 06 — Parameters

Full input reference

Defaults are tuned for H1 trading on liquid pairs. Lower timeframes need shorter Internal/Swing lengths; D1 and above benefit from longer lengths and tighter flow thresholds.

Structure Detection

4 inputs
InpInternalLen 5 Pivot lookback for the Internal stream. Fewer bars = more signals, more noise. M5 trading typically uses 3–5; H1 uses 5–8.
InpSwingLen 25 Pivot lookback for the Swing stream. 25 is calibrated for H1. Use 15 for H4, 50 for M15 day-trading.
InpUseCloseBreak true If true, breaks require a close beyond the level. If false, any wick beyond triggers. Close-based is dramatically less noisy.
InpEqualThreshold 0.1 EQH/EQL tolerance as a multiple of ATR(14). 0.1 = swings within 10% of current ATR are flagged as equal.

Sweep Detection

4 inputs
InpDetectSweeps true Master switch for the sweep engine. Disable if you only want classic BoS/CHoCH.
InpSweepLookback 5 Bars allowed for reversal confirmation after the wick exceedance. After this, pending sweeps expire silently.
InpSweepMinPenetration 0.05 Minimum wick penetration beyond the level, as a multiple of ATR. Filters out trivial wick brushes.
InpSweepRejectionPct 0.5 Minimum wick-to-bar-range ratio. 0.5 means at least half of the bar's range must be wick on the rejection side.

Flow Confirmation

5 inputs
InpUseFlowConfirm true Master switch for BVC flow analysis. When off, breaks print without flow badges.
InpFlowWindow 20 Calibration window in bars for volatility (sigma) estimation. Longer = more stable calibration, slower to adapt.
InpFlowCumWindow 10 Accumulation window for signed flow. Smaller windows = more reactive flow score; larger = smoother context.
InpFlowStrongThr 0.60 Threshold for the [++] strong-aligned badge. 0.60 = 60% of cumulative volume must be on the aligned side.
InpFlowWeakThr 0.40 Threshold below which flow is considered contrarian. Below this level, the [!?] badge fires.

Display & Dashboard

selected
InpShowInternal true Show the internal pivot stream. Disable for cleaner D1+ charts.
InpShowSwing true Show the swing pivot stream. Almost always on.
InpShowEqualLevels true Draw EQH/EQL connectors. Essential for spotting upcoming sweep targets.
InpShowFlowBadges true Append flow score notation to every break label.
InpShowDashboard true Show the on-chart dashboard with live trend states, flow %, and pending-sweep counter.
InpDashCorner UPPER_LEFT Dashboard anchor corner. Move it if it overlaps your price action.

Alerts

5 inputs
InpAlertSwingBoS true Pop-up + sound on swing BoS. Includes flow badge in message.
InpAlertSwingChoCh true Highest-priority alert. Fires on swing trend changes.
InpAlertSweep true Fires only on confirmed sweeps (after reversal), not on the wick itself.
InpAlertInternal false Off by default — internal breaks are too frequent to alert on most timeframes.
InpPushAlerts / InpEmailAlerts false Mobile push and email delivery. Configure MT5 → Tools → Options → Notifications first.
§ 07 — Recommended Workflow

How to actually trade with this

The indicator is not a system. It's a high-resolution lens on structure. The workflow below is how I use it on my own charts.

Read the dashboard before reading the chart

Swing state, internal state, flow percentage, pending sweep count. Thirty seconds before you place any order. If Swing is BULLISH and flow is >60% buy, you are not shorting today.

Identify the active liquidity

Look for EQH or EQL clusters — these are where stops are resting. The market gravitates toward them. If price is approaching an EQH from below, expect a sweep attempt.

Wait for the confirmed signal — not the setup

A wick approaching a level is a setup. A confirmed SWEEP tag is a signal. Big difference. The signal arrives only after reversal has begun, but with flow context attached. Don't front-run it.

Filter by flow badge

Take [++] signals. Skip or reduce size on [~]. Fade or stand aside on [!?] — those are statistically the trades that hurt the most.

Manage with internal structure

Once in a trade, the internal stream is your exit tool. An iCHoCH against your position is early warning. An iSweep against you is more decisive — consider partial close or full exit.

§ 08 — Differentiation

What this does that others do not

Typical SMC indicator MarketStructure SMC Pro v3
Structure detection Single pivot length. User must choose between sensitivity and noise. Two independent streams — internal and swing — running in parallel with separate labelling.
BoS vs CHoCH logic Often confused. Frequently mislabelled. Trend-aware — same break is BoS in trend, CHoCH against trend, tracked separately on each stream.
Liquidity sweeps Painted when wick exceeds level. Many false sweeps. No reversal requirement. Two-stage confirmation — wick exceedance + close-back + reversal within N bars. Only confirmed sweeps print.
Order flow input None, or raw tick volume. BVC-based signed flow — academic microstructure model, properly calibrated to current volatility.
Conviction filter All breaks look identical on the chart. Flow badge on every signal — instantly distinguishes high-conviction breaks from likely fakeouts.
Dashboard Either absent or visually unrefined. Bounded panel with accent strip, divider, live trend states, flow split, pending sweep count.
Code quality Often re-compiled from free repackaged sources. Original. Object pruning, ATR-relative thresholds, dedupe logic, alert deduplication, decade-old MQL5 codebase.
§ 09 — Installation

Getting it running

Open the MT5 data folder

In MetaTrader 5, navigate to File → Open Data Folder. The folder opens in your system file explorer.

Drop the .ex5 into the indicators directory

Open MQL5 → Indicators. Copy MarketStructure_SMC_Pro_v3.ex5 into this folder. Do not place it in Experts or Scripts — it will not work.

Restart MT5 or refresh the Navigator

Right-click the Indicators node in the Navigator panel and select Refresh. The indicator will appear in the list.

Drag onto your chart

Drag the indicator onto an active chart. The default parameters work well for H1; adjust Internal/Swing lengths for other timeframes.

License activation

The indicator is bound to the trading account number it was issued for. Your purchase includes 20 license slots — each one valid for one MT5 account number (real or demo). Add or replace accounts via the support channel listed below.

Recommended starting setups

H1 swing trading: defaults work as-is. Watch for swing CHoCH with [++] flow.
M15 intraday: InternalLen = 4, SwingLen = 50, FlowCumWindow = 8. Tighter sweep penetration (0.03).
D1 position trading: InternalLen = 8, SwingLen = 15, FlowWindow = 30, FlowStrongThr = 0.65.

§ 10 — Specifications

Technical details

Product
MarketStructure SMC Pro v3 — MT5 Chart Indicator
Version
3.00
Platform
MetaTrader 5 (build 3815+)
Type
Indicator (chart-window overlay)
Buffers / Plots
0 / 0 — pure object-drawing for performance
Markets
Forex, metals, indices, energy, crypto — any instrument with tick volume
Timeframes
All timeframes supported. M5 through D1 recommended.
Dependencies
Internal ATR(14) handle. No external libraries.
Object management
Configurable cap (InpMaxObjects, default 500). Auto-prunes oldest objects when exceeded.
Calculation budget
Configurable historical bar limit (InpMaxBarsCalc, default 2000) for fast load on fresh charts.
Alerts
Pop-up · sound · push notification · email — all configurable per event type
License
Compiled .ex5 only. Single purchase covers 20 MT5 account activations.
Support
Lifetime updates within the v3.x branch. Email support included.