indicator · on price · open source

Order Blocks (Both)

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

About

Order Blocks (Bullish + Bearish) on one chart — green zones are bullish OBs, red zones are bearish.

  • All bullish / bearish OB rules from earlier iterations combined.
  • Each zone extends for extendBars bars before expiring.
  • Best for clean multi-direction structure visualisation when both sides are active.

Source code

//@version=5
indicator("Order Blocks (Both)", overlay=true)
swing = input.int(5, "Swing Length", minval=2, maxval=50)
lookback = input.int(30, "OB Lookback", minval=5, maxval=100)
extendBars = input.int(30, "Extend Bars", minval=5, maxval=200)
ph = ta.pivothigh(high, swing, swing)
pl = ta.pivotlow(low, swing, swing)
var float lastPh = na
var float prevPh = na
var float lastPl = na
var float prevPl = na
var float obBullTop = na
var float obBullBot = na
var float obBearTop = na
var float obBearBot = na
var int obBullAge = 9999
var int obBearAge = 9999
if not na(ph)
    prevPh := lastPh
    lastPh := ph
if not na(pl)
    prevPl := lastPl
    lastPl := pl
if not na(lastPh) and not na(prevPh) and lastPh > prevPh
    found = false
    for i = 1 to math.min(lookback, swing * 4)
        if not found and close[i] < open[i]
            obBullTop := high[i]
            obBullBot := low[i]
            obBullAge := 0
            found := true
            break
if not na(lastPl) and not na(prevPl) and lastPl < prevPl
    found = false
    for i = 1 to math.min(lookback, swing * 4)
        if not found and close[i] > open[i]
            obBearTop := high[i]
            obBearBot := low[i]
            obBearAge := 0
            found := true
            break
obBullAge += 1
obBearAge += 1
if obBullAge > extendBars
    obBullTop := na
    obBullBot := na
if obBearAge > extendBars
    obBearTop := na
    obBearBot := na
p_Bull_OB_Top = plot(obBullTop, "Bull OB Top", color=color.green, style=plot.style_linebr)
p_Bull_OB_Bot = plot(obBullBot, "Bull OB Bot", color=color.green, style=plot.style_linebr)
p_Bear_OB_Top = plot(obBearTop, "Bear OB Top", color=color.red, style=plot.style_linebr)
p_Bear_OB_Bot = plot(obBearBot, "Bear OB Bot", color=color.red, style=plot.style_linebr)
fill(p_Bull_OB_Top, p_Bull_OB_Bot, color=color.new(color.green, 85))
fill(p_Bear_OB_Top, p_Bear_OB_Bot, color=color.new(color.red, 85))

Comments

No comments yet.

Sign in to comment.