indicator · on price · open source

Imbalance Zones

Deepwick · @deepwickv1Updated 2 Oct 2026▲ 0 users
Running…
Loading chart…

About

Imbalance Zones — permissive Fair Value Gaps (any 3-candle imbalance, no minimum size) so you see every unfilled area.

  • Green zone = bullish imbalance, red = bearish.
  • Optional minGapPct to suppress noise on instruments with micro-gaps.
  • Use when you want to see all imbalances, not just the SMC-grade ones.

Source code

//@version=5
indicator("Imbalance Zones", overlay=true)
minGapPct = input.float(0, "Min Gap %", minval=0, maxval=5, step=0.05)
extendBars = input.int(30, "Extend Bars", minval=5, maxval=200)
imbBull = low[0] > high[2]
imbBear = high[0] < low[2]
imbBullPct = (low[0] - high[2]) / close * 100
imbBearPct = (low[2] - high[0]) / close * 100
imbBull := imbBull and imbBullPct >= minGapPct
imbBear := imbBear and imbBearPct >= minGapPct
var float imbBullTop = na
var float imbBullBot = na
var float imbBearTop = na
var float imbBearBot = na
var int imbBullAge = 9999
var int imbBearAge = 9999
if imbBull
    imbBullTop := low[0]
    imbBullBot := high[2]
    imbBullAge := 0
if imbBear
    imbBearTop := low[2]
    imbBearBot := high[0]
    imbBearAge := 0
imbBullAge += 1
imbBearAge += 1
if imbBullAge > extendBars
    imbBullTop := na
    imbBullBot := na
if imbBearAge > extendBars
    imbBearTop := na
    imbBearBot := na
p_Bull_Imb_Top = plot(imbBullTop, "Bull Imb Top", color=color.green, style=plot.style_linebr)
p_Bull_Imb_Bot = plot(imbBullBot, "Bull Imb Bot", color=color.green, style=plot.style_linebr)
p_Bear_Imb_Top = plot(imbBearTop, "Bear Imb Top", color=color.red, style=plot.style_linebr)
p_Bear_Imb_Bot = plot(imbBearBot, "Bear Imb Bot", color=color.red, style=plot.style_linebr)
fill(p_Bull_Imb_Top, p_Bull_Imb_Bot, color=color.new(color.green, 90))
fill(p_Bear_Imb_Top, p_Bear_Imb_Bot, color=color.new(color.red, 90))

Comments

No comments yet.

Sign in to comment.