Bonjour à tous,
Nous sommes lundi et bizarrement l’indicateur ne m’indique pas des plus haut et bas de la journée n-1
voir image
Bonjour larouedegann
Il y a 2 explications possibles :
-> Soit c’est un problème de fuseau horaire. Par exemple un nouvelle journée pour moi n’est pas minuit mais 1h du matin. C’est à partir de cette heure que sont calculés les PDH et PDL.
-> Soit il s’agit d’un marché qui ouvre quelques heures le dimanche soir juste avant de passer au lundi matin. C’est le cas sur certains marchés. Si c’est le cas tes PDH et PDL sont calculés sur la veille qui est le dimanche et non le vendredi. Le problème est le même avec la fonction native de PRT. Cela nous oblige à les tracer manuellement.
Je pense qu’il est possible de pallier à ce problème en rajoutant au code une condition : si nous sommes le lundi, ne prendre que le vendredi pour les calculs.
En effet, comme le souligne Turame, le problème réside dans le fait que certains contrats à terme sont négociés le dimanche. Voici ce qui peut être fait :
1) Ajoute cette variable avec les autres (tout en haut) :
sundaySession = 1 // 1 = la séance du dimanche appartient au lundi (futures/FX) ; 0 = dimanche = journée à part (crypto 24/7)
2) Remplace la ligne newDay = date <> date[1] par :
newDay = date <> date[1]
if sundaySession = 1 and dayofweek[1] = 0 then
newDay = 0
endif
Ainsi, le lundi tu verras le plus haut et le plus bas du vendredi, et le mardi ceux du lundi réel (séance du dimanche incluse). Si tu utilises un marché 24/7 type crypto, où le dimanche est une vraie journée complète, mets sundaySession = 0 pour revenir au découpage par date naturelle.