Indicateur avec affichage Range Bars

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #251804 quote
    JM
    Participant
    Average

    Bonjour,
    J’ai écris un programme qui trace le plus haut et le plus bas trouvé dans une plage horaire (ex 17h30 – 22h dans mon cas). Cependant j’ai un soucis quand j’utilise cet indicateur avec des Range Bars car je n’ai parfois pas la bougie correspondante à la minute souhaitée. Si le marché est calme, je peux avoir parfois plusieurs minutes d’écart entre 2 Range Bar. Comment améliorer mon algo pour que cela fonctionne à chaque fois ? J’ai essayé avec currentMinute mais c’est pas mieux. Ci-joint mon programme. Par avance merci.

     

    ONCE JourDebut = Dayofweek
    ONCE JourFin = Dayofweek
    if (JourDebut >= 6) then
    JourDebut = 1
    endif
    if (JourFin >= 6) then
    JourFin = 1
    endif
    If ((Hour = DebutHeure) and ((Minute >= DebutMinute-2) and (Minute <= DebutMinute+2)) and (JourDebut = Dayofweek)) then
    CptBarDebut = barindex
    JourDebut = JourDebut + 1
    DRAWARROWUP (barindex, open) COLOURED (0, 255, 0)
    endif

    If ((Hour = FinHeure) and ((Minute >= FinMinute-1) and (Minute <= FinMinute+1)) and (JourFin = Dayofweek)) then
    CptBarFin = barindex
    JourFin = JourFin + 1
    DRAWARROWDOWN (barindex, open) COLOURED (255, 0, 0)

    NbPeriodes = CptBarFin – CptBarDebut

    pLowSeance = Lowest[NbPeriodes](Low)
    pHighSeance = Highest[NbPeriodes](High)

    DrawSegment(barindex+4, pLowSeance, barindex + 84, pLowSeance) coloured(0,255,255)
    DRAWTEXT(“Blue Bar LOW”, barindex+8, pLowSeance+5) ANCHOR(TOPLEFT, INDEX, VALUE)

    DrawSegment(barindex+4, pHighSeance, barindex + 84, pHighSeance) coloured(0,255,255)
    DRAWTEXT(“Blue Bar HIGH”, barindex+8, pHighSeance+5) ANCHOR(TOPLEFT, INDEX, VALUE)

    pMoitieSeance = (pHighSeance – pLowSeance) / 2
    DrawSegment(barindex+4, pMoitieSeance + pLowSeance, barindex + 84, pMoitieSeance + pLowSeance) coloured(0,255,255)

    endif
    return

    Blue-BOX.txt ExempleCode.jpg ExempleCode.jpg
    #251841 quote
    Iván González
    Moderator
    Master

    Avec les Range Bars, on ne peut pas se baser sur une minute exacte, car il se peut qu’aucune bougie ne soit créée à 17h30 ou 22h00 si le marché est calme.
    La bonne approche consiste à mémoriser la première bougie dont OpenTime est ≥ à l’heure de début et la première bougie dont OpenTime est ≥ à l’heure de fin. Ensuite, on calcule le Highest et le Lowest entre ces deux index.
    De cette manière, l’algorithme fonctionne même quand plusieurs minutes s’écoulent entre deux Range Bars.
    Voici un exemple corrigé :

    // Variables
    Debut = 173000
    Fin   = 220000
    
    // Detect start of session
    IF openTime >= Debut AND startBar = 0 THEN
    startBar = BarIndex
    endBar = 0
    ENDIF
    
    // Detect end of session
    IF openTime >= Fin AND endBar = 0 THEN
    endBar = BarIndex
    nbPeriods = endBar - startBar
    
    if nbPeriods>0 then
    pLowSeance  = Lowest[nbPeriods](Low)
    pHighSeance = Highest[nbPeriods](High)
    
    // Draw levels
    DrawSegment(barindex, pLowSeance, barindex+84, pLowSeance) coloured(0,255,255)
    DrawSegment(barindex, pHighSeance, barindex+84, pHighSeance) coloured(0,255,255)
    endif
    //Restart
    startBar = 0
    ENDIF
    
    return
    robertogozzi thanked this post
    #251847 quote
    JM
    Participant
    Average

    Super merci beaucoup Ivan !
    Effectivement avec ta solution je trouve la première barre a partir de l’heure que je souhaite, ca peut-être longtemps après 17h30…
    Mais je peux essayer de regarder la barre précédente et mémoriser le High et le Low et ensuite comparer avec le High et le Low que je trouve pendant la période 17h30 22h00 et ajuster ainsi mon calcul du plus haut plus bas sur la période…

    Autre question, est-ce que sur un graphique 15 minutes ce code fonctionne aussi car j’ai un doute sur le démarrage du calcul sur la première barre à 17h30 :
    Quand le programme commence on est sur la bougie de 17h45, donc on n’a pas le plus haut (plus bas) de la bougie de 17h30 ?
    Ci-joint un graphique pour mieux comprendre.
    Merci

    Code15min.jpg Code15min.jpg
    #251853 quote
    Iván González
    Moderator
    Master

    Oui, tu as bien compris. Avec le code, on prend la première barre après 17h30.
    Si tu veux inclure aussi la barre de 17h30, il suffit de mémoriser le BarIndex - 1 comme point de départ, ce qui inclura la bougie précédente dans le calcul.

    #251854 quote
    JM
    Participant
    Average

    Ok parfait merci beaucoup Ivan,
    Est-ce qu’il existe une fonction PRT qui permet de savoir la date/heure/minute/seconde d’une bougie ?
    Bien cordialement.

    #251857 quote
    Iván González
    Moderator
    Master

    Oui, en ProBuilder tu as plusieurs fonctions natives qui te donnent directement la date et l’heure d’une bougie :
    Date → renvoie la date (format AAAAMMJJ)
    Hour → renvoie l’heure d’ouverture de la bougie (0–23)
    Minute → renvoie les minutes d’ouverture (0–59)
    Second → renvoie les secondes d’ouverture (0–59)
    OpenTime → renvoie l’heure complète sous forme HHMMSS (par ex. 173000 pour 17h30)

    JC_Bywan thanked this post
    #251866 quote
    JC_Bywan
    Moderator
    Master

    Bonjour, elles sont toutes là:

    https://www.prorealcode.com/documentation/category/dateandtime/

    Toutes celles avec “open” devant correspondent à l’horaire d’ouverture de la bougie, et les mêmes sans préfixe “open” correspondent à l’horaire de fermeture de la bougie.

    Iván González thanked this post
    #251870 quote
    JM
    Participant
    Average

    OK merci Ivan
    Bon WE.

    #251871 quote
    JM
    Participant
    Average

    Merci aussi JC_Bywan

    OK pour la doc

    Bon WE

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

Indicateur avec affichage Range Bars


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
JM @jm Participant
Summary

This topic contains 8 replies,
has 3 voices, and was last updated by JM
5 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 09/25/2025
Status: Active
Attachments: 3 files
Logo Logo
Loading...