créer un niveau sur 50% des meche

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #261815 quote
    Géraud Laveissiere
    Participant
    Average

    Bonjour est il possible de créer un indic qui trace un trait au niveau 50% des meches et qui disparait quand ce niveau a été touché? Merci à tous.

    #261822 quote
    Iván González
    Moderator
    Legend

    voici

    //--------------------------------------------
    // PRC_50%WickLevels (Unmitigated)
    //--------------------------------------------
    
    DEFPARAM DRAWONLASTBARONLY = TRUE
    
    // --- Paramètres ---
    lookback  = 200   // nombre de bougies à surveiller en arrière
    extension = 0     // bougies de projection supplémentaires à droite
    
    IF islastbarupdate THEN
       maxLook = MIN(lookback, barindex - 1)
       
       FOR i = 1 TO maxLook DO
          niveau = (high[i] + low[i]) / 2
          
          // Parcours du prix sur les i bougies postérieures
          minPost = Lowest[i](low)
          maxPost = Highest[i](high)
          
          // Niveau NON touché -> on trace le trait
          IF niveau < minPost OR niveau > maxPost THEN
             DRAWSEGMENT(barindex - i, niveau, barindex + extension, niveau) COLOURED(255,140,0)
          ENDIF
       NEXT
    ENDIF
    
    RETURN
    
    
    #261823 quote
    Géraud Laveissiere
    Participant
    Average

    Merci Ivan, mais cela ne marche pas. Toutes les meches de bougie cloturée ( up ou down) doivent avoir leur niveau 50% affiché. si lookback =200, alors on devrait voir sur le graphique de nombreux niveaux. as tu une solution?

    #261824 quote
    Géraud Laveissiere
    Participant
    Average

    cet itf montre les 50% des bougies et non les meches.

    #261826 quote
    Nicolas
    Keymaster
    Legend

    Bonjour Géraud,

    Que signifie 50% des mèches svp ? Pourriez vous nous adresser un schéma, un exemple tracé sur une graphique sur une seule bougie pour bien comprendre ce qu’il faut programmer ? ça sera plus rapide ! Merci par avance.

    #261853 quote
    Géraud Laveissiere
    Participant
    Average

    voi en H4 les derniers niveaux 50% des meches.Merci Nicolas

    Capture-decran-2026-06-09-220446.jpg Capture-decran-2026-06-09-220446.jpg
    #261858 quote
    Nicolas
    Keymaster
    Legend

    J’ai compris maintenant, c’est toujours plus précis et clair avec une image qui illustre ce qu’on a dans la tête ! 😉

    Voici le code qui enregistre puis trace les niveaux qui n’ont pas encore étaient franchis par le prix. On limite la quantité de niveaux avec le paramètre “MaxLevels” en tête de code.

    // =============================================
    // 50% des mèches - niveaux actifs jusqu'au touch
    // =============================================
    DEFPARAM DrawOnLastBarOnly = true
    
    MaxLevels = 400
    
    maxLevels = MaxLevels
    
    once nLevels = 0
    
    if IsLastBarUpdate then
       
       nLevels   = 0
       totalBars = BarIndex
       
       // --- Remplissage des arrays sur tout l'historique
       for i = totalBars downto 0 do
          offset = totalBars-i
          bTop   = max(open[offset], close[offset])
          bBot   = min(open[offset], close[offset])
          wHigh  = high[offset] - bTop
          wLow   = bBot - low[offset]
          
          // Mèche haute
          if wHigh > 0 and nLevels < maxLevels then
             $levelVal[nLevels]    = bTop + wHigh / 2
             $levelBar[nLevels]    = barindex[offset]
             $levelType[nLevels]   = 1
             $levelActive[nLevels] = 1
             nLevels = nLevels + 1
          endif
          
          // Mèche basse
          if wLow > 0 and nLevels < maxLevels then
             $levelVal[nLevels]    = bBot - wLow / 2
             $levelBar[nLevels]    = barindex[offset]
             $levelType[nLevels]   = -1
             $levelActive[nLevels] = 1
             nLevels = nLevels + 1
          endif
       next
       
       // --- Test : le niveau a-t-il été touché APRÈS sa bougie source ?
       for j = 0 to nLevels - 1 do
          if $levelActive[j] = 1 then
             srcOffset = barindex - $levelBar[j]
             lv        = $levelVal[j]
             lType     = $levelType[j]
             
             for k = 1 to srcOffset - 1 do
                if lType = 1 then
                   if high[k] >= lv then
                      $levelActive[j] = 0
                   endif
                else
                   if low[k] <= lv then
                      $levelActive[j] = 0
                   endif
                endif
             next
          endif
       next
       
       // --- Dessin des niveaux encore actifs
       for j = 0 to nLevels - 1 do
          if $levelActive[j] = 1 then
             srcBar = $levelBar[j]
             lv     = $levelVal[j]
             lType  = $levelType[j]
             
             if lType = 1 then
                DRAWSEGMENT(srcBar, lv, barindex, lv) COLOURED(30, 144, 255, 210) STYLE(Line, 1)
             else
                DRAWSEGMENT(srcBar, lv, barindex, lv) COLOURED(255, 140, 0, 210) STYLE(Line, 1)
             endif
          endif
       next
       
    endif
    
    RETURN
    


    niveaux-de-prix-et-cassure.png niveaux-de-prix-et-cassure.png
Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.

créer un niveau sur 50% des meche


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Summary

This topic contains 6 replies,
has 3 voices, and was last updated by Nicolas
3 days, 13 hours ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 06/08/2026
Status: Active
Attachments: 2 files
Logo Logo
Loading...