indicateur de volume sans clôture

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #214817 quote
    DavidZ
    Participant
    New

    Bonjour,

    Je cherche à coder un indicateur qui montre les volumes sans tenir compte de ceux de la barre de clôture sur les UT M15 et M5. En effet, les volumes de clôture étant très supérieurs à ceux des autres barres, les volumes sont très peu lisibles sur les graphiques intraday (toutes les barres sont écrasées sauf celles de clôture ; confer capture d’écran). Comme il n’est pas possible de modifier l’échelle des ordonnées de l’indicateur de volume fourni par défaut, j’ai créé mon propre indicateur avec le code ci-dessous. Cela fonctionne bien, sauf sur les graphiques M5 qui ne comportent pas 102 barres par jour (parfois, il n’y a que 101, 100 ou encore moins de barres en raison de trous dans les cotations). Avez-vous une idée pour résoudre ce problème ?

    Merci d’avance.

    #214818 quote
    DavidZ
    Participant
    New
    // Indicateur de volumes sans les clôtures
    
    // Codes couleurs :
    // Vert (80, 210, 80)
    // Rouge (220, 100, 100)
    // Noir (0, 0, 0)
    // Bleu ciel (0, 127, 255, 25)
    
    DEFPARAM CALCULATEONLASTBARS = 400
    
    // Définition des variables
    MyVolume = Average[50](Volume)
    Hausse = close >= close[1]
    Baisse = close < close[1]
    period = 200
    
    // Il y a 102 barres intraday sur un graphe M5 et 34 sur un graphe M15
    IF Highest[period](IntradayBarIndex) = 102 THEN
    BACKGROUNDCOLOR (0, 127, 255, 25)
    SMA = Average[200](Volume)
    IF IntradayBarIndex = 102 THEN
    Result = MyVolume
    r = 0
    g = 0
    b = 0
    ELSE
    Result = volume
    IF Hausse THEN
    r = 80
    g = 210
    b = 80
    ELSIF Baisse THEN
    r = 220
    g = 100
    b = 100
    ENDIF
    ENDIF
    ELSIF Highest[period](IntradayBarIndex) = 34 THEN
    BACKGROUNDCOLOR (0, 127, 255, 25)
    SMA = Average[200](Volume)
    IF IntradayBarIndex = 34 THEN
    Result = MyVolume
    r = 0
    g = 0
    b = 0
    ELSE
    Result = volume
    IF Hausse THEN
    r = 80
    g = 210
    b = 80
    ELSIF Baisse THEN
    r = 220
    g = 100
    b = 100
    ENDIF
    ENDIF
    ELSE
    SMA = Average[50](Volume)
    Result = Volume
    IF Hausse THEN
    r = 80
    g = 210
    b = 80
    ELSIF Baisse THEN
    r = 220
    g = 100
    b = 100
    ENDIF
    ENDIF
    
    RETURN Result COLOURED(r, g, b) STYLE(Histogram) AS "Volumes sans clôtures", SMA AS "SMA200"
    
    Volumes-dans-PRT.png Volumes-dans-PRT.png
    #214820 quote
    JC_Bywan
    Moderator
    Master

    Bjr,

    On peut par exemple utiliser une condition sur l’horaire d’ouverture de la portion à éliminer plutôt qu’un nombre de barres, pour à la fois : traiter en une seule fois les UT intra que tu souhaites au lieu d’avoir un bout de code pour chaque UT, et éviter tout problème de barre vide en cours de journée en cas de titre peu liquide:

    if opentime<173000 then
     monvol=volume
    else
     monvol=0
    endif
    if close>=close[1] then
     rouge=80
     vert=210
     bleu=80
    else
     rouge=220
     vert=100
     bleu=100
    endif
    
    return monvol style(HISTOGRAM) coloured(rouge,vert,bleu)
    DavidZ thanked this post
    #214824 quote
    DavidZ
    Participant
    New

    Merci infiniment pour cette réponse rapide et cette solution bien plus simple que ce que j’avais imaginé au départ ! ça marche parfaitement.

    En réalité, au lieu d’avoir des volumes à zéro pour la clôture, je souhaiterais afficher une barre noire qui a comme valeur la MM50 des volumes. J’ai changé dans le code proposé monvol=0 par monvol=Average[50](Volume) mais je ne sais pas comment coder pour avoir la barre en noire… Pouvez-vous m’indiquer une solution ? Merci d’avance.

    #214825 quote
    JC_Bywan
    Moderator
    Master

    Dans ce cas, on peut modifier ainsi:

    if opentime<173000 then
     monvol=volume
     if close>=close[1] then
      rouge=80
      vert=210
      bleu=80
     else
      rouge=220
      vert=100
      bleu=100
     endif
    else
     monvol=average[50](Volume)
     rouge=0
     vert=0
     bleu=0
    endif
    
    return monvol style(HISTOGRAM) coloured(rouge,vert,bleu)
    DavidZ thanked this post
    #214826 quote
    DavidZ
    Participant
    New

    C’est exactement ce qu’il me fallait. Merci beaucoup ! Les volumes sont maintenant lisibles sur tous mes graphes.

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

indicateur de volume sans clôture


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
DavidZ @davidz Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by DavidZ
2 years, 10 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/16/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...