ICT Trading Concepts Explained — Order Flow, Liquidity & Market Structure

ICT Trading Concepts Explained — Order Flow, Liquidity & Market Structure

By HorizonAI Team

ICT (Inner Circle Trader) concepts have revolutionized how retail traders understand market movements. By analyzing how institutions trade, you can anticipate price movements and trade alongside smart money rather than against it.

This guide breaks down the core ICT concepts you need to know.

What is ICT Trading?

ICT trading is a methodology developed by Michael J. Huddleston (known as "Inner Circle Trader") that focuses on understanding how institutional traders and market makers move price.

Core principles:

  • Markets move from liquidity pool to liquidity pool
  • Price seeks to fill inefficiencies (gaps)
  • Institutional traders leave footprints you can identify
  • Time and price are connected (specific sessions matter)

ICT concepts complement traditional technical analysis. They explain why price moves to certain levels, not just that it moved there.

Market Structure

Market structure is the foundation of ICT analysis. It defines the current trend direction through a series of highs and lows.

Bullish Market Structure

  • Higher highs (HH) and higher lows (HL)
  • Each swing low holds above the previous swing low
  • Trend continues until a swing low is broken

Bearish Market Structure

  • Lower highs (LH) and lower lows (LL)
  • Each swing high forms below the previous swing high
  • Trend continues until a swing high is broken

Break of Structure (BOS)

A Break of Structure occurs when price breaks a significant swing point, confirming trend continuation:

  • Bullish BOS: Price breaks above a swing high
  • Bearish BOS: Price breaks below a swing low

Change of Character (CHoCH)

A Change of Character signals a potential trend reversal:

  • Bullish CHoCH: In a downtrend, price breaks above a swing high
  • Bearish CHoCH: In an uptrend, price breaks below a swing low
//@version=6
indicator("Market Structure", overlay=true)

// Simple swing high/low detection
length = input.int(5, "Swing Length")

swingHigh = ta.pivothigh(high, length, length)
swingLow = ta.pivotlow(low, length, length)

// Plot swing points
plotshape(swingHigh, "Swing High", shape.triangledown, location.abovebar, color.red, offset=-length)
plotshape(swingLow, "Swing Low", shape.triangleup, location.belowbar, color.green, offset=-length)

Liquidity

Liquidity is where stop losses and pending orders cluster. Institutions need liquidity to fill large positions without moving price against themselves.

Types of Liquidity

Buy-side Liquidity (BSL):

  • Located above swing highs
  • Contains buy stop orders and stop losses from shorts
  • Price moves up to grab this liquidity before reversing

Sell-side Liquidity (SSL):

  • Located below swing lows
  • Contains sell stop orders and stop losses from longs
  • Price moves down to grab this liquidity before reversing

Liquidity Pools

Equal highs and equal lows create obvious liquidity pools:

  • Equal Highs: Multiple touches at the same resistance = stop losses cluster above
  • Equal Lows: Multiple touches at the same support = stop losses cluster below

Key insight: Classic "support and resistance" levels are actually liquidity pools. When you think "this support will hold," institutions see "this is where I can fill my buy orders by triggering stop losses."

Liquidity Sweeps (Stop Hunts)

A liquidity sweep occurs when price briefly breaks a level to trigger stops, then reverses:

  1. Price approaches a level with clustered stops
  2. Price breaks the level (triggering stops)
  3. Smart money fills positions against the stopped-out traders
  4. Price reverses sharply
//@version=6
indicator("Liquidity Sweep Detection", overlay=true)

length = input.int(20, "Lookback")

// Identify potential liquidity levels
swingHigh = ta.highest(high, length)[1]
swingLow = ta.lowest(low, length)[1]

// Sweep detection
bullishSweep = low < swingLow and close > swingLow  // Swept lows but closed above
bearishSweep = high > swingHigh and close < swingHigh  // Swept highs but closed below

plotshape(bullishSweep, "Bullish Sweep", shape.labelup, location.belowbar, color.green)
plotshape(bearishSweep, "Bearish Sweep", shape.labeldown, location.abovebar, color.red)

Order Blocks

Order blocks are zones where institutional buying or selling occurred. When price returns to these zones, it often reacts.

Bullish Order Block

The last bearish (down) candle before a significant up move:

  • Identifies where institutions accumulated long positions
  • Price returning to this zone finds buying support

Bearish Order Block

The last bullish (up) candle before a significant down move:

  • Identifies where institutions distributed/shorted
  • Price returning to this zone finds selling pressure

How to Trade Order Blocks

  1. Identify the order block after a significant move
  2. Wait for price to return to the zone
  3. Look for confirmation (rejection candle, BOS on lower timeframe)
  4. Enter with tight stop below/above the order block

Pro tip: The most powerful order blocks form after a liquidity sweep. Look for: sweep of lows → bullish order block forms → strong reversal.

Fair Value Gaps (FVG)

A Fair Value Gap is a three-candle pattern where price moves so fast it leaves an unfilled gap—an "imbalance" that price tends to return to fill.

Bullish FVG

  • Candle 1: Any candle
  • Candle 2: Large bullish candle
  • Candle 3: Gap between candle 1's high and candle 3's low
  • The gap represents unfilled buy orders

Bearish FVG

  • Candle 1: Any candle
  • Candle 2: Large bearish candle
  • Candle 3: Gap between candle 1's low and candle 3's high
  • The gap represents unfilled sell orders

