Smart Money Concepts

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #253654 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    Mi sembra il più completo dei SMC, si può tradurre?

    Grazie

    https://it.tradingview.com/script/imiMsl9D/

    #253748 quote
    Iván GonzálezIván González
    Moderator
    Legend
    Ecco qua. Nella sezione dei segnali ho inserito solo RSI e CCI, il resto lo lascio a te 🙂
    // ------------------------------------
    // 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 Delta
    ShowDelta = 1           // 1 = Mostrar Cajas Delta, 0 = Ocultar
    DeltaLookback = 250     //
    RsiLength = 20          // Longitud del RSI
    CciLength = 14          // Longitud del CCI
    StochK = 14             // Periodo %K del Estocástico
    StochD = 3              // Periodo %D (suavizado) del Estocástico
    SwingLength = 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 - Close
    UpBot = Open - Low
    DnTop = High - Open
    DnBot = Close - Low
    
    // Cálculo de Delta
    IF Close > Open THEN
       UpDelta = UpBot - UpTop
       PosDelta = MAX(0, UpDelta)
       NegDelta = 0
    ELSE
       DownDelta = DnTop - DnBot
       NegDelta = MIN(0, -DownDelta) // Negativo para cálculo lógico
       PosDelta = 0
    ENDIF
    
    // Desviación Estándar de los Deltas
    WickDevUp = STD[StdDevLookback](PosDelta) * StdDevLevel
    WickDevDn = STD[StdDevLookback](ABS(NegDelta)) * -StdDevLevel
    
    // Identificar Outliers (Presión fuerte)
    HuntingUp = PosDelta >= WickDevUp AND PosDelta > 0
    HuntingDn = 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 relevante
       FOR i = 0 TO DeltaLookback DO
          idx = BarIndex - i
          
          // Recuperamos valores históricos
          HistHuntingUp = 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)
          ENDIF
          
          IF 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)
          ENDIF
       NEXT
    ENDIF
    
    // ------------------------------------
    // 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 fijos
    RsiOversold = 30
    RsiOverbought = 70
    CciOversold = -100
    CciOverbought = 100
    StochOversold = 20
    StochOverbought = 80
    
    // Condiciones de Cruce
    RsiBuy = MyRSI CROSSES OVER RsiOversold
    RsiSell = MyRSI CROSSES UNDER RsiOverbought
    
    CciBuy = MyCCI CROSSES OVER CciOversold
    CciSell = MyCCI CROSSES UNDER CciOverbought
    
    StochBuy = MyStochSlowK CROSSES OVER StochOversold
    StochSell = MyStochSlowK CROSSES UNDER StochOverbought
    
    // Lógica combinada (RSI + CCI)
    SignalBuy = RsiBuy AND CciBuy
    SignalSell = RsiSell AND CciSell
    
    if islastbarupdate then
       // Dibujado de Señales (Histórico Reciente)
       FOR i = 0 TO SignalLookback DO
          idx = BarIndex - i
          IF SignalBuy[i] THEN
             DRAWTEXT("BUY", idx, Low[i] - AverageTrueRange[14][i]) COLOURED(0, 255, 0)
             DRAWVLINE(idx) STYLE(DOTTEDLINE, 1) COLOURED(0, 255, 0, 100)
          ENDIF
          
          IF SignalSell[i] THEN
             DRAWTEXT("SELL", idx, High[i] + AverageTrueRange[14][i]) COLOURED(255, 0, 0)
             DRAWVLINE(idx) STYLE(DOTTEDLINE, 1) COLOURED(255, 0, 0, 100)
          ENDIF
       NEXT
    endif
    // ------------------------------------
    // 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 OB
    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 // Bullish
             $obStatus[LastIdx] = 0 // Active
             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 // Bearish
             $obStatus[LastIdx] = 0 // Active
             BREAK
          ENDIF
       NEXT
    ENDIF
    
    // Lógica de Dibujado y Actualización de Estado (Breaker)
    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
             // Lógica Bullish OB
             IF ThisType = 1 THEN
                IF Close < ThisBot THEN
                   $obStatus[k] = 1
                   IsBreaker = 1
                ENDIF
                
                IF 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 OB
             ELSIF ThisType = -1 THEN
                IF Close > ThisTop THEN
                   $obStatus[k] = 1
                   IsBreaker = 1
                ENDIF
                
                IF 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)
                ENDIF
             ENDIF
          ENDIF
       NEXT
    endif
    // ------------------------------------
    RETURN
    
    #253754 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior
    Come faccio ad aggiungere il resto? Grazie
Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

TradingView to ProRealTime Translation Center

New Reply
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by Ciccarelli FrancoCiccarelli Franco
10 months ago.

Topic Details
Forum: TradingView to ProRealTime Translation Center Forum
Started: 11/15/2025
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...