Rejoignez-nous
Date et heure/probuilder · probacktest · proorder · proscreener

Timestamp

Timestamp renvoie le timestamp Unix de l'heure de clôture du chandelier courant dans ProBuilder, en comptant les secondes écoulées depuis le 1 January 1970 à 00:00 UTC.

Syntaxe

probuilder
Timestamp

Le mot-clé ne prend aucun paramètre. Un indice d'historique entre crochets lit les bars antérieures, donc Timestamp[1] donne l'horodatage de clôture du bar précédent.

Comment ça marche

Un timestamp Unix représente le temps comme le nombre total de secondes écoulées depuis l'Epoch Unix, le 1 January 1970 à 00:00:00 UTC. Timestamp indique ce décompte pour la clôture de chaque chandelier. L'échelle est universelle : elle ne dépend pas du réglage de fuseau horaire de la plateforme, de la localisation géographique ni des règles de passage à l'heure d'été, ce qui en fait la base fiable du calcul temporel dans les scripts de trading.

Comme le décompte est linéaire, soustraire deux valeurs Timestamp donne une différence exacte en secondes. C'est la propriété que les valeurs HHMMSS telles que TIME n'ont pas, puisque leurs chiffres encodent les heures et les minutes par position. Les usages typiques consistent à stocker l'horodatage d'un événement de référence dans une variable, puis à comparer les bars suivants à cette valeur pour mesurer le temps écoulé.

Le mot-clé associé OpenTimestamp indique l'heure Unix de l'ouverture de la bar au lieu de la clôture. Sur une bar terminée, Timestamp - OpenTimestamp égale la durée du bar. Sur le bar en cours de formation, Timestamp continue d'avancer, de sorte que la même expression mesure l'âge du bar jusqu'à présent.

Exemples

Exemple 1, Secondes écoulées depuis l'ouverture de la semaine (Indicateur)

probuilder
// Store the timestamp of the first bar of each new week
IF DayOfWeek < DayOfWeek[1] THEN
  firstBarTime = Timestamp
ENDIF
RETURN Timestamp - firstBarTime AS "elapsed seconds"

Une baisse du numéro du jour de la semaine marque le premier bar d'une nouvelle semaine. Son Timestamp est mémorisé, et chaque bar suivant trace le nombre de secondes écoulées depuis cette référence.

Exemple 2, Sortir d'une position après une durée de détention fixe (ProOrder)

probuilder
// Record the entry time, then exit after two hours on market
IF NOT OnMarket AND close CROSSES OVER Average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
  entryStamp = Timestamp
ENDIF
IF LongOnMarket AND Timestamp - entryStamp >= 7200 THEN
  SELL AT MARKET
ENDIF

Le Timestamp du bar d'entrée est enregistré à l'ouverture de la position. Dès que l'écart atteint 7200 secondes, soit deux heures, la position est fermée quel que soit le prix.

Exemple 3, Exclure les instruments aux données clairsemées (ProScreener)

probuilder
// Match instruments whose last two bars closed less than a day apart
active = Timestamp - Timestamp[1] < 86400
SCREENER[active] ("Bar age")

Comparer les timestamps de clôture des deux derniers bars écarte les instruments dont les données arrivent moins d'une fois par jour.

Erreurs et pièges courants

  • Secondes, pas millisecondes. Les timestamps ProBuilder comptent des secondes. Les seuils copiés depuis des environnements qui utilisent des epochs en millisecondes sont faux d'un facteur 1000.
  • Heure de clôture, pas heure de l'horloge. Sur les bars historiques, Timestamp est le moment où ce bar a clôturé, et non l'heure actuelle. Le traiter comme « maintenant » pendant un rejeu de backtest conduit à des conditions qui n'ont jamais été vraies historiquement.
  • Non comparable aux dates ou aux valeurs HHMMSS. Un horodatage tel que 1719849600 ne partage aucune échelle avec 20240701 ou 140000. Les comparaisons entre formats compilent mais produisent des résultats dénués de sens.
  • Variables de référence non initialisées. Les figures telles que Timestamp - firstBarTime renvoient la valeur epoch complète jusqu'à ce que la variable de référence soit assignée pour la première fois, puisque les variables non définies démarrent à 0. Protégez l'expression ou attendez que l'événement de référence se soit produit.
  • OpenTimestamp, timestamp Unix de l'ouverture du bar.
  • CurrentTime, heure de l'horloge au format HHMMSS.
  • OpenTime, heure d'ouverture du bar sous forme d'entier HHMMSS.
  • TIME, heure de clôture d'un bar au format HHMMSS.
  • DayOfWeek, jour de la semaine du bar, utile pour les ancrages hebdomadaires.
  • Today, date du bar courant au format YYYYMMDD.
  • BarIndex, nombre de bars depuis le début de l'historique chargé.