Trading FVGs

Price tends to return to "fill" these gaps before continuing. You can:

  • Enter longs when price retraces into a bullish FVG
  • Enter shorts when price retraces into a bearish FVG
  • Use the FVG as your stop loss zone (invalid if fully breached)
//@version=6
indicator("Fair Value Gaps", overlay=true)

// Bullish FVG: Gap between candle 1 high and candle 3 low
bullFVG = low > high[2]

// Bearish FVG: Gap between candle 1 low and candle 3 high
bearFVG = high < low[2]

// Highlight FVGs
bgcolor(bullFVG ? color.new(color.green, 85) : na)
bgcolor(bearFVG ? color.new(color.red, 85) : na)

Optimal Trade Entry (OTE)

The Optimal Trade Entry zone is the ideal retracement level for entering trades—typically the 61.8% to 78.6% Fibonacci retracement of a move.

How to use OTE:

  1. Identify a significant swing (impulse move)
  2. Draw Fibonacci from swing low to high (bullish) or high to low (bearish)
  3. Wait for price to retrace to the 61.8%-78.6% zone
  4. Look for confirmation (order block, FVG, rejection)
  5. Enter with stop beyond the swing point

Killzones (Trading Sessions)

ICT emphasizes trading during specific times when institutional activity is highest:

London Killzone

  • Time: 2:00 AM - 5:00 AM EST (7:00-10:00 GMT)
  • Characteristics: Often sets the high or low of the day
  • Best for: Trend initiation, breakouts

New York Killzone

  • Time: 7:00 AM - 10:00 AM EST
  • Characteristics: Highest volume, continuation or reversal of London move
  • Best for: Major moves, trend continuation

London Close

  • Time: 10:00 AM - 12:00 PM EST
  • Characteristics: Profit-taking, reversals common
  • Best for: Reversal setups, closing positions

Asian Session

  • Time: 7:00 PM - 12:00 AM EST
  • Characteristics: Range-bound, builds liquidity
  • Note: Often sets up the move for London

Pro tip: The highest probability trades occur when multiple concepts align: a liquidity sweep during a killzone that forms an order block at an OTE level.

Power of Three (AMD)

The Power of Three describes the three phases of institutional trading within a session:

1. Accumulation

  • Occurs early in the session (Asian or early London)
  • Price consolidates in a range
  • Smart money builds positions quietly

2. Manipulation

  • Quick move to sweep liquidity (stop hunt)
  • Creates fear/greed in retail traders
  • Smart money completes position building

3. Distribution

  • The "real" move of the session
  • Price trends in the intended direction
  • Smart money distributes to late-entry retail traders

Trading Power of Three:

  1. Identify the accumulation range
  2. Wait for the manipulation (liquidity sweep)
  3. Enter on the reversal for the distribution phase

Putting It All Together: ICT Trade Setup

Here's how to combine these concepts for a high-probability setup:

Bullish Setup:

  1. ✅ Market structure is bullish (HH, HL on HTF)
  2. ✅ Price sweeps sell-side liquidity (stops below recent low)
  3. ✅ Bullish order block forms at sweep level
  4. ✅ Price leaves a bullish FVG
  5. ✅ Entry on return to OB/FVG during killzone
  6. ✅ Stop below the order block/sweep low
  7. ✅ Target: buy-side liquidity (previous highs)

Bearish Setup:

  1. ✅ Market structure is bearish (LH, LL on HTF)
  2. ✅ Price sweeps buy-side liquidity (stops above recent high)
  3. ✅ Bearish order block forms at sweep level
  4. ✅ Price leaves a bearish FVG
  5. ✅ Entry on return to OB/FVG during killzone
  6. ✅ Stop above the order block/sweep high
  7. ✅ Target: sell-side liquidity (previous lows)

Building ICT Strategies with HorizonAI

HorizonAI can help you code these concepts:

Example prompts:

  • "Create an indicator that marks bullish and bearish order blocks"
  • "Build a strategy that enters long after a liquidity sweep of lows"
  • "Detect fair value gaps and plot them on the chart"
  • "Add killzone time filters to my strategy—only trade London and NY sessions"
Try it free →

FAQs

Is ICT trading profitable?

Like any methodology, profitability depends on execution, risk management, and discipline. ICT concepts provide a framework for understanding institutional behavior—your edge comes from properly applying them with sound money management.

Do I need to learn everything to start?

No. Start with market structure and liquidity. Once you can identify swing points and where stops cluster, add order blocks. Layer in FVGs and killzones as you progress.

Does ICT work on all markets?

ICT concepts apply to any liquid market: forex, indices, stocks, crypto. They work best on markets with significant institutional participation.

What timeframe should I use?

Use multiple timeframes. Identify structure and key levels on higher timeframes (Daily, 4H), then look for entries on lower timeframes (1H, 15m).

Summary

ICT trading concepts help you understand the "why" behind price movements:

  • Market Structure: Defines trend through swing highs/lows
  • Liquidity: Where stops cluster (the fuel for institutional moves)
  • Order Blocks: Zones of institutional buying/selling
  • Fair Value Gaps: Imbalances price tends to fill
  • OTE: Optimal retracement zone for entries
  • Killzones: High-probability trading windows
  • Power of Three: Accumulation → Manipulation → Distribution

The edge comes from understanding that price doesn't move randomly—it moves to seek liquidity.

Have questions about ICT concepts? Join our Discord to discuss with other traders!