In the modern market, relying on a single indicator often leads to false signals. High-probability trading requires confluence—the alignment of multiple factors before executing a trade.
The SMC + Delta Zones + Confluence indicator is an “All-in-One” solution ((by angkoon4763). It combines institutional Smart Money Concepts (SMC), abnormal Wick Pressure (Delta), and a Triple-Momentum filter into a single, cohesive visual tool.
1. Core Components Explained
Delta Zones (Wick Pressure)
Unlike traditional volume, this component analyzes “Wick Delta.” It calculates the pressure within price action wicks. When this pressure exceeds a specific Standard Deviation threshold (e.g., 4.0), the indicator identifies it as a liquidity “hunting” zone. These zones are drawn as rectangles on the chart to highlight where price was aggressively rejected.
Indicator Confluence System
The tool uses a weighted scoring system based on three classic momentum oscillators:
-
RSI: Relative Strength Index crossing over 30 or under 70.
-
CCI: Commodity Channel Index crossing the +/-100 levels.
-
Stochastic: The Slow %K crossing the 20 or 80 levels.
Instead of isolated signals, the code sums these events. If your minStrength is set to 2, the indicator will only highlight signals where at least two of these indicators agree simultaneously.
Smart Money Concepts (OB & Breakers)
The script automatically detects Order Blocks (OB) based on Swing Highs and Lows.
-
Order Block: A potential institutional accumulation or distribution zone drawn with a rectangle.
-
Breaker Block: If price violates an existing Order Block, the zone changes color (turning into a “Breaker”), signaling a potential shift in market structure.
2. Interface & Settings
You can fully customize the sensitivity of the detection through the following inputs:
| Parameter | Default | Description |
| ShowDelta / ShowSignals / ShowOB | 1 (On) | Toggles the visibility of each module. |
| StdDevLevel | 4.0 | Sensitivity for wick pressure zones. Higher = rarer/stronger. |
| minStrength | 2 | Minimum indicator confluence needed for a signal (1 to 3). |
| Rsi / Cci / Stoch Lengths | Varies | Standard period settings for the momentum filters. |
| MaxOBs | 5 | The maximum number of recent Order Blocks to display. |
| SwingLength | 10 | Sensitivity for identifying market structure pivots. |
3. How to Interpret the Signals
Combined Momentum Labels
The indicator prints specific text above/below the candles to tell you exactly what is aligning:
-
BUY ALL (R+C+S): Perfect confluence. RSI, CCI, and Stochastic all triggered at once.
-
BUY RSI+CCI: Momentum is shifting on two major oscillators.
-
BUY (Single): Shown only if your
minStrengthis set to 1.
High-Probability Setups
The most powerful trades occur when a Confluence Signal appears directly inside an Order Block or Delta Zone. This indicates that momentum is returning precisely at an institutional liquidity level.
4. ProBuilder Code
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
// ------------------------------------ // PRT_SMC+DeltaZones+Confluence // version = 1.0 // 08.01.2026 // Iván González @ www.prorealcode.com // Sharing ProRealTime knowledge // ------------------------------------ DEFPARAM DrawOnLastBarOnly = True // ------------------------------------ // INPUTS // ------------------------------------ ShowDelta = 1 ShowSignals = 1 ShowOB = 1 StdDevLevel = 4.0 StdDevLookback = 15 DeltaLookback = 250 RsiLength = 10 CciLength = 14 StochK = 14 StochD = 3 minStrength = 2 // Nivel de confluencia (1 a 3) SignalLookback = 250 MaxOBs = 5 SwingLength = 10 // ------------------------------------ // CÁLCULO DE DELTA (Presión de Mechas) // ------------------------------------ upTop = High - Close upBot = Open - Low dnTop = High - Open dnBot = Close - Low IF Close > Open THEN upDelta = upBot - upTop posDelta = MAX(0, upDelta) negDelta = 0 ELSE downDelta = dnTop - dnBot negDelta = MIN(0, -downDelta) posDelta = 0 ENDIF wickDevUp = STD[StdDevLookback](posDelta) * StdDevLevel wickDevDn = STD[StdDevLookback](ABS(negDelta)) * -StdDevLevel huntingUp = posDelta >= wickDevUp AND posDelta > 0 huntingDn = negDelta <= wickDevDn AND negDelta < 0 // Dibujado de Delta IF showDelta AND islastbarupdate THEN FOR i = 0 TO DeltaLookback DO idx = BarIndex - i IF huntingUp[i] THEN DRAWRECTANGLE(idx, MIN(Open[i], Close[i]), BarIndex, Low[i]) COLOURED(0, 255, 0, 50) BORDERCOLOR(0, 255, 0, 255) DRAWTEXT("▲", idx, Low[i]) ANCHOR(TOP, INDEX, VALUE) COLOURED(0, 255, 0, 255) ENDIF IF huntingDn[i] THEN DRAWRECTANGLE(idx, High[i], BarIndex, MAX(Open[i], Close[i])) COLOURED(255, 0, 0, 50) BORDERCOLOR(255, 0, 0, 255) DRAWTEXT("▼", idx, High[i]) ANCHOR(BOTTOM, INDEX, VALUE) COLOURED(255, 0, 0, 255) ENDIF NEXT ENDIF // ------------------------------------ // SEÑALES DE INDICADORES (CONFLUENCIA) // ------------------------------------ myRSI = RSI[RsiLength](Close) myCCI = CCI[CciLength](TypicalPrice) myStochK = Stochastic[StochK, 1](Close) myStochSlowK = Average[StochD](myStochK) myATR = AverageTrueRange[14](Close) // Condiciones de Cruce (Asignación numérica para suma) sigRsiBuy = 0 IF myRSI CROSSES OVER 30 THEN sigRsiBuy = 1 ENDIF sigCciBuy = 0 IF myCCI CROSSES OVER -100 THEN sigCciBuy = 1 ENDIF sigStoBuy = 0 IF myStochSlowK CROSSES OVER 20 THEN sigStoBuy = 1 ENDIF sigRsiSell = 0 IF myRSI CROSSES UNDER 70 THEN sigRsiSell = 1 ENDIF sigCciSell = 0 IF myCCI CROSSES UNDER 100 THEN sigCciSell = 1 ENDIF sigStoSell = 0 IF myStochSlowK CROSSES UNDER 80 THEN sigStoSell = 1 ENDIF // Cálculo de Fuerza de Confluencia sumSigBuy = sigRsiBuy + sigCciBuy + sigStoBuy sumSigSell = sigRsiSell + sigCciSell + sigStoSell // Dibujado de Señales Combinadas IF islastbarupdate AND showSignals THEN FOR i = 0 TO SignalLookback DO currentIdx = BarIndex - i // Lógica de COMPRA minStrength = min(3,max(1,minStrength)) IF sumSigBuy[i] >= minStrength THEN DRAWVLINE(currentIdx) STYLE(DOTTEDLINE, 1) COLOURED(0, 255, 0, 100) // Determinar texto según combinación IF sumSigBuy[i] = 3 THEN DRAWTEXT("BUY ALL (R+C+S)", currentIdx, Low[i] - myATR[i]) COLOURED(0, 255, 0) ELSIF sigRsiBuy[i] AND sigCciBuy[i] THEN DRAWTEXT("BUY RSI+CCI", currentIdx, Low[i] - myATR[i]) COLOURED(0, 255, 0) ELSIF sigRsiBuy[i] AND sigStoBuy[i] THEN DRAWTEXT("BUY RSI+STO", currentIdx, Low[i] - myATR[i]) COLOURED(0, 255, 0) ELSIF sigCciBuy[i] AND sigStoBuy[i] THEN DRAWTEXT("BUY CCI+STO", currentIdx, Low[i] - myATR[i]) COLOURED(0, 255, 0) ELSif sumSigBuy[i] = 1 then DRAWTEXT("BUY (Single)", currentIdx, Low[i] - myATR[i]) COLOURED(0, 255, 0) ENDIF ENDIF // Lógica de VENTA IF sumSigSell[i] >= minStrength THEN DRAWVLINE(currentIdx) STYLE(DOTTEDLINE, 1) COLOURED(255, 0, 0, 100) IF sumSigSell[i] = 3 THEN DRAWTEXT("SELL ALL (R+C+S)", currentIdx, High[i] + myATR[i]) COLOURED(255, 0, 0) ELSIF sigRsiSell[i] AND sigCciSell[i] THEN DRAWTEXT("SELL RSI+CCI", currentIdx, High[i] + myATR[i]) COLOURED(255, 0, 0) ELSIF sigRsiSell[i] AND sigStoSell[i] THEN DRAWTEXT("SELL RSI+STO", currentIdx, High[i] + myATR[i]) COLOURED(255, 0, 0) ELSIF sigCciSell[i] AND sigStoSell[i] THEN DRAWTEXT("SELL CCI+STO", currentIdx, High[i] + myATR[i]) COLOURED(255, 0, 0) ELSif sumSigSell[i] = 1 then DRAWTEXT("SELL (Single)", currentIdx, High[i] + myATR[i]) COLOURED(255, 0, 0) ENDIF ENDIF NEXT ENDIF // ------------------------------------ // SMC (ORDER BLOCKS & BREAKERS) - Sin cambios, optimizado // ------------------------------------ IF showOB THEN isSwingHigh = High[SwingLength] >= Highest[SwingLength*2+1](High) isSwingLow = Low[SwingLength] <= Lowest[SwingLength*2+1](Low) IF isSwingLow THEN FOR j = SwingLength TO SwingLength + 5 DO IF Close[j] < Open[j] THEN lastIdx = LastSet($obIndex) + 1 $obIndex[lastIdx] = BarIndex - j $obTop[lastIdx] = High[j] $obBot[lastIdx] = Low[j] $obType[lastIdx] = 1 $obStatus[lastIdx] = 0 BREAK ENDIF NEXT ENDIF IF isSwingHigh THEN FOR j = SwingLength TO SwingLength + 5 DO IF Close[j] > Open[j] THEN lastIdx = LastSet($obIndex) + 1 $obIndex[lastIdx] = BarIndex - j $obTop[lastIdx] = High[j] $obBot[lastIdx] = Low[j] $obType[lastIdx] = -1 $obStatus[lastIdx] = 0 BREAK ENDIF NEXT ENDIF lastArrIdx = LastSet($obIndex) startIdx = MAX(1, lastArrIdx - MaxOBs) IF islastbarupdate THEN FOR k = startIdx TO lastArrIdx DO thisIndex = $obIndex[k] thisTop = $obTop[k] thisBot = $obBot[k] thisType = $obType[k] thisStatus = $obStatus[k] isBreaker = 0 IF thisStatus <> 2 THEN IF thisType = 1 THEN IF Close < thisBot THEN $obStatus[k] = 1 isBreaker = 1 ENDIF IF isBreaker OR thisStatus = 1 THEN DRAWRECTANGLE(thisIndex, thisTop, BarIndex + 5, thisBot) COLOURED(139, 0, 0, 50) BORDERCOLOR(139, 0, 0, 255) ELSE DRAWRECTANGLE(thisIndex, thisTop, BarIndex + 5, thisBot) COLOURED(0, 255, 255, 50) BORDERCOLOR(0, 255, 255, 255) ENDIF ELSIF thisType = -1 THEN IF Close > thisTop THEN $obStatus[k] = 1 isBreaker = 1 ENDIF IF isBreaker OR thisStatus = 1 THEN DRAWRECTANGLE(thisIndex, thisTop, BarIndex + 5, thisBot) COLOURED(0, 0, 139, 50) BORDERCOLOR(0, 0, 139, 255) ELSE DRAWRECTANGLE(thisIndex, thisTop, BarIndex + 5, thisBot) COLOURED(255, 0, 0, 50) BORDERCOLOR(255, 0, 0, 255) ENDIF ENDIF ENDIF NEXT ENDIF ENDIF RETURN |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
