Smart Money Concepts
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Smart Money Concepts
- This topic has 2 replies, 2 voices, and was last updated 1 month ago by
Ciccarelli Franco.
Viewing 3 posts - 1 through 3 (of 3 total)
-
-
11/15/2025 at 11:04 AM #253654
Mi sembra il più completo dei SMC, si può tradurre?
Grazie
11/19/2025 at 10:10 AM #253748Ecco qua. Nella sezione dei segnali ho inserito solo RSI e CCI, il resto lo lascio a te 🙂
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207// ------------------------------------// PRT_SMC+DeltaZones+Indicators// version = 0// 19.11.2025// Iván González @ www.prorealcode.com// Sharing ProRealTime knowledge// ------------------------------------DEFPARAM DrawOnLastBarOnly = True// ------------------------------------// INPUTS (Configuración por defecto)// ------------------------------------StdDevLevel = 3.5 // Multiplicador para detectar presión fuerte (Delta)StdDevLookback = 20 // Periodo de cálculo para la desviación del DeltaShowDelta = 1 // 1 = Mostrar Cajas Delta, 0 = OcultarDeltaLookback = 250 //RsiLength = 20 // Longitud del RSICciLength = 14 // Longitud del CCIStochK = 14 // Periodo %K del EstocásticoStochD = 3 // Periodo %D (suavizado) del EstocásticoSwingLength = 5 // Velas a izq/der para confirmar Swing (SMC)SignalLookback = 250 //MaxOBs = 10 // Número máximo de Order Blocks a dibujar// ------------------------------------// CÁLCULO DE DELTA (Presión de Mechas)// ------------------------------------UpTop = High - CloseUpBot = Open - LowDnTop = High - OpenDnBot = Close - Low// Cálculo de DeltaIF Close > Open THENUpDelta = UpBot - UpTopPosDelta = MAX(0, UpDelta)NegDelta = 0ELSEDownDelta = DnTop - DnBotNegDelta = MIN(0, -DownDelta) // Negativo para cálculo lógicoPosDelta = 0ENDIF// Desviación Estándar de los DeltasWickDevUp = STD[StdDevLookback](PosDelta) * StdDevLevelWickDevDn = STD[StdDevLookback](ABS(NegDelta)) * -StdDevLevel// Identificar Outliers (Presión fuerte)HuntingUp = PosDelta >= WickDevUp AND PosDelta > 0HuntingDn = NegDelta <= WickDevDn AND NegDelta < 0// Dibujado de Delta (Se redibuja en cada barra histórica visible)IF ShowDelta and islastbarupdate THEN// Iteramos hacia atrás para dibujar el histórico de Deltas relevanteFOR i = 0 TO DeltaLookback DOidx = BarIndex - i// Recuperamos valores históricosHistHuntingUp = HuntingUp[i]HistHuntingDn = HuntingDn[i]IF HistHuntingUp THEN// Caja Verde (Buy Pressure)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)ENDIFIF HistHuntingDn THEN// Caja Roja (Sell Pressure)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)ENDIFNEXTENDIF// ------------------------------------// SEÑALES DE INDICADORES (RSI, CCI, ESTOCÁSTICO)// ------------------------------------MyRSI = RSI[RsiLength](Close)MyCCI = CCI[CciLength](TypicalPrice)MyStochK = Stochastic[StochK, 1](Close)MyStochSlowK = Average[StochD](MyStochK)// Niveles fijosRsiOversold = 30RsiOverbought = 70CciOversold = -100CciOverbought = 100StochOversold = 20StochOverbought = 80// Condiciones de CruceRsiBuy = MyRSI CROSSES OVER RsiOversoldRsiSell = MyRSI CROSSES UNDER RsiOverboughtCciBuy = MyCCI CROSSES OVER CciOversoldCciSell = MyCCI CROSSES UNDER CciOverboughtStochBuy = MyStochSlowK CROSSES OVER StochOversoldStochSell = MyStochSlowK CROSSES UNDER StochOverbought// Lógica combinada (RSI + CCI)SignalBuy = RsiBuy AND CciBuySignalSell = RsiSell AND CciSellif islastbarupdate then// Dibujado de Señales (Histórico Reciente)FOR i = 0 TO SignalLookback DOidx = BarIndex - iIF SignalBuy[i] THENDRAWTEXT("BUY", idx, Low[i] - AverageTrueRange[14][i]) COLOURED(0, 255, 0)DRAWVLINE(idx) STYLE(DOTTEDLINE, 1) COLOURED(0, 255, 0, 100)ENDIFIF SignalSell[i] THENDRAWTEXT("SELL", idx, High[i] + AverageTrueRange[14][i]) COLOURED(255, 0, 0)DRAWVLINE(idx) STYLE(DOTTEDLINE, 1) COLOURED(255, 0, 0, 100)ENDIFNEXTendif// ------------------------------------// SMC (ORDER BLOCKS & BREAKERS)// ------------------------------------// Detección de Pivotes (Swing High / Swing Low)IsSwingHigh = High[SwingLength] >= Highest[SwingLength*2+1](High)IsSwingLow = Low[SwingLength] <= Lowest[SwingLength*2+1](Low)// Lógica de Creación de OBIF IsSwingLow THENFOR j = SwingLength TO SwingLength + 5 DOIF Close[j] < Open[j] THENLastIdx = LastSet($obIndex) + 1$obIndex[LastIdx] = BarIndex - j$obTop[LastIdx] = High[j]$obBot[LastIdx] = Low[j]$obType[LastIdx] = 1 // Bullish$obStatus[LastIdx] = 0 // ActiveBREAKENDIFNEXTENDIFIF IsSwingHigh THENFOR j = SwingLength TO SwingLength + 5 DOIF Close[j] > Open[j] THENLastIdx = LastSet($obIndex) + 1$obIndex[LastIdx] = BarIndex - j$obTop[LastIdx] = High[j]$obBot[LastIdx] = Low[j]$obType[LastIdx] = -1 // Bearish$obStatus[LastIdx] = 0 // ActiveBREAKENDIFNEXTENDIF// Lógica de Dibujado y Actualización de Estado (Breaker)LastArrIdx = LastSet($obIndex)StartIdx = MAX(1, LastArrIdx - MaxOBs)if islastbarupdate thenFOR k = StartIdx TO LastArrIdx DOThisIndex = $obIndex[k]ThisTop = $obTop[k]ThisBot = $obBot[k]ThisType = $obType[k]ThisStatus = $obStatus[k]IsBreaker = 0IF ThisStatus <> 2 THEN// Lógica Bullish OBIF ThisType = 1 THENIF Close < ThisBot THEN$obStatus[k] = 1IsBreaker = 1ENDIFIF IsBreaker OR ThisStatus = 1 THEN// Breaker Bajista (Rojo Oscuro)DRAWRECTANGLE(ThisIndex, ThisTop, BarIndex + 5, ThisBot) COLOURED(139, 0, 0, 50) BORDERCOLOR(139, 0, 0, 255)ELSE// OB Alcista Activo (Azul Claro)DRAWRECTANGLE(ThisIndex, ThisTop, BarIndex + 5, ThisBot) COLOURED(0, 255, 255, 50) BORDERCOLOR(0, 255, 255, 255)ENDIF// Lógica Bearish OBELSIF ThisType = -1 THENIF Close > ThisTop THEN$obStatus[k] = 1IsBreaker = 1ENDIFIF IsBreaker OR ThisStatus = 1 THEN// Breaker Alcista (Azul Oscuro)DRAWRECTANGLE(ThisIndex, ThisTop, BarIndex + 5, ThisBot) COLOURED(0, 0, 139, 50) BORDERCOLOR(0, 0, 139, 255)ELSE// OB Bajista Activo (Rojo)DRAWRECTANGLE(ThisIndex, ThisTop, BarIndex + 5, ThisBot) COLOURED(255, 0, 0, 50) BORDERCOLOR(255, 0, 0, 255)ENDIFENDIFENDIFNEXTendif// ------------------------------------RETURN11/19/2025 at 11:23 AM #253754Come faccio ad aggiungere il resto?
Grazie
-
AuthorPosts
Viewing 3 posts - 1 through 3 (of 3 total)
