Bonjour,
j’aimerais programmer un indicateur qui me donne le minimum atteint entre la veille à 23h et aujourd’hui à 9h. J’avais pensé l’exprimer ainsi (pour des bougies d’1/4h) :
Minnuit=lowest[40](close) AND time=090000
DrawHLine (Minnuit) Coloured(255,0,0) STYLE(LINE,2)
DRAWTEXT(“Minnuit”,barindex,Minnuit+3,SansSerif,Bold,16)Coloured(255,0,0)
Mais ça ne me donne rien (une ligne à 0, donc). Il y a sans doute quelque chose d’évident qui m’échappe…
Merci beaucoup pour votre aide !
Bonjour, il y a plusieurs façons de faire, mais pour rester proche de l’approche que tu as choisi, voici une version modifiée de ton code plutôt qu’une façon différente:
defparam drawonlastbaronly=true
if time=090000 then
Minnuit=lowest[40](low)//lowest[40](close) pour clôture la plus basse, lowest[40](low) pour le point le plus bas
endif
DRAWTEXT(“Minnuit”,barindex,Minnuit+3,SansSerif,Bold,16) Coloured(255,0,0)
return Minnuit Coloured(255,0,0)
Voici une façon de faire différente sans lowest, qui permet de s’affranchir du besoin de compter les bougies entre 23h et 9h pour le lowest, à la fois pratique pour utiliser une autre UT (5mn par exemple, du moment que les ouvertures/clôtures de la nouvelle UT sont en lien avec 23h et 9h) et aussi pour tenir compte du cas où il n’y a pas de bougie à 23h (certains cfd le vendredi) et pas le même nombre de bougies dans l’intervalle:
defparam drawonlastbaronly=true
if opentime=230000 or (dayofweek=0 and opentime=0) then
ll=low
endif
if opentime>=230000 or opentime<090000 then
ll=min(ll,low)
endif
Minnuit=ll
DrawHLine (Minnuit) Coloured(255,0,0) STYLE(LINE,2)
DRAWTEXT("Minnuit",barindex,Minnuit+3,SansSerif,Bold,16) Coloured(255,0,0)
return
Merci beaucoup ! C’est exactement ce qu’il me fallait.