bullishCHoCH = (bearishBOS and (high > prevHigh)) bearishCHoCH = (bullishBOS and (low < prevLow))
// Order Blocks with Volume Confirmation avgVolume = ta.sma(volume, 20) // 20-period average volume
bullishOB = (close[2] < open[2]) and (close > high[2]) and (volume > avgVolume) bearishOB = (close[2] > open[2]) and (close < low[2]) and (volume > avgVolume)
// Confirm entries with HTF Order Blocks htfOBConfluence = ((htfBullishOB and (close > htfLow)) or (htfBearishOB and (close < htfHigh)))
// Entry Confirmation with HTF Confluence bullishEntry = (bullishOB and (low <= high[2]) and htfOBConfluence) bearishEntry = (bearishOB and (high >= low[2]) and htfOBConfluence)
// Exit Targets bullishExit = (bullishEntry and (high >= prevHigh)) bearishExit = (bearishEntry and (low <= prevLow))