bj…
Ceci est la dernière version.
Limité à un délai maximum de 12 heures. Apparaît également de trouver l’écart du marché fermé. Remarque non testée.
Il trouve les écarts en calculant la période de temps, en secondes, jusqu’à la barre suivante.
Sur la barre suivante, il vérifie avec le temps de barre actuel en secondes. Si pareil, alors pas d’écart. Si elle est différente, la barre précédente (bar-1) doit être la dernière bougie avant l’écart. La boîte dessinée est comprise entre (bar-1 ) et bar (barre actuelle).
De plus, il garde une trace du «dernier temps de barre» car le calcul ne peut pas être effectué avant la fin de l’écart qui est la barre actuelle.
Le diagramme ci-dessous représente essentiellement ce que je fais. Temps caché en secondes, calculez le temps de la barre suivante, vérifiez si c’est à ce moment-là, sinon écart !
gTF = getTimeframe // get the time frame is seconds
Tcurrent = (openday * 24 *60 *60) + (openhour * 60 *60) + (openminute * 60) + opensecond // current time seconds
Tnext = Tlast + gtf // add TF seconds to last
if Tcurrent = Tnext then // no gap
Tlast = Tcurrent // store new last
else // gap
if barindex > 2 and gTF < 43200 +1 and currentMonth[1] = currentMonth[2] and (currentdayofweek[2] < 6) then
drawrectangle(barindex[1],high[1],barindex,low)coloured(255,144,143,75)bordercolor(255,144,143,150)
endif
Tlast = Tcurrent // store new last
endif
drawtext("x",barindex,10)anchor(bottomLeft,index,yShift)
return
// 1. get timeframe period in seconds
// 3. get current open day,hour,minute,seconds in seconds
// 4. calculate what the next period is seconds would be
// 7. if current and next value are equal then no gap detected
// 8. update last with current for next bar pass
// 10. else if different the there is a gap
// 12. if conditions true the draw
// 1) bar > 2
// 2) Timeframe is 12hrs or less
// 3) no change in month between previous
// 4) not a sunday previous by 2
// 14 end if block
// 15 update last with current for next bar pass
// 18 draw 'x' gap bar
// return