ICT Setup 04 Indicator: Liquidity Sweep Plus Fair Value Gap

Written by Dominic Walsh · Published · Last updated

The ict setup 04 indicator waits for three conditions to line up on the same bar. A swing level has to be swept, a fair value gap has to open, and price has to close back on the right side of the level it just took. Any one of those alone is common. All three together is the setup, and that is the only thing this tool marks.

This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.

Platforms MT4 (.ex4) + MT5 (.ex5)
Chart window Main price chart
Plots 4: BUY, SELL, Swing Low, Swing High
Alerts popup
Inputs 5

Everything the ICT Setup 04 Indicator draws

BUY and SELL arrows in lime and red mark bars where all three conditions hold.

Swing Low uses a dodger blue dot beneath each confirmed pivot low.

Swing High uses an orange dot above each confirmed pivot high.

The pivot dots draw at half the signal offset, so they stay visually subordinate to the arrows.

  • BUY: arrow, lime, width 2, arrow code 233
  • SELL: arrow, red, width 2, arrow code 234
  • Swing Low: arrow, dodger blue, width 1, arrow code 159
  • Swing High: arrow, orange, width 1, arrow code 159
ICT setup 04 indicator on EURUSD H1 with swing dots and three-condition signal arrows
ICT setup 04 indicator on EURUSD H1 with swing dots and three-condition signal arrows

From price to plot

Marking the swing levels first

pivotIdx takes i + `InpSwingLen`, stepping back so the candidate pivot has newer bars to be tested against. Confirmed pivots write BufSwingLow at low[pivotIdx] minus half the offset, or BufSwingHigh above the high. Those levels become swingLowVal and swingHighVal, the references everything else measures against.

Detecting the sweep

The code walks back through the lookback window checking whether any bar traded beyond the level. sweptLow turns true when low[sb] drops under swingLowVal. That alone proves nothing, because price runs past old levels constantly. It is a precondition, not a signal.

Demanding a gap and a recovery on the same bar

bullFvg needs low[i] – high[i+2] to reach minGap, which is `InpMinFvgPoints` converted to price. That is a genuine three-candle gap rather than one long bar. closeBack then needs close[i] above swingLowVal, so price has returned over the level it swept. Only with the sweep, the gap and the recovery all true does BufBuy get written at low[i] minus off. An anchor-time guard resets sig to 1 whenever time[sig] runs at or past time[0], keeping the alert reading a settled bar.

Making the output useful

Dots are structure and arrows are signals. A chart can carry many dots and no arrows at all.

An arrow means the level got taken, a gap opened and price came back, all inside the lookback window.

Rarity is the point. If arrows appear often, the gap threshold is probably too small for the instrument.

The gap that triggered the signal sits two bars behind the arrow, so look left of the marker to find it.

Alert channels in this build: popup, one message per closed bar.

One channel is wired: a terminal popup under `InpAlertOn`, on by default. The anchor-time guard keeps the alert pointed at a settled bar rather than the one still forming, so the message follows a completed signal and repeats at most once per bar.

Every ICT Setup 04 Indicator input

Core settings

Setting What it does Default
InpSwingLen Pivot lookback bars. Pivot lookback in bars, default `3`. This controls how many swing levels exist to sweep in the first place. 3
InpLookback Bars back to scan for sweep + FVG. How far back the sweep and gap scan reaches, default `30` bars. Widen it on slower charts. 30
InpMinFvgPoints Minimum FVG gap in points. Smallest gap that counts, default `5` points. This is the setting to change per instrument, since 5 points means very different things on EURUSD and gold. 5

Display settings

Setting What it does Default
InpArrowOffsetP Arrow vertical offset (points). Vertical gap for the signal arrows, default `10` points; the pivot dots use half of it. 10

Alert settings

Setting What it does Default
InpAlertOn Alert on new signal. on
ICT setup 04 indicator inputs: InpSwingLen, InpLookback and InpMinFvgPoints
ICT setup 04 indicator inputs: InpSwingLen, InpLookback and InpMinFvgPoints

Where the defaults make sense

The setup needs enough movement to open a real gap, which favours H1 and above on the majors. EURUSD H1 is the reference chart, where a 5 point minimum filters noise without blocking valid gaps. On gold or an index the point value differs enough that `InpMinFvgPoints` needs raising, or every small imbalance qualifies. On M5 gaps are frequent and mostly meaningless.

What it gets wrong

Three conditions in one window makes signals rare, and rare means small samples. Judging the tool on a handful of arrows will mislead you.

The gap threshold is a raw point count, so a setting tuned on EURUSD is far too permissive on an instrument with a different tick size.

A sweep confirms only that price traded beyond a level. Whether resting orders were actually taken is an assumption the code cannot check.

Copy the compiled ICT Setup 04 Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.

Related on forexmt4systems.com: ICT Style Strategy.

Background reading on the method behind the ICT Setup 04 Indicator: Consolidated Tape System on Wikipedia, Eveningstar at Investopedia.

Download the ICT Setup 04 Indicator for MT4 and MT5

The zip holds the compiled ICT Setup 04 Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. Enter your email below and the download link arrives in your inbox.

Download this indicator free

Enter your email and the file is yours. You also get the full MT4 and MT5 library.

  • 1,380+ indicators
  • MT4 and MT5 files
  • No spam, unsubscribe any time

FAQ

What three conditions does an ICT Setup 04 BUY arrow need?

A swept swing low, where some bar in the lookback traded under swingLowVal. A bullish fair value gap, where low[i] minus high[i+2] reaches `InpMinFvgPoints`. And a close back above swingLowVal on the signal bar. All three must hold together. Drop any one and no arrow prints.

Should I change InpMinFvgPoints for gold?

Yes. The default `5` is a raw point count tuned for a 5-digit forex pair. On gold, indices or crypto CFDs the point value differs by orders of magnitude, so 5 points becomes almost no gap at all. Raise it until the arrows correspond to imbalances you can actually see on the chart.

Why do Swing Low dots appear without any arrow?

Because pivots and signals are separate things. The dots mark every confirmed pivot the `InpSwingLen` test finds, which happens often. The arrow needs that level to be swept, a qualifying gap to open, and price to close back over the level. Most pivots never get all three.

What does InpLookback bound?

The backwards scan for both the sweep and the gap, default `30` bars. It limits how far in the past a sweep can have happened and still count toward a signal on the current bar. Widen it on slower timeframes where the sweep and the recovery are further apart; narrow it to demand a tighter sequence.

Are results guaranteed?

No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the ICT Setup 04 Indicator as one input. Always backtest before trading live.

Category: this is part of our Smart Money collection. Also, truly, browse more Smart Money for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.

External references

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

How we build, test and correct every tool: Editorial & Testing Policy. Trading carries risk; see the disclaimer.

Leave a Comment