Indicateur avec affichage Range Bars

Forums ProRealTime forum Français Support ProBuilder Indicateur avec affichage Range Bars

  • This topic has 8 replies, 3 voices, and was last updated 2 weeks ago by avatarJM.
Viewing 9 posts - 1 through 9 (of 9 total)
  • #251804
    JM

    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

    #251841

    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é :

    1 user thanked author for this post.
    #251847
    JM

    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

    #251853

    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
    JM

    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

    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)

    1 user thanked author for this post.
    #251866

    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.

    1 user thanked author for this post.
    #251870
    JM

    OK merci Ivan
    Bon WE.

    #251871
    JM

    Merci aussi JC_Bywan

    OK pour la doc

    Bon WE

Viewing 9 posts - 1 through 9 (of 9 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login