SMC Market Structure Toolkit
- Indicators
-
Svitlana Zhyliaieva
✅ About AlgoLab
AlgoLab is an independent team of MQL developers and traders building tools for MetaTrader 4 and MetaTrader 5. We create indicators and Expert Advisors with a focus on clean charts, clear logic and practical everyday use.
✅ What We Build - Version: 1.0
- Activations: 10
SMC Market Structure Toolkit is a Smart Money (ICT / SMC) toolkit for MetaTrader 4 in ONE indicator. It reads the market the way a discretionary Smart Money trader does: structure first, then liquidity, then the areas where price may react - and it draws all of it directly on your chart, with short labels, optional arrows and optional alerts.
Key features
- Structure is built TWO ways at once - Internal and Swing BOS / CHoCH, each with its own timeframe, swing strength and colors.
- Every module has its own timeframe, independent of the chart: build liquidity on H1 and zones on M15 while you trade on M5.
- Starts clean. By default only the Internal structure is on. Every other module is one switch away, so you build your own chart - not ours.
- Arrows are optional everywhere. Switch them off and the result (break, sweep, taken) moves into the label on the line - nothing is lost, the chart stays tidy.
- Time and life in labels (optional): when a level or zone formed and how long it lived. Compact labels hide it in one click.
- Chart panel and alerts built in: trend of D1 / H4 / H1, nearest liquidity, untouched zones, latest events - and Alert / Push / E-mail with quiet hours and a per-minute limit.
- Works on any symbol and any timeframe. It does not trade and uses no DLL and no web requests.
1. MARKET STRUCTURE - built TWO ways at the same time
The structure module is the core of the indicator. It marks BOS (a break in the direction of the trend: continuation) and CHoCH (a break against the trend: reversal), and it does this in two independent ways on one chart: Internal structure and Swing structure. Each has its own timeframe, its own swing strength, its own switches and its own colors, so you can watch the short-term flow and the big picture side by side and tell them apart at a glance.
1.1 Structure settings
- Swing confirmation method - Conservative: a swing is confirmed only after N bars on both sides (more precise, a bit later). Sliding: confirmed as soon as none of the next N bars exceeds the point (faster, more sensitive).
- Swing strength and history - how many bars confirm a swing, and how many past bars are analysed at start.
- A break counts only when a candle body CLOSES beyond the level. A wick that pokes through and comes back is treated as a liquidity grab, not as a break - this helps to filter out false BOS signals.
- One consistent trend state. Every break updates the trend, even if you have hidden that type of event on the chart, so the labels follow the same trend state.
1.2 Internal structure (way 1)
- Master switch (on by default - the indicator starts clean, with only the Internal structure shown).
- Its own timeframe, independent of the chart: build the Internal structure on M15 while you look at M5, for example.
- Four separate switches: bullish BOS, bullish CHoCH, bearish BOS, bearish CHoCH.
- Arrows are optional. When on, one arrow marks the breaking candle and a second one, in a different color, marks the entry candle. When off, you get a clean line with a label.
- Separate alerts for BOS and CHoCH.
1.3 Swing structure (way 2)
- Runs in parallel with Internal and independently of it: own master switch, own timeframe, own swing strength (default 50, versus 5 for Internal), own event switches and arrows option.
- Its own pair of colors (blue and magenta by default), so the two structures are never mixed up.
- Own alerts for Swing BOS and Swing CHoCH.
1.4 Colors - bullish and bearish colors for the Internal structure and the color of the entry arrow; Swing colors are set in its own block.
1.5 HH / HL / LH / LL
- Marks the swing points of the market: Higher High, Higher Low, Lower High, Lower Low.
- Own timeframe and swing strength for the whole group (a higher value gives fewer, cleaner points).
- Show only the points you need: each of the four can be switched on or off; two colors - bullish points and bearish points. Off by default.
1.6 IDM - Inducement
- The inducement is the first valid pullback inside an impulse - the small level behind which early traders' stops gather. When price takes it, the liquidity in front of the area of interest has been collected.
- Internal IDM and Swing IDM are separate: each has its own switch.
- Timeframe of the IDM - your choice. By default "As structure": the IDM is built from the impulses of its own structure, on that structure's timeframe. Or choose any other timeframe from M1 to MN1 (with its own swing strength) and the IDM is built there, independently of the structure.
- A level stays on the chart until a candle closes beyond it - then it is marked as taken. The label on the line shows when the level formed and how long it lived.
- Arrows are optional: with them off, all the information stays in the label on the line.
- Limit of active IDM levels (Internal and Swing counted separately), two colors (for bullish and bearish impulses) and an alert when an IDM is taken. Off by default.
Labels. The optional time in labels shows when each line or zone formed and how long it lived; compact labels hide the time and life to keep a busy chart clean. This works the same way in every module.
2. LIQUIDITY - where the stops are
Smart Money logic starts from liquidity: the price areas where many stop orders sit, and which price likes to take before it moves. Every liquidity module can be switched on separately and has its own timeframe.
2.1 EQH / EQL - Equal Highs / Equal Lows
- Finds two swing points at almost the same price - a classic liquidity pool - and links them with a line and a label.
- "Equal" is defined by you as a share of ATR: a smaller value is STRICTER.
- Own timeframe and own swing strength (usually smaller than for the main structure). Optional arrow and time label on the second point.
- With time in labels: when each of the two points formed and the gap between them.
2.2 BSL / SSL - liquidity of EVERY swing
- Every swing high holds buy-side liquidity (BSL), every swing low holds sell-side liquidity (SSL) - not only the equal ones.
- Two modes. Full history: all swings stay on the chart. Live levels: only the current period matters - day, week, month or year (you choose the horizon, matching your timeframe). A new level invalidates the previous untaken one (per side, or all together); invalid levels turn gray and get a cross; at the end of the period the stale ones disappear, optionally the worked ones too.
- When price takes a level the module tells you HOW: a SWEEP (price pierces the level but the candle closes back - a grab, expect a reversal) or a BOS (the candle closes beyond it - a real break).
- Every result also names the session in which it happened: Asia, Europe or America.
- Own timeframe, own swing strength, limit of active levels, colors for BSL and SSL, optional Vol / ATR confirmation (see 2.9).
2.3 PDH / PDL / PWH / PWL / PMH / PML
- High and low of the previous day, previous week and previous month, drawn as levels with labels. Each pair has its own switch and color.
- The month follows your broker's server calendar. Alerts when price sweeps or breaks a level.
2.4 TL - Trendline Liquidity
- Trendlines drawn through swing points. A rising line has the stops of buyers BELOW it (SSL type), a falling line has the stops of sellers ABOVE it (BSL type).
- Own timeframe and swing strength, a limit of active lines per direction, separate colors.
- When a candle breaks a line, the result is shown on the candle (optional arrow) or in the label on the line; optional Vol / ATR confirmation.
2.5 SH / ST - Stop Hunt / Turtle Soup
- A failed break of an extreme: price pokes beyond the high or low of the last N bars (an extreme set at least M bars ago) with a wick, then the candle closes back inside.
- You set N and M and the minimum wick overshoot (as a share of ATR). Bullish and bearish signals can be shown separately, in their own colors, on their own timeframe.
2.6 - 2.8 Session boxes: Asian and European, US timing
- A box that follows the high and low of the session while it runs and freezes when it ends. You enter session times yourself, in broker SERVER time (no automatic daylight-saving conversion), so the boxes fit any broker.
- The session extremes are liquidity: when price takes the top or the bottom of the box, you get a SWEEP or a BOS result for that boundary, with the session in which it happened.
- Draws the chosen number of past days at start. Arrows are optional: with them off, the result is shown in a separate label right at the boundary of the box.
- The US session has no box: its window is used only to name the session in the labels of all liquidity events.
2.9 Vol / ATR confirmation
- One optional filter shared by session boxes, BSL / SSL, TL and IDM. It adds a short mark to the label, for example Vol x1.8+ - ATR x0.9-.
- Vol: volume of the candle that took the level compared with the average of recent bars. ATR: range of that candle compared with ATR. A plus means your threshold was passed, a minus means it was not.
- Average period, volume multiplier, ATR period and ATR multiplier are yours to set.
- Volume means TICK volume (the number of price changes per bar) - the only volume MetaTrader 4 provides.
3. POINTS OF INTEREST - imbalances and blocks
The areas where price is likely to react. Zones are tracked after they appear and are removed once price has gone through them; limits for active zones keep the chart readable.
3.1 FVG - Fair Value Gap
- The three-candle gap between the first and third candle. Bullish and bearish gaps can be shown separately.
- Own timeframe, independent of the chart. Minimum gap size as a share of ATR (filters out noise), number of past bars to process, and how far to the right a zone is extended.
- Dark, semi-transparent colors, drawn BEHIND the candles.
3.2 IFVG - Inverted FVG
- When a candle BODY breaks through a gap, the gap changes its role: a broken bearish FVG becomes support, a broken bullish FVG becomes resistance.
- IFVG works on its own: the FVG module does not have to be switched on.
- Timeframe choice: any timeframe, or "As FVG" - it then takes only the timeframe and the minimum gap size from the FVG settings (the FVG module itself can stay off).
- Limit of active zones, own colors for bullish and bearish IFVG.
3.3 Volume Imbalance
- A gap between candle BODIES where the wicks still overlap - a softer cousin of the FVG.
- Own timeframe, minimum size in ATR, extension in bars, separate bullish / bearish switches and colors.
- Despite the name, it is calculated from price only. It does not use volume, so the volume type setting does not affect it.
3.4 Order Blocks - Internal and Swing
- Order Blocks for the Internal and the Swing structure, each with its own switch, limit of blocks and colors (Swing blocks are lighter, so you can tell them apart).
- Timeframe behaviour. By default "As structure": the blocks are born from the breaks of their own structure, on that structure's timeframe. Or choose any timeframe M1 - MN1 with its own swing strength - the blocks are then built there, independently of the structure.
3.5 Breaker / Mitigation Blocks
- An Order Block that failed. Breaker (BB): the block failed after the extreme of the impulse was updated. Mitigation (MB): it failed without updating that extreme. The zone flips its role - a broken bullish block becomes resistance, a broken bearish block becomes support.
- Internal and Swing separately; BB and MB can be shown independently, each with its own color.
- Timeframe: "As OB" (the timeframe of the matching Order Block) or any other timeframe - then the failure of the block is tracked and the zone is drawn on that timeframe.
4. FILTERS AND TOOLS
4.1 Premium / Discount / Equilibrium and Strong / Weak High / Low
- Splits the current range into Premium, Discount and Equilibrium, so you see at once whether price is expensive or cheap relative to the range - and marks the Strong and Weak High / Low of the trend.
- Timeframe: "As Swing structure" or any timeframe of your choice with its own swing strength. Own colors for each zone.
4.2 FTA - First Trouble Area
- The nearest opposing zone on the way of price: FTA UP is the nearest bearish zone above price (an obstacle for longs), FTA DN the nearest bullish zone below (an obstacle for shorts).
- Works with the zone modules you have switched on (Order Blocks, FVG, IFVG, Volume Imbalance, Breaker / Mitigation). It also appears in the chart panel.
5. SERVICE
5.1 Time in labels - three options: off, time of appearance, or time of appearance + life. One switch for the whole indicator. Compact labels (see 5.4) hide the time again.
5.2 Alerts - Alert window, Push, E-mail (off by default)
- Master switch and three channels: terminal Alert window, Push to your phone, E-mail.
- Choose event groups: structure (BOS / CHoCH, IDM, EQH / EQL), liquidity (BSL / SSL, previous levels, TL, SH / ST, session boxes), new zones, zone events (touch, bounce / break, approach), and confluence.
- Confluence: one alert when a liquidity sweep, a CHoCH and a zone touch happen within a window of bars you set.
- Quiet hours: nothing is sent at night - everything is delivered after the interval in ONE summary message.
- Per-minute limit per channel, extra sound file, Classic or Combined format (a details block with the level, price now and distance), optional short or full explanations of each event, a test message on start, and a journal option to check how alerts behave.
- Alerts are sent only for fresh events - never for the history - with a short pause after the start.
5.3 Chart panel (off by default)
- A draggable panel with a collapse button. Cards: TREND (D1 / H4 / H1 by swings, position in the range as Discount / Premium %, last structure event), LIQUIDITY (previous day high / low, nearest BSL / SSL, optionally week / month levels and the latest EQH / EQL), UNTOUCHED ZONES (the zones nearest to price, optionally the FTA), MARKET (server time, ATR, spread, optional countdown to the bar close), LATEST EVENTS (newest on top and highlighted).
- Switch each card on or off; collapsed, the panel can show one colored summary line. All colors are adjustable.
5.4 Clean chart
- Hides objects far from price (more than N x ATR) and old objects (older than N bars). Nothing is deleted - hidden objects return when price comes back.
- Compact labels remove the timeframe in brackets and the time from labels.
6. CHART COLOR SCHEME (optional, off by default)
- Applies a ready dark color scheme to the chart: background, text, grid, candles, bars, line, volumes and more - every color is editable.
- Your original chart colors come back when you remove the indicator.
Good to know
- All detection works on CLOSED candles. A swing is confirmed only after the chosen number of bars, so signals appear with a delay by design.
- A module whose timeframe is lower than the chart timeframe is not drawn; a message in the Experts log tells you why.
- When the indicator loads, it analyses the chosen number of past bars and waits until the history is loaded.
- Session times are entered in broker SERVER time; there is no automatic daylight-saving conversion.
- Everything is drawn as chart objects; the indicator has no buffers for use in Expert Advisors.
- With many modules on at once, a lower timeframe or a long history can load the chart. Switch on only what you use; the Clean chart options help.
- The headings in the input window ("== 1.1 ... ==" and similar) are only titles.
- This is an analysis tool, not a trading signal. A zone, a level or a confluence does not guarantee that price will react to it.
