← All ideas
#029Mean reversionIntraday

ICT: liquidity sweep, 4H FVG inversion and an inversion entry on 1-5 minutes

After a major liquidity sweep, price closes through a 4-hour FVG. A pullback into the 15-minute gap, market entry on the inversion of a 1-5 minute gap, stop above the 15-minute high, target at opposing liquidity.

Chart Fanatics · Dhesi Trades · Watch video

Markets

Futures, Indices

Timeframe

D1, H4, H1, M15, M5, M1

Data

OHLC, Session times

Rules

Partly formalised

Difficulty

Hard

Status

Untested

Some rules were added by us and are marked in the text.

TradingView has pitfalls
EasyLanguage has pitfalls
MetaTrader 5 has pitfalls

Idea in brief

Dhesi Trades trades NQ and ES futures using the ICT model: a chain of conditions across four timeframes. For a short, price first sweeps major liquidity above, for example a monthly high or equal highs. Then it closes down through a bullish 4-hour fair value gap, that is, "inverts" it. Inside the drop, a bearish FVG remains on the 15-minute chart. Price pulls back into it and on the way leaves a bullish gap on the 1- or 5-minute chart. When this gap is broken by a close to the downside, the author enters at market.

The stop goes above the 15-minute high of the pullback, the target at liquidity below. Half of the position is closed at the first technical target, and the stop on the remainder is moved to breakeven. Long mirrored.

The author does not name the exact gap boundaries, the "speed" of the inversion or what counts as equal highs. Below, these concepts are defined on bars and marked.

Why it might work

The author's logic. Above obvious highs sit the stops of sellers and the orders of those buying the breakout. When price takes them out and quickly falls through the gap left by the rally, buyers get trapped and the direction changes. Lower timeframes are needed to enter on a pullback with a clear stop rather than on a big 4-hour candle: inversions on the higher timeframe, according to the author, give direction, not an entry point.

The second part is about regime. The setup, according to the author, works well a few months a year, when VIX is rising and price reacts to monthly and weekly gaps. The author calls a quiet summer a low-probability time.

The author shows no tests. The ICT terms here describe the shape of the chart, not a proven mechanism.

Rules

Definitions on bars

// community (ICT): FVG on three candles k-2, k-1, k
MinGap     = 0.1 * ATR(14) of the same TF    // Finetiq: small gaps are ignored
BullFVG(k) = Low[k] - High[k-2] > MinGap     // zone from High[k-2] to Low[k]
BearFVG(k) = Low[k-2] - High[k] > MinGap     // zone from High[k] to Low[k-2]

// inversion: a close through the gap in the opposite direction
InvBull(g) = Close < g.Bottom            // author: a gap that price did not close all the way through does not count
InvBear(g) = Close > g.Top

SwingHigh(k) = High[k] above the High of two bars to the left and two to the right   // Finetiq
EqualHighs   = two SwingHighs within 20 bars with a difference <= 0.1 * ATR(14)       // Finetiq
OrderBlock   = the last bearish candle before the rally that left the gap            // community (ICT)

Steps 1-2. Liquidity sweep and inversion on H4 (short)

// author: pools = session and monthly highs, equal highs; monthly ones take priority
Pool  = prior month high | prior week high | EqualHighs on D1   // Finetiq: list of pools
Sweep = High on H4 > Pool                                  // author

FVG4 = last BullFVG on H4 in the move toward Pool          // Finetiq: the author mentions both the last and the earliest
Bias = SHORT IF InvBull(FVG4)
       AND inversion no later than 3 H4 bars after price enters FVG4   // author: within two or three 4-hour candles
       AND no H4 close above Pool after the Sweep                      // Finetiq
Bias is cancelled by an H4 close above the Sweep high or after 2 sessions   // Finetiq

Steps 3-4. Pullback into the 15-minute gap and entry

FVG15   = first BearFVG on M15 after the inversion of FVG4 // author: a gap inside the inversion
Retrace = High on M15 >= FVG15.Bottom                      // price returned into the gap
NOT (Close on M15 > FVG15.Top)                             // Finetiq: the pullback did not hold above the gap

