Affichage sur graphique 5min des valeurs passé 4h
Forums › ProRealTime forum Français › Support ProBuilder › Affichage sur graphique 5min des valeurs passé 4h
- This topic has 4 replies, 4 voices, and was last updated 5 days ago by
bertrandpinoy.
-
-
07/20/2025 at 7:08 AM #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.07/20/2025 at 8:32 AM #248964regarde 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.
07/20/2025 at 10:38 AM #248968Salut
Essayez ces…4H on 5min Chart123456789101112131415TimeFrame(5 minutes, UpdateOnClose)If OpenTime=000000 or OpenTime=040000 or OpenTime=080000 or OpenTime=120000 or OpenTime=160000 or OpenTime=200000 thenLL=Lowest[48](Low)HLO=Highest[48](Open)HLC=Highest[48](Close)xBarIndex=BarIndexIf HLO>HLC thenDrawRectangle(xBarIndex-48,HLO,xBarIndex,LL)Coloured("Red")elseDrawRectangle(xBarIndex-48,HLC,xBarIndex,LL)Coloured("Red")EndIfEndIfReturn3 users thanked author for this post.
07/20/2025 at 3:24 PM #248984Cela fonctionne sur 1 minute, 5 minutes, etc… :
123456789101112131415161718192021ONCE t = 40 //transparencyONCE N = 20 //18/20=offset on a 5-minute chart for the wicks (use 1 on a 1-h chart, 2 0n a 30-min chart, 6 on a 15-min.chart)IF (OpenHour MOD 4 = 1) AND (OpenHour <> OpenHour[1]) THENr = 255b = 0IF C4 > O4 THENr = 0b = 255ENDIFDrawRectangle(Bar4,O4,BarIndex[1],C4) coloured(r,0,b,t) bordercolor("Red",1)DrawRectangle(Bar4+N,H4,BarIndex[1]-N,max(O4,C4)) coloured(r,0,b,t) bordercolor("Red",1)DrawRectangle(Bar4+N,L4,BarIndex[1]-N,min(O4,C4)) coloured(r,0,b,t) bordercolor("Red",1)O4 = openH4 = highL4 = lowBar4 = BarIndexENDIFC4 = closeH4 = max(H4,high)L4 = min(L4,low)RETURN2 users thanked author for this post.
07/20/2025 at 5:44 PM #248987Bonjour 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
ENDIFRETURN
1 user thanked author for this post.
-
-
AuthorPosts
Find exclusive trading pro-tools on