Hello,
dans un graphique affiché en 50 ticks par exemple, je cherche à afficher sous le graphique le temps en secondes de la durée de chaque barre.
J’ai essayé avec la commande “Time”, mais sans succès.
Merci pour votre aide.
Bonjour,
time n’est pas compatible avec les graphes en ticks, car pendant une barre en ticks, l’horaire de fin de barre time n’est pas connu, et il n’est pas non plus assigné “à retardement” une fois la barre finie.
On peut contourner la contrainte en utilisant ce qui est connu bien qu’on soit en ticks, à savoir l’horaire de début de la barre, donc: opentime
Pour info, ces instructions vont bientôt arriver :
- Second : Retourne le nombre de secondes de l’heure courante du chandelier (idem hour et minute mais pour les secondes)
- OpenSecond : Idem Second mais pour le numéro de seconde de l’heure d’ouverture du chandelier
- Timestamp : Retourne le timestamp unix
Ce sera beaucoup plus simple de programmer dans des TF très courts sur des comparaisons/calculs de temps.
Bonjour,
merci pour vos réponses…
J’ai essayé avec Opentime mais rien de concluant…
J’ai réessayé avec Time, et il semblerait que ça fonctionne, mais sans certitude. Il y a peut-être des erreurs que je ne suis pas capable de voir. Vos avis m’intéressent…
Description du code: Affichage du temps en secondes de la durée de chaque barre en ticks dans un graphique.
“a” >> à partir de la variable Time, j’extrais les heures minutes et secondes, et je convertis tout en secondes. ( barre en cours)
“b” >> même chose mais barre précédente.
“c” >> résultat en secondes.
c=0 pour le changement de jour.
si c<60 vert
si c>60 et < 120 orange
si c > 120 alors c = 120 et rouge.
a= (time-((hour*10000)+(minute*100)))+(hour*3600)+(minute*60)
b= (time[1]-((hour[1]*10000)+(minute[1]*100)))+(hour[1]*3600)+(minute[1]*60)
if time < time[1] then
c=0
elsif (a-b) >= 120 then
c=120
else
c= a - b
endif
//
if c<=60 then
r=0
elsif c>=120 then
r=139
else
r=255
endif
if c<=60 then
g=140
elsif c>=120 then
g=0
else
g=140
endif
if c<=60 then
b=0
elsif c>=120 then
b=0
else
b=0
endif
return c coloured (r,g,b)
Ok, c’est cool que tu aies fourni plus de détails sur tes essais, fût un temps où avec time ça marchait pas, et comme tu disais “J’ai essayé avec la commande “Time”, mais sans succès”, rien n’indiquait que ça ait pu changer.
Perso avant je faisais suivant le principe “opentime-opentime[1]” (mais 1 bougie de décalage) puis “currenttime – opentime” (et un traitement un peu comme toi pour tenir compte des changements d’heure/minute à cause du format HHMMSS et 100vs60, et éviter les pics de datas inutiles qui écraseraient la partie utile).
Je viens de tester une comparaison de time et currenttime en (x)ticks, et il semble bien que time a été aligné avec currenttime et du coup fonctionne en ticks en se réactualisant sur l’heure courante à chaque tick, et donc fournit une valeur désormais correcte une fois la bougie cloturée (depuis quand? ça je sais pas… ça fait pas mal d’années que je n’ai plus essayé time sur des ticks).
Merci à toi.
J’ai pioché au hasard quelques durées avec ton code, en soustrayant les horaires d’open de bougies consécutives pour vérifier, ça n’a pas donné d’erreurs (mais bon, échantillon de test au hasard assez petit, garder l’oeil ouvert quand même si une anomalie survient, ce n’était pas une vérification exhaustive)