ABC Pattern

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #262650 quote
    Maricarmen
    Participant
    Veteran

    Buenas;

    Sería posible pasar este indicador de Tradingview a esta plataforma

    https://es.tradingview.com/script/RGNBIIcD-ABC-on-Recursive-Zigzag-Trendoscope/

    Muchas Gracias,

    #262689 quote
    robertogozzi
    Moderator
    Master
    #262715 quote
    Maricarmen
    Participant
    Veteran

    Hola:

    Ya lo había visto, pues antes de pedir algo suelo hacer un rastreo de lo que ofrece nuestra pagina par ver si ofrece algo de lo que yo quiero.

    No se ajusta, pero Gracias

    #262725 quote
    Iván González
    Moderator
    Legend

    buenos días. Aquí tienes el indicador:

    //-----------------------------------------------------------//
    //PRC_ABC on Recursive Zigzag (by Trendoscope)
    //version = 0
    //20.07.26
    //Ivan Gonzalez @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //-----------------------------------------------------------//
    // Detecta patrones ABC sobre un zigzag recursivo multinivel.
    // C debe retroceder entre el 61.8% y el 78.6% de la pata AB.
    // Proyecta entrada / stop / objetivo y sigue el estado de cada
    // patron hasta su cierre, con panel de estadisticas.
    // APLICAR SOBRE EL GRAFICO DE PRECIO (overlay).
    //-----------------------------------------------------------//
    defparam drawonlastbaronly = true
    //-----Inputs (parametros configurables)---------------------//
    zigzagLength = 13     //Longitud del zigzag de nivel 0
    maxLevel = 3          //Nivel maximo de zigzag recursivo (0 = solo base)
    minLevel = 0          //Nivel minimo a escanear
    maxPivots = 120       //Pivotes de nivel 0 usados en el escaneo
    
    
    baseMode = 1          //1 = ABC Extension, 2 = BC Retracement
    entryRatio = 0.3      //Ratio de entrada
    targetRatio = 1.0     //Ratio de objetivo
    stopRatio = 0.0       //Ratio de stop (<= 0)
    useLogScale = 0       //1 = calcular ratios en escala logaritmica
    
    
    tradeCondition = 0    //0 any, 1 trend, 2 reverse, 3 contracting, 4 expanding
    
    
    useCloseEntry = 1     //Usar cierre para detectar la entrada
    useCloseTarget = 1    //Usar cierre para detectar el objetivo
    useCloseStop = 1      //Usar cierre para detectar el stop
    
    
    maxPatterns = 10      //Patrones activos simultaneos
    showClosed = 1        //1 = mantener en gris los ultimos patrones cerrados
    maxClosed = 6         //Cuantos patrones cerrados se conservan en pantalla
    showZigzag = 0        //1 = dibujar el zigzag de nivel 0
    showBoxes = 1         //1 = dibujar las cajas de riesgo/objetivo
    showStats = 1         //1 = mostrar el panel de estadisticas
    //-----------------------------------------------------------//
    //-----Colores (RGB)-----------------------------------------//
    rBull = 0             //alcista
    gBull = 150
    bBull = 80
    rBear = 200           //bajista
    gBear = 50
    bBear = 50
    //-----------------------------------------------------------//
    //-----NIVEL 0: deteccion de pivotes-------------------------//
    // ZigzagLite marca pivote cuando el extremo de la ventana cae
    // en la barra actual (highestbars / lowestbars = 0).
    newPivot = 0
    
    
    IF barindex >= zigzagLength THEN
       hb = highestbars[zigzagLength](high)
       lb = lowestbars[zigzagLength](low)
    
    
       IF hb = 0 AND lb <> 0 THEN
          pvDir = 1
          pvVal = high
       ELSIF lb = 0 AND hb <> 0 THEN
          pvDir = -1
          pvVal = low
       ELSIF hb = 0 AND lb = 0 THEN
          pvDir = prevDir
          IF pvDir = 1 THEN
             pvVal = high
          ELSE
             pvVal = low
          ENDIF
       ELSE
          pvDir = 0
          pvVal = 0
       ENDIF
    
    
       IF pvDir <> 0 THEN
          IF pvDir = 1 THEN
             isHi = 1
          ELSE
             isHi = 0
          ENDIF
    
    
          // Primer pivote: sembrar sin filtro (learning 155)
          IF npv = 0 THEN
             $zI[0] = barindex
             $zP[0] = pvVal
             $zH[0] = isHi
             npv = 1
             newPivot = 1
          ELSE
             lastH = $zH[npv-1]
             IF lastH = isHi THEN
                // Misma direccion: extender el pivote vigente si mejora
                lastP = $zP[npv-1]
                IF isHi = 1 THEN
                   IF pvVal > lastP THEN
                      $zI[npv-1] = barindex
                      $zP[npv-1] = pvVal
                      newPivot = 1
                   ENDIF
                ELSE
                   IF pvVal < lastP THEN
                      $zI[npv-1] = barindex
                      $zP[npv-1] = pvVal
                      newPivot = 1
                   ENDIF
                ENDIF
             ELSE
                // Cambio de direccion: nuevo pivote
                $zI[npv] = barindex
                $zP[npv] = pvVal
                $zH[npv] = isHi
                npv = npv + 1
                newPivot = 1
             ENDIF
          ENDIF
          prevDir = pvDir
       ENDIF
    ENDIF
    //-----------------------------------------------------------//
    //-----ESCANEO MULTINIVEL (solo cuando hay pivote nuevo)-----//
    IF newPivot = 1 AND npv >= 4 THEN
    
    
       // Cargar la ventana de trabajo desde la capa de acumulacion
       startK = npv - maxPivots
       IF startK < 0 THEN
          startK = 0
       ENDIF
       nw = 0
       FOR k = startK TO npv - 1 DO
          $wI[nw] = $zI[k]
          $wP[nw] = $zP[k]
          $wH[nw] = $zH[k]
          nw = nw + 1
       NEXT
    
    
       FOR lev = 0 TO maxLevel DO
    
    
          IF nw >= 4 THEN
    
    
             // --- dir de cada pivote: +-1 retroceso, +-2 superacion ---
             FOR k = 0 TO nw - 1 DO
                IF $wH[k] = 1 THEN
                   $wD[k] = 1
                ELSE
                   $wD[k] = -1
                ENDIF
                IF k >= 2 THEN
                   prevSame = $wP[k-2]
                   IF $wH[k] = 1 THEN
                      IF $wP[k] > prevSame THEN
                         $wD[k] = 2
                      ENDIF
                   ELSE
                      IF $wP[k] < prevSame THEN
                         $wD[k] = -2
                      ENDIF
                   ENDIF
                ENDIF
             NEXT
    
    
             // --- Candidato ABC: los tres ultimos pivotes ---
             IF lev >= minLevel THEN
                cK = nw - 1
                bK = nw - 2
                aK = nw - 3
    
    
                pA = $wP[aK]
                pB = $wP[bK]
                pC = $wP[cK]
                iA = $wI[aK]
                iB = $wI[bK]
                iC = $wI[cK]
    
    
                legAB = abs(pB - pA)
                legBC = abs(pC - pB)
                abcRatio = 0
                IF legAB > 0 THEN
                   abcRatio = legBC / legAB
                ENDIF
    
    
                // Filtro de retroceso 0.618 - 0.786
                ratioOk = 0
                IF abcRatio >= 0.618 AND abcRatio <= 0.786 THEN
                   ratioOk = 1
                ENDIF
    
    
                // Filtro de condicion sobre |dir| de A y B
                aDir = abs($wD[aK])
                bDir = abs($wD[bK])
                condOk = 0
                IF tradeCondition = 0 THEN
                   condOk = 1
                ELSIF tradeCondition = 1 AND aDir = 1 AND bDir = 2 THEN
                   condOk = 1
                ELSIF tradeCondition = 2 AND aDir = 2 AND bDir = 1 THEN
                   condOk = 1
                ELSIF tradeCondition = 3 AND aDir = 1 AND bDir = 1 THEN
                   condOk = 1
                ELSIF tradeCondition = 4 AND aDir = 2 AND bDir = 2 THEN
                   condOk = 1
                ENDIF
    
    
                IF ratioOk = 1 AND condOk = 1 THEN
    
    
                   // Ya registrado? (mismo A y mismo B)
                   dup = 0
                   IF npt > 0 THEN
                      FOR q = 0 TO npt - 1 DO
                         IF $ptPA[q] = pA AND $ptPB[q] = pB THEN
                            dup = 1
                         ENDIF
                      NEXT
                   ENDIF
    
    
                   IF dup = 0 THEN
                      // Direccion: C por debajo de B = patron alcista
                      IF pB > pC THEN
                         pDirn = 1
                      ELSE
                         pDirn = -1
                      ENDIF
    
    
                      // --- Niveles de entrada / objetivo / stop ---
                      IF useLogScale = 1 AND pA > 0 AND pB > 0 AND pC > 0 THEN
                         lA = log(pA)
                         lB = log(pB)
                         lC = log(pC)
                         IF baseMode = 1 THEN
                            spanL = lB - lA
                            eLvl = exp(lC + spanL * entryRatio)
                            tLvl = exp(lC + spanL * targetRatio)
                            sLvl = exp(lC + spanL * stopRatio)
                         ELSE
                            spanL = lB - lC
                            eLvl = exp(lC + spanL * entryRatio)
                            tLvl = exp(lC + spanL * targetRatio)
                            sLvl = exp(lC + spanL * stopRatio)
                         ENDIF
                      ELSE
                         IF baseMode = 1 THEN
                            spanP = pB - pA
                         ELSE
                            spanP = pB - pC
                         ENDIF
                         eLvl = pC + spanP * entryRatio
                         tLvl = pC + spanP * targetRatio
                         sLvl = pC + spanP * stopRatio
                      ENDIF
    
    
                      // Solo se registra si el precio aun no alcanzo la entrada
                      inEntry = 0
                      IF close * pDirn < eLvl * pDirn THEN
                         inEntry = 1
                      ENDIF
    
    
                      IF inEntry = 1 THEN
                         // FIFO: si esta lleno, descartar el mas antiguo
                         IF npt >= maxPatterns AND npt > 0 THEN
                            FOR q = 0 TO npt - 2 DO
                               $ptIA[q] = $ptIA[q+1]
                               $ptPA[q] = $ptPA[q+1]
                               $ptIB[q] = $ptIB[q+1]
                               $ptPB[q] = $ptPB[q+1]
                               $ptIC[q] = $ptIC[q+1]
                               $ptPC[q] = $ptPC[q+1]
                               $ptDir[q] = $ptDir[q+1]
                               $ptEn[q] = $ptEn[q+1]
                               $ptSt[q] = $ptSt[q+1]
                               $ptTg[q] = $ptTg[q+1]
                               $ptStat[q] = $ptStat[q+1]
                               $ptRt[q] = $ptRt[q+1]
                            NEXT
                            npt = npt - 1
                         ENDIF
    
    
                         $ptIA[npt] = iA
                         $ptPA[npt] = pA
                         $ptIB[npt] = iB
                         $ptPB[npt] = pB
                         $ptIC[npt] = iC
                         $ptPC[npt] = pC
                         $ptDir[npt] = pDirn
                         $ptEn[npt] = eLvl
                         $ptSt[npt] = sLvl
                         $ptTg[npt] = tLvl
                         $ptStat[npt] = 0
                         $ptRt[npt] = abcRatio
                         npt = npt + 1
                      ENDIF
                   ENDIF
                ENDIF
             ENDIF
    
    
             // --- Construir el zigzag del nivel siguiente ---
             // Se conservan los pivotes que son extremo respecto a su
             // homologo anterior y posterior; los consecutivos del mismo
             // tipo se colapsan quedandose con el mas extremo.
             IF lev < maxLevel THEN
                nv = 0
                FOR k = 0 TO nw - 1 DO
                   keep = 1
                   IF k < nw - 1 THEN
                      IF k >= 2 THEN
                         prevSame = $wP[k-2]
                         IF $wH[k] = 1 THEN
                            IF $wP[k] < prevSame THEN
                               keep = 0
                            ENDIF
                         ELSE
                            IF $wP[k] > prevSame THEN
                               keep = 0
                            ENDIF
                         ENDIF
                      ENDIF
                      IF k + 2 <= nw - 1 THEN
                         nextSame = $wP[k+2]
                         IF $wH[k] = 1 THEN
                            IF $wP[k] < nextSame THEN
                               keep = 0
                            ENDIF
                         ELSE
                            IF $wP[k] > nextSame THEN
                               keep = 0
                            ENDIF
                         ENDIF
                      ENDIF
                   ENDIF
    
    
                   IF keep = 1 THEN
                      doPush = 1
                      IF nv > 0 THEN
                         prevH = $vH[nv-1]
                         IF prevH = $wH[k] THEN
                            doPush = 0
                            prevP = $vP[nv-1]
                            IF $wH[k] = 1 THEN
                               IF $wP[k] > prevP THEN
                                  $vP[nv-1] = $wP[k]
                                  $vI[nv-1] = $wI[k]
                               ENDIF
                            ELSE
                               IF $wP[k] < prevP THEN
                                  $vP[nv-1] = $wP[k]
                                  $vI[nv-1] = $wI[k]
                               ENDIF
                            ENDIF
                         ENDIF
                      ENDIF
                      IF doPush = 1 THEN
                         $vI[nv] = $wI[k]
                         $vP[nv] = $wP[k]
                         $vH[nv] = $wH[k]
                         nv = nv + 1
                      ENDIF
                   ENDIF
                NEXT
    
    
                // Volcar el nivel construido a la ventana de trabajo
                FOR k = 0 TO nv - 1 DO
                   $wI[k] = $vI[k]
                   $wP[k] = $vP[k]
                   $wH[k] = $vH[k]
                NEXT
                nw = nv
             ENDIF
          ENDIF
       NEXT
    ENDIF
    //-----------------------------------------------------------//
    //-----SEGUIMIENTO DE PATRONES ACTIVOS (cada barra)----------//
    IF npt > 0 THEN
       nAlive = 0
       FOR k = 0 TO npt - 1 DO
          pdr = $ptDir[k]
          stt = $ptStat[k]
    
    
          IF useCloseTarget = 1 THEN
             vTarget = close
          ELSIF pdr > 0 THEN
             vTarget = high
          ELSE
             vTarget = low
          ENDIF
    
    
          IF useCloseStop = 1 THEN
             vStop = close
          ELSIF pdr > 0 THEN
             vStop = low
          ELSE
             vStop = high
          ENDIF
    
    
          IF useCloseEntry = 1 THEN
             vEntry = close
          ELSIF pdr > 0 THEN
             vEntry = high
          ELSE
             vEntry = low
          ENDIF
    
    
          // Estado: 0 pendiente, 1 entrada alcanzada, 2 objetivo alcanzado
          newStat = stt
          IF vEntry * pdr >= $ptEn[k] * pdr THEN
             newStat = 1
          ENDIF
          IF vTarget * pdr >= $ptTg[k] * pdr THEN
             newStat = 2
          ENDIF
          IF newStat < stt THEN
             newStat = stt
          ENDIF
    
    
          // Cierre: stop tocado tras entrar, invalidacion antes de entrar,
          // u objetivo ya alcanzado
          closed = 0
          IF newStat > 0 AND vStop * pdr <= $ptSt[k] * pdr THEN
             closed = 1
          ENDIF
          IF newStat = 0 AND close * pdr <= $ptSt[k] * pdr THEN
             closed = 1
          ENDIF
          IF stt = 2 THEN
             closed = 1
          ENDIF
    
    
          $ptStat[k] = newStat
    
    
          IF closed = 1 THEN
             // Conservar el patron cerrado para seguir mostrandolo en gris.
             // No altera deteccion ni estadisticas: solo evita que el grafico
             // quede vacio cuando no hay ningun patron activo.
             IF showClosed = 1 AND maxClosed > 0 THEN
                IF nhs >= maxClosed THEN
                   FOR q = 0 TO nhs - 2 DO
                      $hsIA[q] = $hsIA[q+1]
                      $hsPA[q] = $hsPA[q+1]
                      $hsIB[q] = $hsIB[q+1]
                      $hsPB[q] = $hsPB[q+1]
                      $hsIC[q] = $hsIC[q+1]
                      $hsPC[q] = $hsPC[q+1]
                      $hsRt[q] = $hsRt[q+1]
                   NEXT
                   nhs = nhs - 1
                ENDIF
                $hsIA[nhs] = $ptIA[k]
                $hsPA[nhs] = $ptPA[k]
                $hsIB[nhs] = $ptIB[k]
                $hsPB[nhs] = $ptPB[k]
                $hsIC[nhs] = $ptIC[k]
                $hsPC[nhs] = $ptPC[k]
                $hsRt[nhs] = $ptRt[k]
                nhs = nhs + 1
             ENDIF
    
    
             // Registrar en el contador correspondiente
             IF pdr > 0 THEN
                IF newStat = 0 THEN
                   bullInvalid = bullInvalid + 1
                ELSIF newStat = 1 THEN
                   bullStopped = bullStopped + 1
                ELSE
                   bullDone = bullDone + 1
                ENDIF
             ELSE
                IF newStat = 0 THEN
                   bearInvalid = bearInvalid + 1
                ELSIF newStat = 1 THEN
                   bearStopped = bearStopped + 1
                ELSE
                   bearDone = bearDone + 1
                ENDIF
             ENDIF
          ELSE
             // Compactar: los vivos se reubican al principio del array
             $ptIA[nAlive] = $ptIA[k]
             $ptPA[nAlive] = $ptPA[k]
             $ptIB[nAlive] = $ptIB[k]
             $ptPB[nAlive] = $ptPB[k]
             $ptIC[nAlive] = $ptIC[k]
             $ptPC[nAlive] = $ptPC[k]
             $ptDir[nAlive] = $ptDir[k]
             $ptEn[nAlive] = $ptEn[k]
             $ptSt[nAlive] = $ptSt[k]
             $ptTg[nAlive] = $ptTg[k]
             $ptStat[nAlive] = $ptStat[k]
             $ptRt[nAlive] = $ptRt[k]
             nAlive = nAlive + 1
          ENDIF
       NEXT
       npt = nAlive
    ENDIF
    //-----------------------------------------------------------//
    //-----DIBUJO (solo en la ultima barra)----------------------//
    IF islastbarupdate THEN
    
    
       atrv = averagetruerange[14]
    
    
       // --- Zigzag de nivel 0 ---
       IF showZigzag = 1 AND npv >= 2 THEN
          firstK = npv - 30
          IF firstK < 1 THEN
             firstK = 1
          ENDIF
          FOR k = firstK TO npv - 1 DO
             drawsegment($zI[k-1], $zP[k-1], $zI[k], $zP[k]) coloured(130, 130, 130) style(dottedline, 1)
          NEXT
       ENDIF
    
    
       // --- Patrones ya cerrados (contexto historico, en gris) ---
       IF showClosed = 1 AND nhs > 0 THEN
          FOR k = 0 TO nhs - 1 DO
             drawsegment($hsIA[k], $hsPA[k], $hsIB[k], $hsPB[k]) coloured(150, 150, 150) style(dottedline, 1)
             drawsegment($hsIB[k], $hsPB[k], $hsIC[k], $hsPC[k]) coloured(150, 150, 150) style(dottedline, 1)
             drawtext("A", $hsIA[k], $hsPA[k]) coloured(150, 150, 150)
             drawtext("B", $hsIB[k], $hsPB[k]) coloured(150, 150, 150)
             drawtext("C", $hsIC[k], $hsPC[k]) coloured(150, 150, 150)
          NEXT
       ENDIF
    
    
       // --- Patrones activos ---
       IF npt > 0 THEN
          FOR k = 0 TO npt - 1 DO
             IF $ptDir[k] > 0 THEN
                pr = rBull
                pg = gBull
                pb = bBull
             ELSE
                pr = rBear
                pg = gBear
                pb = bBear
             ENDIF
    
    
             xA = $ptIA[k]
             yA = $ptPA[k]
             xB = $ptIB[k]
             yB = $ptPB[k]
             xC = $ptIC[k]
             yC = $ptPC[k]
    
    
             // Estructura A-B-C y linea guia A-C
             drawsegment(xA, yA, xB, yB) coloured(pr, pg, pb) style(line, 2)
             drawsegment(xB, yB, xC, yC) coloured(pr, pg, pb) style(line, 2)
             drawsegment(xA, yA, xC, yC) coloured(pr, pg, pb) style(dottedline, 1)
    
    
             // Etiquetas de los pivotes, desplazadas fuera de la vela
             IF yA < yB THEN
                offA = 0 - atrv * 0.4
                offB = atrv * 0.4
             ELSE
                offA = atrv * 0.4
                offB = 0 - atrv * 0.4
             ENDIF
             drawtext("A", xA, yA + offA) coloured(pr, pg, pb)
             drawtext("B", xB, yB + offB) coloured(pr, pg, pb)
             drawtext("C", xC, yC + offA) coloured(pr, pg, pb)
    
    
             // Ratio de retroceso en el punto medio de A-C
             midX = (xA + xC) / 2
             midY = (yA + yC) / 2
             rtx = round($ptRt[k] * 1000) / 1000
             drawtext("#rtx#", midX, midY) coloured(pr, pg, pb)
    
    
             // Cajas de riesgo y objetivo
             IF showBoxes = 1 THEN
                barDiff = min((xC - xA) / 2, 490)
                IF barDiff < 5 THEN
                   barDiff = 5
                ENDIF
                xEnd = xC + barDiff
                drawrectangle(xC, $ptEn[k], xEnd, $ptSt[k]) coloured(pr, pg, pb) fillcolor(200, 60, 60, 20)
                drawrectangle(xC, $ptEn[k], xEnd, $ptTg[k]) coloured(pr, pg, pb) fillcolor(60, 200, 60, 20)
             ENDIF
          NEXT
       ENDIF
    
    
       // --- Panel de estadisticas ---
       IF showStats = 1 THEN
          bullClosed = bullDone + bullStopped
          IF bullClosed > 0 THEN
             bullWin = bullDone * 100 / bullClosed
          ELSE
             bullWin = 0
          ENDIF
          bearClosed = bearDone + bearStopped
          IF bearClosed > 0 THEN
             bearWin = bearDone * 100 / bearClosed
          ELSE
             bearWin = 0
          ENDIF
    
    
          riskSpan = entryRatio - stopRatio
          IF riskSpan > 0 THEN
             rrv = round((targetRatio - entryRatio) / riskSpan * 100) / 100
          ELSE
             rrv = 0
          ENDIF
          bwin = round(bullWin * 10) / 10
          swin = round(bearWin * 10) / 10
    
    
          pX = -530
          pY = -30
          drawtext("ABC on Recursive Zigzag", pX, pY, sansserif, bold, 11) coloured(60, 60, 60) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
    
    
          drawtext("Invalid", pX + 150, pY - 22, sansserif, bold, 10) coloured(60, 60, 60) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("Stopped", pX + 225, pY - 22, sansserif, bold, 10) coloured(60, 60, 60) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("Complete", pX + 305, pY - 22, sansserif, bold, 10) coloured(60, 60, 60) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("Win %", pX + 375, pY - 22, sansserif, bold, 10) coloured(60, 60, 60) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("R:R", pX + 425, pY - 22, sansserif, bold, 10) coloured(60, 60, 60) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
    
    
          drawtext("Bullish", pX + 40, pY - 44, sansserif, bold, 10) coloured(rBull, gBull, bBull) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#bullInvalid#", pX + 150, pY - 44) coloured(rBull, gBull, bBull) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#bullStopped#", pX + 225, pY - 44) coloured(rBull, gBull, bBull) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#bullDone#", pX + 305, pY - 44) coloured(rBull, gBull, bBull) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#bwin#", pX + 375, pY - 44) coloured(rBull, gBull, bBull) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#rrv#", pX + 425, pY - 44) coloured(rBull, gBull, bBull) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
    
    
          drawtext("Bearish", pX + 40, pY - 66, sansserif, bold, 10) coloured(rBear, gBear, bBear) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#bearInvalid#", pX + 150, pY - 66) coloured(rBear, gBear, bBear) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#bearStopped#", pX + 225, pY - 66) coloured(rBear, gBear, bBear) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#bearDone#", pX + 305, pY - 66) coloured(rBear, gBear, bBear) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#swin#", pX + 375, pY - 66) coloured(rBear, gBear, bBear) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
          drawtext("#rrv#", pX + 425, pY - 66) coloured(rBear, gBear, bBear) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT)
       ENDIF
    ENDIF
    //-----------------------------------------------------------//
    return
    
    MEURUSDXXXX-1-hour.png MEURUSDXXXX-1-hour.png
    #262756 quote
    Maricarmen
    Participant
    Veteran

    Buenas Tardes:

    Es justo lo que quería, el gráfico que adjuntas lo dice todo, No tengo palabras para agradecerte todo lo que haces por todos nosotros.

    En días sucesivos voy a ver el funcionamiento del mismo, para ver toda su efectividad..

    Eres un fenómeno. Muchísimas gracias.

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

TradingView to ProRealTime Translation Center

New Reply
Author
author-avatar
Maricarmen @maricarmen Participant
Summary

This topic contains 4 replies,
has 3 voices, and was last updated by Maricarmen
1 day, 3 hours ago.

Topic Details
Forum: TradingView to ProRealTime Translation Center Forum
Started: 07/19/2026
Status: Active
Attachments: 1 files
Logo Logo
Loading...