Hello,
I have this code :
J’ai ce code:
depart=091500
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
DRAWRECTANGLE(mabarre, ll, DateToBarIndex(202511201730), hh) coloured ("lavender") bordercolor(0,0,255)
I am willing to draw a rectangle starting at mabarre and closing at 5.30pm
The rectangle draw is ok for today.
My problem is that older days rectangles are closing today also at 17.30.
How should I get the Day of mabarre and do a string concatenation for the ending bar?
Thanks a lot for your help
Je souhaite tracer un rectangle commençant à mabarre et se terminant à 17h30.
Le tracé du rectangle est correct pour aujourd’hui.
Mon problème est que les rectangles des jours précédents se terminent également à 17h30 aujourd’hui.
Comment puis-je obtenir la date de 17h30 et effectuer une concaténation de chaînes pour la barre de fin ?
Merci beaucoup pour votre aide.
A tester:
depart=091500
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if islastbarupdate then
barrefincejour=today*10000+1730
DRAWRECTANGLE(mabarre, ll, DateToBarIndex(barrefincejour), hh) coloured ("lavender") bordercolor(0,0,255)
elsif time=173000 then
DRAWRECTANGLE(mabarre, ll, barindex, hh) coloured ("lavender") bordercolor(0,0,255)
endif
return
PS: il faut SVP utiliser dans son post la même langue que le forum choisi, en l’occurence forum en Français. Si on veut atteindre une audience plus internationale, on peut soit miser sur la curiosité des membres d’autres pays de lire cette page en activant la traduction automatique en haut à gauche du post, soit poster dans le forum anglais directement, merci (sans pour autant dupliquer le post dans plusieurs forums, cf cadre jaune avec règles du forum en bas de cette page, merci).
Bonsoir,
Désolé pour la langue. Je suis allé un peu vite. Ai-je un moyen de modifier mon post ?
Une question concernant le code … pourquoi *10000 ?
Le tracé du rectangle est ok hormis la dernière barre et ne fonctionne qu’en moins de M15. Je ne comprends pas *10000. Today renvoie la date du jour alors …
Merci pour votre aide.
J’ai traduit et édité le post via outils modérateurs, pas de souci.
Pourquoi *10000 : c’est parce que j’ai recréé l’info temporelle qu’on indique à datetobarindex via une variable qui doit être un nombre de format AAAAMMJJHHMM (année mois jour heures minutes), à partir de today qui est de type AAAAMMJJ et de 17h30. Par exemple avec la date d’aujourd’hui, 202511201730 = 20251120 * 10000 + 1730. En l’utilisant via une variable construite ainsi à partir de today, cela permet d’utiliser le code demain sans avoir à changer la date dans le script du code pour le dernier rectangle.
Il ne fonctionne qu’en M15 ou moins, mais cela n’est pas lié à la suggestion, cela était déjà le cas dans ton code avant qu’on le modifie puisque tu donnes un départ à 9h15 pour la variable “mabarre”, et pour avoir un if opentime=0915, cette barre qui ouvre à 9h15 doit exister sur le graphe, ce qui n’est le cas qu’en M15 ou moins (hors ut exotiques qui ne sont pas diviseur de 15)
Qu’est-ce qui ne fonctionne pas avec la dernière barre, pour que je regarde s’il y a une modification possible?
Bonsoir,
En réponses,
* Merci pour la traduction.
* J’ai fixé le problème de dernière bougie en supprimant le elseif comme suit :
depart=091500
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if islastbarupdate then
barrefincejour=today*10000+1730
DRAWRECTANGLE(mabarre, ll, DateToBarIndex(barrefincejour), hh) coloured ("lavender") bordercolor(0,0,255)
//elsif time=173000 then
//DRAWRECTANGLE(mabarre, ll, barindex, hh) coloured ("lavender") bordercolor(0,0,255)
endif
return
* Concernant le *1000 c’est pour ajouter 0000 à la fin et y rajouter HHMM ?
Bonjour,
Le problème que je rencontre ici est que si une future session n’est pas débutée, le rectangle débute la veille pour se finir ce jour à barrefincejour.
Par exemple, il est 9h56. New York n’est pas ouvert. Le rectangle est tracé de Vendredi dernier 15h30 à aujourd’hui 17h.
Merci par avance pour votre aide.
Bien Cordialement,
Si tu n’en veux qu’un et pas les rectangles précédents de l’historique, oui tu pouvais enlever le elsif.
Pour ne rien tracer du tout lors d’un nouveau jour où la session n’a pas encore débuté, et ne tracer cet unique rectangle qu’après ce départ, tu peux restreindre davantage le if en ne demandant le tracé que si l’horaire est postérieur à ton choix pour la variable “depart”, avec: “if islastbarupdate AND opentime>=depart then”
depart=091500
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if islastbarupdate and opentime>=depart then
barrefincejour=today*10000+1730
DRAWRECTANGLE(mabarre, ll, DateToBarIndex(barrefincejour), hh) coloured ("lavender") bordercolor(0,0,255)
endif
return