Smart Money Concepts

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

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

    Grazie

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

    #253748 quote
    Iván González
    Moderator
    Master
    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 Franco
    Participant
    Junior
    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.

TradingView to ProRealTime Translation Center

New Reply
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by Ciccarelli Franco
3 months, 1 week ago.

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