// on the pullback, the lower TF (M1 or M5) leaves a bullish gap
LTF = BullFVG on M1 after price enters FVG15
      // author: prefer a gap that price has already bounced from
IF LTF has a bullish OrderBlock within 1 ATR(14) of M1
    require a close below both                             // author: two zones nearby, both must be broken

IF Bias = SHORT AND Retrace AND InvBull(LTF)
   AND Time between 10:00 and 15:00 ET                     // author: no trading before 10:00; end of window by Finetiq
    SELL SHORT AT NEXT BAR OPEN                            // author: always at market

StopLoss = M15 high since the start of the pullback + 1 tick   // author: above the current 15-minute high
Target   = nearest below: equal lows | session low since 09:30 | unfilled H1 or M15 gap   // author
IF (EntryPrice - Target) < 1.5 * (StopLoss - EntryPrice) THEN skip   // author: takes 1:1.5-1:2, does not take trades of 1R or worse; hard 1.5 threshold by Finetiq

Exit and daily rules

TP1 = nearest unfilled H1 or M15 FVG on the way to Target       // author: the first target is always technical
AT TP1: EXIT 50%, StopLoss = EntryPrice                         // author: always half, then breakeven
remainder: EXIT at Target                                       // author
EXIT everything at 15:55 ET                                     // Finetiq: for the intraday version

// author: if the remainder closed at breakeven after TP1, trading for the day is over
// 2 losses in a day: stop; a win and a loss: a third attempt is allowed
// no averaging down; do not chase a missed entry, wait for the 4H candle at 14:00 ET

Regime filter

// author: trade when VIX has "risen"
VolOK = Close(VIX, D1)[1] > SMA(Close(VIX, D1), 20)[1]     // Finetiq: rough proxy
// variant without VIX: ATR(14) of NQ daily bars above its 100-day average   // Finetiq

Parameters

Parameter Value Source
Instruments NQ, ES author
Timeframe chain D1 and H4, then M15, then M1 or M5 author
FVG gap between the first and third candle community (ICT)
Minimum gap 0.1 × ATR(14) Finetiq
Inversion close through the gap author
H4 inversion window up to 3 candles author (2-3)
Liquidity pools month, week, equal highs author, list by Finetiq
Equal highs difference ≤ 0.1 ATR within 20 bars Finetiq
Choice of 4H gap last one before the sweep Finetiq
Choice of minute gap one that has already worked author
Gap and order block nearby both broken author
Entry window 10:00-15:00 ET author (start), Finetiq (end)
Entry at market author
Stop above the 15-minute pullback high author
Minimum ratio 1.5R author (1:1.5-1:2), hard threshold by Finetiq
First target unfilled H1 or M15 gap author
Partial exit 50%, stop to breakeven author
Daily stop 2 losses author
Regime filter VIX above SMA(20) Finetiq (author: "VIX has risen")

What to test

  1. Is the cascade needed. Compare an entry on a 4H gap inversion without lower timeframes, an entry on a minute gap inversion without higher-timeframe context, and the full chain. The author claims minute inversions without context are noisy.
  2. Inversion speed. 2, 3 and 6 H4 bars: a slow inversion, according to the author, is worse.
  3. Which gap to take. The last 4H gap versus the earliest one in the move, a minute gap that has already worked versus the latest one.
  4. Minimum gap size. 0, 0.1 and 0.25 ATR. Without a threshold, minute bars produce dozens of gaps per hour, and almost any pullback will give a signal.
  5. Volatility filter. Results by month with and without the VIX filter. If the other months go negative without the filter rather than staying near zero, the filter is mandatory.
  6. Losing streaks. Calculate the maximum streak and drawdown on history and compare them with the daily limits of a prop account. At a 65% win rate the author calls streaks of 5-6 losses normal.
  7. Wide stop and costs. A stop above the 15-minute high on NQ can be 40-60 points. Measure trades in R with commission and a tick of slippage on the market entry.

Platform notes

