OPEN-SOURCE SCRIPT
CHoCH with Order Block Entry

//version=5
indicator("CHoCH with Order Block Entry", overlay=true)
// User Inputs
lookback = input.int(20, "Lookback for Highs/Lows", minval=1)
ob_zone_size = input.float(0.2, "Order Block Zone %", minval=0.1)
show_zones = input.bool(true, "Show Order Block Zones")
// Function to find recent swing high/low
var float lastHH = na
var float lastLL = na
var bool isBullChoch = false
var bool isBearChoch = false
hh = ta.highest(high, lookback)
ll = ta.lowest(low, lookback)
// Detect CHoCH
if high > lastHH and low < lastLL
isBullChoch := true
isBearChoch := false
lastHH := high
lastLL := low
else if low < lastLL and high < lastHH
isBullChoch := false
isBearChoch := true
lastHH := high
lastLL := low
// Order Block Logic
var float obHigh = na
var float obLow = na
var line obLineTop = na
var line obLineBottom = na
if isBullChoch
obHigh := high[1]
obLow := low[1]
if show_zones
obLineTop := line.new(bar_index, obHigh, bar_index + 10, obHigh, color=color.green, style=line.style_dashed)
obLineBottom := line.new(bar_index, obLow, bar_index + 10, obLow, color=color.green, style=line.style_dashed)
else if isBearChoch
obHigh := high[1]
obLow := low[1]
if show_zones
obLineTop := line.new(bar_index, obHigh, bar_index + 10, obHigh, color=color.red, style=line.style_dashed)
obLineBottom := line.new(bar_index, obLow, bar_index + 10, obLow, color=color.red, style=line.style_dashed)
// Entry Signal
buySignal = isBullChoch and close <= obHigh and close >= obLow
sellSignal = isBearChoch and close <= obHigh and close >= obLow
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
indicator("CHoCH with Order Block Entry", overlay=true)
// User Inputs
lookback = input.int(20, "Lookback for Highs/Lows", minval=1)
ob_zone_size = input.float(0.2, "Order Block Zone %", minval=0.1)
show_zones = input.bool(true, "Show Order Block Zones")
// Function to find recent swing high/low
var float lastHH = na
var float lastLL = na
var bool isBullChoch = false
var bool isBearChoch = false
hh = ta.highest(high, lookback)
ll = ta.lowest(low, lookback)
// Detect CHoCH
if high > lastHH and low < lastLL
isBullChoch := true
isBearChoch := false
lastHH := high
lastLL := low
else if low < lastLL and high < lastHH
isBullChoch := false
isBearChoch := true
lastHH := high
lastLL := low
// Order Block Logic
var float obHigh = na
var float obLow = na
var line obLineTop = na
var line obLineBottom = na
if isBullChoch
obHigh := high[1]
obLow := low[1]
if show_zones
obLineTop := line.new(bar_index, obHigh, bar_index + 10, obHigh, color=color.green, style=line.style_dashed)
obLineBottom := line.new(bar_index, obLow, bar_index + 10, obLow, color=color.green, style=line.style_dashed)
else if isBearChoch
obHigh := high[1]
obLow := low[1]
if show_zones
obLineTop := line.new(bar_index, obHigh, bar_index + 10, obHigh, color=color.red, style=line.style_dashed)
obLineBottom := line.new(bar_index, obLow, bar_index + 10, obLow, color=color.red, style=line.style_dashed)
// Entry Signal
buySignal = isBullChoch and close <= obHigh and close >= obLow
sellSignal = isBearChoch and close <= obHigh and close >= obLow
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
開源腳本
本著TradingView的真正精神,此腳本的創建者將其開源,以便交易者可以查看和驗證其功能。向作者致敬!雖然您可以免費使用它,但請記住,重新發佈程式碼必須遵守我們的網站規則。
免責聲明
這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。
開源腳本
本著TradingView的真正精神,此腳本的創建者將其開源,以便交易者可以查看和驗證其功能。向作者致敬!雖然您可以免費使用它,但請記住,重新發佈程式碼必須遵守我們的網站規則。
免責聲明
這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。