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

Today

Today renvoie la date d'un bar situé N jours de bourse avant le bar courant sous forme d'entier YYYYMMDD. Today[0] donne la date du jour courant dans les scripts ProBuilder.

Syntaxe

probuilder
Today
Today[N]

Paramètres

NomTypePar défautDescription
Nentier0Nombre de périodes de cotation avant le bar actuel. 0 est le jour courant ; N doit être non négatif.

Comment ça marche

Today expose les dates sous forme d'entiers compacts au format YYYYMMDD, donc le 1 mars 2024 devient 20240301. Sans indice, ou avec Today[0], le mot-clé renvoie la date du jour de bourse courant. Avec un indice positif, il remonte dans l'historique du graphique : Today[10] est la date du bar 10 périodes de cotation avant la période actuelle.

L'indice ne compte que les jours de bourse. Les week-ends et les jours fériés de marché n'apparaissent pas dans les données, ils sont donc ignorés plutôt que comptés, et Today[5] un lundi remonte généralement à plus de cinq jours calendaires.

Comme les entiers YYYYMMDD croissent avec le temps, ils s'ordonnent correctement avec les opérateurs de comparaison usuels. Today >= 20240301 est une façon valable de conditionner la logique aux dates à partir du 1 mars 2024. Ce que le format ne permet pas, c'est l'arithmétique calendaire : la différence entre deux valeurs YYYYMMDD n'est pas un nombre de jours, de sorte que les mesures de temps écoulé doivent utiliser Timestamp à la place.

Exemples

Exemple 1, Lire une date dix jours de bourse en arrière (Indicateur)

probuilder
// Date of the bar 10 trading days before the current one
previousDate = Today[10]
RETURN previousDate

L'indicateur renvoie la date YYYYMMDD du bar situé dix périodes de bourse plus tôt, en sautant au passage les week-ends et les jours fériés.

Exemple 2, Activer une stratégie à partir d'une date fixe (ProBacktest)

probuilder
// Ignore all signals before 1 March 2024
IF Today >= 20240301 THEN
  IF close CROSSES OVER Average[20](close) THEN
    BUY 1 SHARES AT MARKET
  ENDIF
ENDIF

Le filtre de date restreint le backtest aux bars situés au jour choisi ou après, même lorsqu'un historique bien plus long est chargé sur le graphique.

Exemple 3, Détecter le premier bar d'un nouveau jour (ProScreener)

probuilder
// Match instruments whose current bar starts a new calendar date
newDay = Today > Today[1]
SCREENER[newDay] ("New date")

Puisque les valeurs YYYYMMDD augmentent avec le temps, le fait que la date du bar courant dépasse celle du précédent isole le premier bar de chaque nouveau jour.

Erreurs et pièges courants

  • Soustraire des dates n'est pas compter des jours. 20240301 - 20240229 égale 72, pas 1. Les entiers YYYYMMDD sont des composites positionnels, donc les différences franchissant une limite de mois ou d'année n'ont aucun sens. Les durées exigent Timestamp.
  • L'indice compte les jours de bourse. Les jours non cotés sont absents des données, donc Today[5] remonte de cinq bars de la série journalière, et non de cinq jours calendaires. Autour des jours fériés, l'écart calendaire s'accroît encore.
  • Indexation au-delà de l'historique chargé. Lorsque N dépasse le nombre de bars disponibles sur le graphique, la lecture n'a aucune donnée à lire et le résultat est inutilisable. Gardez N dans la plage chargée ou prémunissez-vous contre les premiers bars.
  • Les raccourcis à deux chiffres échouent. Les dates doivent être écrites en entier, 20240301, jamais 240301. Les littéraux tronqués se comparent à la mauvaise magnitude et la condition se comporte mal sans erreur.
  • Yesterday, date du jour précédant un bar donné.
  • Day, composante jour du mois de la date du bar.
  • Month, composante mois de la date du bar.
  • Year, composante année de la date du bar.
  • DayOfWeek, jour de la semaine du bar sous forme de nombre.
  • OpenDate, date à laquelle le bar s'est ouvert, au format YYYYMMDD.
  • TIME, heure de clôture d'un bar au format HHMMSS.
  • Days, nombre de jours écoulés depuis 1900 pour un calcul linéaire en jours.