Bonjour,
Je cherche un indicateur qui trace deux lignes horizontales correspondant au plus haut et au plus bas du lundi.
La session du lundi démarre à 00h00 et se termine à 17h00 heure US (Eastern Time).
Une fois 17h passé, les lignes bleu restent visibles jusqu’à la fin de la semaine et je peux l’utiliser sur tout les timeframes,
Est-ce que quelqu’un pourrait m’aider? Merci 🙏
C’est ça:
DEFPARAM DrawOnLastBarOnly = True
ONCE USdiff = 060000
ONCE TimeStart = 000000 + USdiff
ONCE TimeEnd = 170000 + USdiff
ONCE Monday = 0
IF (OpenDayOfWeek = 1) OR ((OpenDayOfWeek > 1) AND (OpenDayOfWeek[1] > OpenDayOfWeek)) AND (Monday = 0)THEN
Monday = 1
HI = 0
LO = 9999999
myBAR = BarIndex
ENDIF
IF Monday[1] = 1 THEN
IF (OpenTime >= TimeStart) AND (OpenTime <= TimeEnd) THEN
HI = max(HI,high)
LO = min(LO,low)
ENDIF
IF (OpenTime >= TimeEnd) THEN
Monday = 0
ENDIF
ENDIF
DrawSegment(myBAR,HI,Barindex + 5,HI) style(line,5) coloured("Blue")
DrawSegment(myBAR,LO,Barindex + 5,LO) style(line,5) coloured("Red")
RETURN
J’ai testé ce code mais il ne fonctionne pas correctement sur les timeframes comme le 1H ou le 4H seulement sur les unités très courtes.
Peux-tu me faire une version multi-timeframe du code qui détecte le range peu importe l’unité utilisée ? Merci
Il est difficile de coder parfaitement car le jour et le jour de la semaine changent en fonction de la clôture de la bougie journalière, et non de l’heure. Ainsi, lundi matin à 0 h 30 est toujours affiché comme dimanche, et le même jour comme dimanche, et non comme lundi.
Les périodes supérieures à une heure posent également problème, car la dernière bougie se ferme le lendemain à l’heure souhaitée, ce qui complique la vérification.
Quoi qu’il en soit, après plusieurs essais, cette version semble la plus proche de votre demande :
DEFPARAM DrawOnLastBarOnly = True
ONCE USdiff = 060000
ONCE TimeStart = 000000 + USdiff
ONCE TimeEnd = 170000 + USdiff
ONCE Monday = 0
ONCE Offset = high + range * 2
ONCE HI = high
ONCE LO = low
OdW = OpenDayOfWeek
IF (OdW = 0) AND (OpenTime < TimeStart) THEN
OdW = 1
ENDIF
IF (OdW = 1) AND (Monday = 0) THEN
Monday = 1
HI = 0
LO = 9999999
myBAR = BarIndex
myDAY = Day
IF OpenDayOfWeek = 0 THEN
myDAY = myDAY + 1
ENDIF
ENDIF
IF Monday = 1 THEN
IF ((OpenTime >= TimeStart) AND (OpenTime <= TimeEnd)) AND (OpenDay = myDAY) THEN
HI = max(HI,high)
LO = min(LO,low)
ENDIF
IF ((OpenTime < OpenTime[1]) AND (OpenDay <> myDAY)) OR (OpenTime >= TimeEnd) THEN
Monday = 0
ENDIF
ENDIF
Offset = high + range * 2
DrawSegment(myBAR,HI,Barindex + 5,HI) style(line,5) coloured("Blue")
DrawSegment(myBAR,LO,Barindex + 5,LO) style(line,5) coloured("Red")
RETURN