Affichage sur graphique 5min des valeurs passé 4h

Forums ProRealTime forum Français Support ProBuilder Affichage sur graphique 5min des valeurs passé 4h

Viewing 5 posts - 1 through 5 (of 5 total)
  • #248963

    Objet : Affichage sur graphique 5min du bas de la mèche et du haut du corps de l’avant-dernière bougie H4

    Bonjour à tous,

    Je suis à la recherche d’un indicateur qui affiche sur un graphique 5 minutes un rectangle représentant l’avant-dernière bougie H4 clôturée, avec des règles très précises :


    Objectif de l’indicateur :

    Afficher pendant la bougie H4 en cours (donc pendant 48 bougies 5min) un rectangle horizontal avec les caractéristiques suivantes :

        • Durée : 48 bougies 5min = 4 heures (exactement).
        • Niveaux utilisés (sur l’avant-dernière bougie H4 clôturée) :
          • Niveau bas = le plus bas absolu (mèche) de la bougie H4.
          • Niveau haut = le plus haut du corps, c’est-à-dire max(open, close)pas le high absolu.

    Ce que j’ai observé comme problèmes :

        • Soit le rectangle est trop large (60 bougies / 5h),
        • Soit le niveau haut n’est pas bon : il semble prendre des valeurs de la bougie H4 en cours ou au-delà.
        • Le niveau bas, lui, est bon dans la version actuelle.

    Ce que j’ai déjà testé (version partiellement fonctionnelle) :

    prorealtime

    CopierModifier

    defparam
    drawonlastbaronly = false h4Bars = 48 if barindex > h4Bars * 2
    then low4H = low[h4Bars * 2] highBody4H = max(open[h4Bars * 2],
    close[h4Bars * 2]) for i = h4Bars * 2 - 1 downto h4Bars + 1 do low4H
    = min(low4H, low[i]) highBody4H = max(highBody4H, max(open[i],
    close[i])) next startBar = barindex - (barindex mod h4Bars) if
    islastbarupdate then drawrectangle(startBar, low4H, startBar +
    h4Bars - 1, highBody4H) coloured("blue")
    fillcolor("blue",50) endif endif return


    Résultat de cette version :

        • Le niveau bas (mèche) est juste.
        • Le niveau haut (corps) est trop haut, comme s’il prenait aussi des open/close au-delà de la bougie H4 visée.
        • Et parfois, la largeur dépasse 4h (surtout après un week-end, ou après coupure de marché).

    Ce que je recherche :

    Un code :

        • Qui identifie avec précision les 48 bougies 5min constituant la bougie H4 clôturée précédente,
        • Calcule :
          • le low de la mèche,
          • le haut du corps (max(open, close)) uniquement sur ces 48 bougies,
        • Puis projette un seul rectangle pendant la bougie H4 en cours (48 bougies),
        • Même après les week-ends ou coupures.

    Merci à tous ceux qui pourront m’aiguiller ou corriger proprement l’approche ?
    Je suis sûr que ça aidera aussi d’autres traders intéressés par l’analyse H4 sur des unités intraday.

    #248964

    regarde ce que j’ai fait

    tu as le choix entre le corps de la bougie ou les meches

    4 users thanked author for this post.
    #248968
    JS

    Salut
    Essayez ces…

    3 users thanked author for this post.
    #248984

    Cela fonctionne sur 1 minute, 5 minutes, etc… :

     

    2 users thanked author for this post.
    #248987

    Bonjour titi,

    Merci beaucoup pour ta contribution claire et bien structurée. Elle correspondait presque parfaitement à mon besoin ! J’ai apporté une petite adaptation pour que les niveaux de la bougie H4 soient figés après clôture, et affichés pendant la H4 suivante, plutôt que recalculés en continu.

    Ta logique est très propre, et ta structuration m’a beaucoup aidé à comprendre les étapes.

    Encore merci 🙏

    (Je poste ici aussi la version modifiée, si ça peut aider d’autres)

    // Initialisation
    ONCE mechehh = high
    ONCE mechell = low
    ONCE corphh = max(open, close)
    ONCE corpll = min(open, close)
    ONCE barCount = 0
    ONCE save = 0

    // Détection du début d’une nouvelle bougie H4 (heures fixes)
    IF opentime = 010000 OR opentime = 050000 OR opentime = 090000 OR opentime = 130000 OR opentime = 170000 OR opentime = 210000 THEN
    // Sauvegarder les extrêmes calculés précédemment
    lastMechehh = mechehh
    lastMechell = mechell
    lastCorphh = corphh
    lastCorpll = corpll
    save = 1
    barCount = 0

    // Réinitialisation pour la nouvelle bougie H4 en formation
    mechehh = high
    mechell = low
    corphh = max(open, close)
    corpll = min(open, close)
    ENDIF

    // Pendant la H4 en cours (on accumule les extrêmes)
    IF save = 1 THEN
    mechehh = max(mechehh, high)
    mechell = min(mechell, low)
    corphh = max(corphh, max(open, close))
    corpll = min(corpll, min(open, close))
    barCount = barCount + 1
    ENDIF

    // Affichage des niveaux de la bougie H4 PRÉCÉDENTE
    IF barCount > 0 AND barCount <= 48 THEN
    if corp = 1 then
    COLORBETWEEN(lastCorpll, lastCorphh, “RED”)
    endif
    if meche = 1 then
    COLORBETWEEN(lastMechell, lastMechehh, “BLUE”)
    endif
    ENDIF

    RETURN

    1 user thanked author for this post.
Viewing 5 posts - 1 through 5 (of 5 total)

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