TradingView (Pine Script)

  • Get higher timeframes via request.security(syminfo.tickerid, "240", expr[1], lookahead = barmerge.lookahead_on). Without [1], the H4 inversion will "see" the close of a bar that does not exist yet. Each timeframe and VIX takes a separate request, and the number of requests per script is limited.
  • Store gaps in arrays and update them on every bar. Evaluate an inversion by Close, not by High.
  • The 4-hour candle opening at 10:00 ET matters to the author. Check that the 4H bars on your symbol start at 18:00, 22:00, 02:00, 06:00, 10:00 and 14:00 ET. CFDs and symbols with a different session have different boundaries.
  • The stop and the partial exit on minute bars often fall into the same bar: use_bar_magnifier = true on paid plans.

MultiCharts and TradeStation (EasyLanguage)

  • Data streams: Data1 = 1 minute, Data2 = 15 minutes, Data3 = 240 minutes, Data4 = daily. Close of Data3 on Data1 gives the last closed value. A 240-minute bar is built from the start of the session template, so check that it aligns with the 10:00 and 14:00 ET grid.
  • Time is the bar's close time: the 4-hour candle that opened at 10:00 ET has Time = 1400.
  • Gap arrays across four data streams are cumbersome. Keep the last 5-10 gaps on each timeframe.
  • VIX is added as a fifth data stream, only if your data vendor provides the index. Otherwise use the NQ ATR variant.

MetaTrader 5 (MQL5)

  • All the required periods are standard (M1, M5, M15, H1, H4, D1). Take higher-timeframe values with shift 1.
  • MT5 builds H4 bars on the broker's server time. With a GMT+2 or GMT+3 server, the 4-hour candle boundaries do not align with 10:00 ET, and such a candle has to be assembled from hourly bars yourself.
  • Daily, weekly and monthly CFD highs are computed on server days. Short Sunday bars shift the liquidity pools and create false gaps on D1.
  • Not every broker offers VIX. Gaps on a CFD and on NQ futures do not match because of different trading hours and the basis.

Where the idea can break

  • According to the author, ten ICT traders will take ten different entries from the same picture. Our formalization is one of many.
  • The 65% win rate and reward-to-risk up to 1:10 come from manual trading that mixes prop accounts, 0DTE options and a live account. There is no trade report.
  • "VIX has risen" is given without a number. A test only on a calm period or only on a volatile one will give a false answer.
  • There are many knobs to tune: gap size, inversion window, equal highs, gap selection. Keep a holdout period.
  • With a wide stop and a fixed number of contracts, the prop account's daily limit can run out before the stop is hit.
  • The video advertises prop firms and platforms, and the payouts are not verified.

Sources

  • If You Only Watch One ICT Trading Video, Make It This (LIVE Trading)

    Chart Fanatics · Dhesi Trades · 2026-06-28

    • 02:22Liquidity pools: session, month, equal highs
    • 03:36The 4-hour FVG and its inversion after a sweep
    • 06:26Pullback into the 15-minute gap and inversion on 1-5 minutes
    • 07:44New 4-hour candle at 10:00 ET
    • 07:57Target and stop above the 15-minute high
    • 08:41Always half at the first target, then breakeven
    • 16:35Inversion within two or three 4-hour candles
    • 18:42The setup works when VIX has risen
    • 33:28No trading before 10:00 ET
    • 34:59FVG and order block nearby: both must be broken
    • 42:03Two losses: trading for the day is over
    • 47:24Which gap to take: one that has already worked
    • 48:47Entry always at market
    • 56:2565% win rate, streaks of 5-6 losses
    • 1:02:12Eight months on defense, four make the year

Author's claims

These figures and statements are the author's. We have not verified them.

  • The author estimates the win rate at about 65%. Streaks of five or six losses in a row, according to the author, happen several times a year.
  • The author usually takes an initial reward-to-risk of 1:1.5-1:2; in one of the examples reviewed it was 1:2.3. The remainder after the first target, according to the author, reaches 1:5-1:10 and brings in roughly three times more than the first part.
  • About eight months a year the author trades defensively, and the main result comes from about four months of high volatility. In one such period the author made almost a million dollars in a month.
  • Prop firm payouts of more than 2 million dollars, including more than 900 thousand from Apex in 25 days (video description and the host's words).
  • Live trade in the video: an ES short via 0DTE options, about 10 thousand dollars on the trade and 27 thousand for the day.

Related ideas

Updated: 2026-09-10