INDIC TOUT EN UN

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #265823 quote
    Géraud LaveissiereGéraud Laveissiere
    Participant
    Senior

    bonjour, est ce possiblel d’avoir un indicateur de niveaux avec : OHLC du jour , de la veille, de la semaine passée, du mois passé, en daily et daily -1, du POC , VAH VAL? que l’ on pourrait facilement decliquer/parametrer couleur et texte? Merci.

    #265829 quote
    Iván GonzálezIván González
    Moderator
    Legend

    Voici un indicateur tout-en-un. J’ai joint le fichier .itf contenant les variables configurées.

    //---------------------------------------------------------------
    //PRC_All-in-One Levels
    //version = 0
    //26.10.26
    //Iván González @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //--------------------------------------------------------------------//
    defparam drawonlastbaronly = true
    //--------------------------------------------------------------------//
    // SETTINGS (1 = show, 0 = hide)
    //--------------------------------------------------------------------//
    showToday = 1      // current day: open, high, low
    showPrevDay = 1    // previous day: open, high, low, close
    showPrevWeek = 1   // previous week: open, high, low, close
    showPrevMonth = 1  // previous month: open, high, low, close
    showVPToday = 1    // current day: POC, VAH, VAL (developing)
    showVPPrevDay = 1  // previous day: POC, VAH, VAL
    showProfile = 1    // volume profile histogram of each day shown above
    showLabels = 1     // text and price next to each level
    extBars = 15       // bars the levels extend to the right of the last candle
    lblShift = 8       // bars between the end of a level and its text (raise it if they overlap)
    rows = 50          // price rows used to build the daily volume profiles
    vaPct = 70         // value area, % of the day's volume
    profPct = 60       // widest row of the profile, % of the previous day's length
    //--------------------------------------------------------------------//
    // COLOURS (red, green, blue)
    //--------------------------------------------------------------------//
    tdR = 41    // current day
    tdG = 98
    tdB = 255
    pdR = 245   // previous day
    pdG = 124
    pdB = 0
    pwR = 156   // previous week
    pwG = 39
    pwB = 176
    pmR = 183   // previous month
    pmG = 28
    pmB = 28
    vtR = 0     // current day POC / VAH / VAL
    vtG = 137
    vtB = 123
    vpR = 97    // previous day POC / VAH / VAL
    vpG = 97
    vpB = 97
    //--------------------------------------------------------------------//
    // PREVIOUS WEEK AND PREVIOUS MONTH (last closed candle)
    //--------------------------------------------------------------------//
    TIMEFRAME(weekly, updateonclose)
    pwO = open
    pwH = high
    pwL = low
    pwC = close
    TIMEFRAME(monthly, updateonclose)
    pmO = open
    pmH = high
    pmL = low
    pmC = close
    TIMEFRAME(default)
    //--------------------------------------------------------------------//
    // FIRST BAR OF THE CURRENT DAY AND OF THE PREVIOUS DAY
    // A day starts when the platform's previous daily candle changes, so the
    // profiles cover the same day as DOpen/DHigh/DLow/DClose (with futures,
    // intradaybarindex can also restart at midnight in the middle of a session)
    //--------------------------------------------------------------------//
    pdOpen = DOpen(1)
    pdClose = DClose(1)
    once curStart = -1
    once prevStart = -1
    IF barindex > 0 AND (pdOpen <> pdOpen[1] OR pdClose <> pdClose[1]) THEN
       prevStart = curStart
       curStart = barindex
    ENDIF
    //--------------------------------------------------------------------//
    // LEVELS (drawn on the last bar only)
    //--------------------------------------------------------------------//
    IF islastbarupdate THEN
       // 0-2 current day, 3-6 previous day, 7-10 previous week, 11-14 previous month
       $lv[0] = DOpen(0)
       $lv[1] = DHigh(0)
       $lv[2] = DLow(0)
       $lv[3] = DOpen(1)
       $lv[4] = DHigh(1)
       $lv[5] = DLow(1)
       $lv[6] = DClose(1)
       $lv[7] = pwO
       $lv[8] = pwH
       $lv[9] = pwL
       $lv[10] = pwC
       $lv[11] = pmO
       $lv[12] = pmH
       $lv[13] = pmL
       $lv[14] = pmC
       FOR k = 0 TO 20 DO
          $on[k] = 0
       NEXT
       FOR k = 0 TO 2 DO
          $on[k] = showToday
       NEXT
       FOR k = 3 TO 6 DO
          $on[k] = showPrevDay
       NEXT
       FOR k = 7 TO 10 DO
          $on[k] = showPrevWeek
       NEXT
       FOR k = 11 TO 14 DO
          $on[k] = showPrevMonth
       NEXT
       //-----------------------------------------------------------------//
       // DAILY VOLUME PROFILES: 15-17 current day, 18-20 previous day
       // Built from the chart candles: the volume of each candle is spread
       // evenly over the price rows its range covers (use an intraday chart)
       //-----------------------------------------------------------------//
       isIntraday = GetTimeFrame < 86400
       // width of the widest profile row, in bars
       refLen = barindex - curStart + 1
       IF prevStart >= 0 THEN
          refLen = curStart - prevStart
       ENDIF
       profW = max(1, round(refLen * profPct / 100))
       FOR p = 0 TO 1 DO
          IF p = 0 THEN
             jFrom = 0
             jTo = barindex - curStart
             wanted = (showVPToday = 1) AND (curStart >= 0)
             x0 = curStart
             pR = vtR
             pG = vtG
             pB = vtB
          ELSE
             jFrom = barindex - curStart + 1
             jTo = barindex - prevStart
             wanted = (showVPPrevDay = 1) AND (prevStart >= 0)
             x0 = prevStart
             pR = vpR
             pG = vpG
             pB = vpB
          ENDIF
          IF wanted AND isIntraday THEN
             // price range of the day
             hiP = high[jFrom]
             loP = low[jFrom]
             FOR j = jFrom TO jTo DO
                hiP = max(hiP, high[j])
                loP = min(loP, low[j])
             NEXT
             stepP = (hiP - loP) / rows
             FOR i = 0 TO rows - 1 DO
                $vb[i] = 0
             NEXT
             totV = 0
             IF stepP > 0 THEN
                FOR j = jFrom TO jTo DO
                   vol = volume[j]
                   IF vol > 0 THEN
                      bH = high[j]
                      bL = low[j]
                      rngB = bH - bL
                      IF rngB > 0 THEN
                         // only the rows the candle touches
                         iLo = max(0, floor((bL - loP) / stepP))
                         iHi = min(rows - 1, floor((bH - loP) / stepP))
                         FOR i = iLo TO iHi DO
                            rLo = loP + i * stepP
                            ovl = min(bH, rLo + stepP) - max(bL, rLo)
                            IF ovl > 0 THEN
                               $vb[i] = $vb[i] + vol * ovl / rngB
                            ENDIF
                         NEXT
                      ELSE
                         // zero-range candle: all its volume goes to its own row
                         iD = min(rows - 1, max(0, floor((bL - loP) / stepP)))
                         $vb[iD] = $vb[iD] + vol
                      ENDIF
                      totV = totV + vol
                   ENDIF
                NEXT
             ENDIF
             // instruments without volume: no profile, no POC/VAH/VAL
             IF totV > 0 THEN
                // POC = row with the most volume
                iPoc = 0
                FOR i = 1 TO rows - 1 DO
                   IF $vb[i] > $vb[iPoc] THEN
                      iPoc = i
                   ENDIF
                NEXT
                // value area: grow from the POC, adding the bigger neighbouring row
                iUp = iPoc
                iDn = iPoc
                vaVol = $vb[iPoc]
                vaTarget = totV * vaPct / 100
                WHILE vaVol < vaTarget AND (iUp < rows - 1 OR iDn > 0) DO
                   vUp = 0
                   IF iUp < rows - 1 THEN
                      vUp = $vb[iUp + 1]
                   ENDIF
                   vDn = 0
                   IF iDn > 0 THEN
                      vDn = $vb[iDn - 1]
                   ENDIF
                   IF iUp < rows - 1 AND (vUp >= vDn OR iDn = 0) THEN
                      iUp = iUp + 1
                      vaVol = vaVol + vUp
                   ELSE
                      iDn = iDn - 1
                      vaVol = vaVol + vDn
                   ENDIF
                WEND
                base = 15 + 3 * p
                $lv[base] = loP + (iPoc + 0.5) * stepP
                $lv[base + 1] = loP + (iUp + 1) * stepP
                $lv[base + 2] = loP + iDn * stepP
                FOR k = base TO base + 2 DO
                   $on[k] = 1
                NEXT
                // histogram from the first bar of the day: value area rows darker
                IF showProfile = 1 THEN
                   maxV = $vb[iPoc]
                   FOR i = 0 TO rows - 1 DO
                      IF $vb[i] > 0 THEN
                         wB = max(1, round($vb[i] / maxV * profW))
                         yB = loP + i * stepP
                         IF i >= iDn AND i <= iUp THEN
                            DRAWRECTANGLE(x0, yB + stepP * 0.9, x0 + wB, yB) COLOURED(pR, pG, pB, 0) FILLCOLOR(pR, pG, pB, 90)
                         ELSE
                            DRAWRECTANGLE(x0, yB + stepP * 0.9, x0 + wB, yB) COLOURED(pR, pG, pB, 0) FILLCOLOR(pR, pG, pB, 35)
                         ENDIF
                      ENDIF
                   NEXT
                ENDIF
             ENDIF
          ENDIF
       NEXT
       //-----------------------------------------------------------------//
       // DRAWING
       //-----------------------------------------------------------------//
       xStart = barindex
       IF curStart >= 0 THEN
          xStart = curStart
       ENDIF
       xEnd = barindex + extBars
       xTxt = xEnd + lblShift   // DRAWTEXT centres the text on this point
       FOR k = 0 TO 20 DO
          lvl = $lv[k]
          IF $on[k] = 1 AND lvl <> undefined THEN
             IF k <= 2 THEN
                cR = tdR
                cG = tdG
                cB = tdB
             ELSIF k <= 6 THEN
                cR = pdR
                cG = pdG
                cB = pdB
             ELSIF k <= 10 THEN
                cR = pwR
                cG = pwG
                cB = pwB
             ELSIF k <= 14 THEN
                cR = pmR
                cG = pmG
                cB = pmB
             ELSIF k <= 17 THEN
                cR = vtR
                cG = vtG
                cB = vtB
             ELSE
                cR = vpR
                cG = vpG
                cB = vpB
             ENDIF
             // POC thicker, open and close dotted, the rest solid
             IF k = 15 OR k = 18 THEN
                DRAWSEGMENT(xStart, lvl, xEnd, lvl) COLOURED(cR, cG, cB) STYLE(line, 2)
             ELSIF k = 0 OR k = 3 OR k = 6 OR k = 7 OR k = 10 OR k = 11 OR k = 14 THEN
                DRAWSEGMENT(xStart, lvl, xEnd, lvl) COLOURED(cR, cG, cB) STYLE(dottedline, 1)
             ELSE
                DRAWSEGMENT(xStart, lvl, xEnd, lvl) COLOURED(cR, cG, cB) STYLE(line, 1)
             ENDIF
             IF showLabels = 1 THEN
                px = round(lvl / ticksize) * ticksize
                // label texts: rename them here if you like
                IF k = 0 THEN
                   DRAWTEXT("Day Open #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 1 THEN
                   DRAWTEXT("Day High #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 2 THEN
                   DRAWTEXT("Day Low #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 3 THEN
                   DRAWTEXT("PD Open #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 4 THEN
                   DRAWTEXT("PD High #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 5 THEN
                   DRAWTEXT("PD Low #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 6 THEN
                   DRAWTEXT("PD Close #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 7 THEN
                   DRAWTEXT("PW Open #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 8 THEN
                   DRAWTEXT("PW High #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 9 THEN
                   DRAWTEXT("PW Low #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 10 THEN
                   DRAWTEXT("PW Close #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 11 THEN
                   DRAWTEXT("PM Open #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 12 THEN
                   DRAWTEXT("PM High #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 13 THEN
                   DRAWTEXT("PM Low #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 14 THEN
                   DRAWTEXT("PM Close #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 15 THEN
                   DRAWTEXT("POC #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 16 THEN
                   DRAWTEXT("VAH #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 17 THEN
                   DRAWTEXT("VAL #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 18 THEN
                   DRAWTEXT("PD POC #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSIF k = 19 THEN
                   DRAWTEXT("PD VAH #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ELSE
                   DRAWTEXT("PD VAL #px#", xTxt, lvl, sansserif, standard, 9) COLOURED(cR, cG, cB)
                ENDIF
             ENDIF
          ENDIF
       NEXT
    ENDIF
    RETURN
    
    
    robertogozzi and Bernard13 thanked this post
    PRC_All-in-One-Levels.itf MESXXXX-15-minutos-1.png MESXXXX-15-minutos-1.png
    #265854 quote
    Géraud LaveissiereGéraud Laveissiere
    Participant
    Senior

    Bravo, merci ; Ivan

    #265855 quote
    Géraud LaveissiereGéraud Laveissiere
    Participant
    Senior

    Ivan, estil posible de placer les textes des 2 cotés pour + de visibilité?

    #265856 quote
    Géraud LaveissiereGéraud Laveissiere
    Participant
    Senior
    J'ai modifié la visibilité des niveaux 
    
    //---------------------------------------------------------------
    //PRC_All-in-One Levels
    //version = 0
    //26.10.26
    //Iván González @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //--------------------------------------------------------------------//
    defparam drawonlastbaronly = true
    //--------------------------------------------------------------------//
    // SETTINGS (1 = show, 0 = hide)
    //--------------------------------------------------------------------//
    showToday = 1      // current day: open, high, low
    showPrevDay = 1    // previous day: open, high, low, close
    showPrevWeek = 1   // previous week: open, high, low, close
    showPrevMonth = 1  // previous month: open, high, low, close
    showVPToday = 1    // current day: POC, VAH, VAL (developing)
    showVPPrevDay = 1  // previous day: POC, VAH, VAL
    showProfile = 1    // volume profile histogram of each day shown above
    showLabels = 1     // text and price next to each level
    extBars = 15       // bars the levels extend to the right of the last candle
    lblShift = 8       // bars between the end of a level and its text (raise it if they overlap)
    rows = 50          // price rows used to build the daily volume profiles
    vaPct = 70         // value area, % of the day's volume
    profPct = 60       // widest row of the profile, % of the previous day's length
    //--------------------------------------------------------------------//
    // COLOURS (red, green, blue)
    //--------------------------------------------------------------------//
    tdR = 41    // current day
    tdG = 98
    tdB = 255
    pdR = 245   // previous day
    pdG = 124
    pdB = 0
    pwR = 156   // previous week
    pwG = 39
    pwB = 176
    pmR = 183   // previous month
    pmG = 28
    pmB = 28
    vtR = 0     // current day POC / VAH / VAL
    vtG = 137
    vtB = 123
    vpR = 97    // previous day POC / VAH / VAL
    vpG = 97
    vpB = 97
    //--------------------------------------------------------------------//
    // PREVIOUS WEEK AND PREVIOUS MONTH (last closed candle)
    //--------------------------------------------------------------------//
    TIMEFRAME(weekly, updateonclose)
    pwO = open
    pwH = high
    pwL = low
    pwC = close
    TIMEFRAME(monthly, updateonclose)
    pmO = open
    pmH = high
    pmL = low
    pmC = close
    TIMEFRAME(default)
    //--------------------------------------------------------------------//
    // FIRST BAR OF THE CURRENT DAY AND OF THE PREVIOUS DAY
    // A day starts when the platform's previous daily candle changes, so the
    // profiles cover the same day as DOpen/DHigh/DLow/DClose (with futures,
    // intradaybarindex can also restart at midnight in the middle of a session)
    //--------------------------------------------------------------------//
    pdOpen = DOpen(1)
    pdClose = DClose(1)
    once curStart = -1
    once prevStart = -1
    IF barindex > 0 AND (pdOpen <> pdOpen[1] OR pdClose <> pdClose[1]) THEN
       prevStart = curStart
       curStart = barindex
    ENDIF
    //--------------------------------------------------------------------//
    // LEVELS (drawn on the last bar only)
    //--------------------------------------------------------------------//
    IF islastbarupdate THEN
       // 0-2 current day, 3-6 previous day, 7-10 previous week, 11-14 previous month
       $lv[0] = DOpen(0)
       $lv[1] = DHigh(0)
       $lv[2] = DLow(0)
       $lv[3] = DOpen(1)
       $lv[4] = DHigh(1)
       $lv[5] = DLow(1)
       $lv[6] = DClose(1)
       $lv[7] = pwO
       $lv[8] = pwH
       $lv[9] = pwL
       $lv[10] = pwC
       $lv[11] = pmO
       $lv[12] = pmH
       $lv[13] = pmL
       $lv[14] = pmC
       FOR k = 0 TO 20 DO
          $on[k] = 0
       NEXT
       FOR k = 0 TO 2 DO
          $on[k] = showToday
       NEXT
       FOR k = 3 TO 6 DO
          $on[k] = showPrevDay
       NEXT
       FOR k = 7 TO 10 DO
          $on[k] = showPrevWeek
       NEXT
       FOR k = 11 TO 14 DO
          $on[k] = showPrevMonth
       NEXT
       //-----------------------------------------------------------------//
       // DAILY VOLUME PROFILES: 15-17 current day, 18-20 previous day
       // Built from the chart candles: the volume of each candle is spread
       // evenly over the price rows its range covers (use an intraday chart)
       //-----------------------------------------------------------------//
       isIntraday = GetTimeFrame < 86400
       // width of the widest profile row, in bars
       refLen = barindex - curStart + 1
       IF prevStart >= 0 THEN
          refLen = curStart - prevStart
       ENDIF
       profW = max(1, round(refLen * profPct / 100))
       FOR p = 0 TO 1 DO
          IF p = 0 THEN
             jFrom = 0
             jTo = barindex - curStart
             wanted = (showVPToday = 1) AND (curStart >= 0)
             x0 = curStart
             pR = vtR
             pG = vtG
             pB = vtB
          ELSE
             jFrom = barindex - curStart + 1
             jTo = barindex - prevStart
             wanted = (showVPPrevDay = 1) AND (prevStart >= 0)
             x0 = prevStart
             pR = vpR
             pG = vpG
             pB = vpB
          ENDIF
          IF wanted AND isIntraday THEN
             // price range of the day
             hiP = high[jFrom]
             loP = low[jFrom]
             FOR j = jFrom TO jTo DO
                hiP = max(hiP, high[j])
                loP = min(loP, low[j])
             NEXT
             stepP = (hiP - loP) / rows
             FOR i = 0 TO rows - 1 DO
                $vb[i] = 0
             NEXT
             totV = 0
             IF stepP > 0 THEN
                FOR j = jFrom TO jTo DO
                   vol = volume[j]
                   IF vol > 0 THEN
                      bH = high[j]
                      bL = low[j]
                      rngB = bH - bL
                      IF rngB > 0 THEN
                         // only the rows the candle touches
                         iLo = max(0, floor((bL - loP) / stepP))
                         iHi = min(rows - 1, floor((bH - loP) / stepP))
                         FOR i = iLo TO iHi DO
                            rLo = loP + i * stepP
                            ovl = min(bH, rLo + stepP) - max(bL, rLo)
                            IF ovl > 0 THEN
                               $vb[i] = $vb[i] + vol * ovl / rngB
                            ENDIF
                         NEXT
                      ELSE
                         // zero-range candle: all its volume goes to its own row
                         iD = min(rows - 1, max(0, floor((bL - loP) / stepP)))
                         $vb[iD] = $vb[iD] + vol
                      ENDIF
                      totV = totV + vol
                   ENDIF
                NEXT
             ENDIF
             // instruments without volume: no profile, no POC/VAH/VAL
             IF totV > 0 THEN
                // POC = row with the most volume
                iPoc = 0
                FOR i = 1 TO rows - 1 DO
                   IF $vb[i] > $vb[iPoc] THEN
                      iPoc = i
                   ENDIF
                NEXT
                // value area: grow from the POC, adding the bigger neighbouring row
                iUp = iPoc
                iDn = iPoc
                vaVol = $vb[iPoc]
                vaTarget = totV * vaPct / 100
                WHILE vaVol < vaTarget AND (iUp < rows - 1 OR iDn > 0) DO
                   vUp = 0
                   IF iUp < rows - 1 THEN
                      vUp = $vb[iUp + 1]
                   ENDIF
                   vDn = 0
                   IF iDn > 0 THEN
                      vDn = $vb[iDn - 1]
                   ENDIF
                   IF iUp < rows - 1 AND (vUp >= vDn OR iDn = 0) THEN
                      iUp = iUp + 1
                      vaVol = vaVol + vUp
                   ELSE
                      iDn = iDn - 1
                      vaVol = vaVol + vDn
                   ENDIF
                WEND
                base = 15 + 3 * p
                $lv[base] = loP + (iPoc + 0.5) * stepP
                $lv[base + 1] = loP + (iUp + 1) * stepP
                $lv[base + 2] = loP + iDn * stepP
                FOR k = base TO base + 2 DO
                   $on[k] = 1
                NEXT
                // histogram from the first bar of the day: value area rows darker
                IF showProfile = 1 THEN
                   maxV = $vb[iPoc]
                   FOR i = 0 TO rows - 1 DO
                      IF $vb[i] > 0 THEN
                         wB = max(1, round($vb[i] / maxV * profW))
                         yB = loP + i * stepP
                         IF i >= iDn AND i <= iUp THEN
                            DRAWRECTANGLE(x0, yB + stepP * 0.9, x0 + wB, yB) COLOURED(pR, pG, pB, 0) FILLCOLOR(pR, pG, pB, 90)
                         ELSE
                            DRAWRECTANGLE(x0, yB + stepP * 0.9, x0 + wB, yB) COLOURED(pR, pG, pB, 0) FILLCOLOR(pR, pG, pB, 35)
                         ENDIF
                      ENDIF
                   NEXT
                ENDIF
             ENDIF
          ENDIF
       NEXT
       //-----------------------------------------------------------------//
       // DRAWING
       //-----------------------------------------------------------------//
       xStart = barindex
       IF curStart >= 0 THEN
          xStart = curStart
       ENDIF
       xEnd = barindex + extBars
       xTxt = xEnd + lblShift   // DRAWTEXT centres the text on this point
       FOR k = 0 TO 20 DO
          lvl = $lv[k]
          IF $on[k] = 1 AND lvl <> undefined THEN
             IF k <= 2 THEN
                cR = tdR
                cG = tdG
                cB = tdB
             ELSIF k <= 6 THEN
                cR = pdR
                cG = pdG
                cB = pdB
             ELSIF k <= 10 THEN
                cR = pwR
                cG = pwG
                cB = pwB
             ELSIF k <= 14 THEN
                cR = pmR
                cG = pmG
                cB = pmB
             ELSIF k <= 17 THEN
                cR = vtR
                cG = vtG
                cB = vtB
             ELSE
                cR = vpR
                cG = vpG
                cB = vpB
             ENDIF
             // POC thicker, open and close dotted, the rest solid
             IF k = 15 OR k = 18 THEN
                DRAWSEGMENT(xStart, lvl, xEnd, lvl) COLOURED(cR, cG, cB) STYLE(line, 2)
             ELSIF k = 0 OR k = 3 OR k = 6 OR k = 7 OR k = 10 OR k = 11 OR k = 14 THEN
                DRAWSEGMENT(xStart, lvl, xEnd, lvl) COLOURED(cR, cG, cB) STYLE(dottedline, 1)
             ELSE
                DRAWSEGMENT(xStart, lvl, xEnd, lvl) COLOURED(cR, cG, cB) STYLE(line, 1)
             ENDIF
             IF showLabels = 1 THEN
                px = round(lvl / ticksize) * ticksize
                // label texts: rename them here if you like
                IF k = 0 THEN
                   DRAWTEXT("Day Open #px#", xTxt, lvl, sansserif, bold, 12) COLOURED(250,250,250)
                ELSIF k = 1 THEN
                   DRAWTEXT("Day High #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 2 THEN
                   DRAWTEXT("Day Low #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 3 THEN
                   DRAWTEXT("PD Open #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 4 THEN
                   DRAWTEXT("PD High #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 5 THEN
                   DRAWTEXT("PD Low #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 6 THEN
                   DRAWTEXT("PD Close #px#", xTxt, lvl, sansserif, bold, 12) COLOURED(250,250,250)
                ELSIF k = 7 THEN
                   DRAWTEXT("PW Open #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 8 THEN
                   DRAWTEXT("PW High #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 9 THEN
                   DRAWTEXT("PW Low #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 10 THEN
                   DRAWTEXT("PW Close #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 11 THEN
                   DRAWTEXT("PM Open #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 12 THEN
                   DRAWTEXT("PM High #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 13 THEN
                   DRAWTEXT("PM Low #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 14 THEN
                   DRAWTEXT("PM Close #px#", xTxt, lvl, sansserif, bold, 12) COLOURED(250,250,250)
                ELSIF k = 15 THEN
                   DRAWTEXT("POC #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSIF k = 16 THEN
                   DRAWTEXT("VAH #px#", xTxt, lvl, sansserif, bold, 12) COLOURED(250,250,250)
                ELSIF k = 17 THEN
                   DRAWTEXT("VAL #px#", xTxt, lvl, sansserif, bold, 12) COLOURED(250,250,250)
                ELSIF k = 18 THEN
                   DRAWTEXT("PD POC #px#", xTxt, lvl, sansserif, bold, 12) COLOURED(250,250,250)
                ELSIF k = 19 THEN
                   DRAWTEXT("PD VAH #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ELSE
                   DRAWTEXT("PD VAL #px#", xTxt, lvl, sansserif, bold,  12) COLOURED(250,250,250)
                ENDIF
             ENDIF
          ENDIF
       NEXT
    ENDIF
    RETURN
    
    
    
    
Viewing 5 posts - 1 through 5 (of 5 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

INDIC TOUT EN UN


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Géraud LaveissiereGéraud Laveissiere
10 hours, 43 minutes ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 10/26/2026
Status: Active
Attachments: 2 files
ProRealCode ProRealCode
Loading...