OpenDate
OpenDate renvoie la date d'ouverture d'un bar au format YYYYMMDD en ProBuilder. Utilisez-le pour rattacher des trades ou une analyse à des dates calendaires exactes sur n'importe quelle unité de temps du graphique.
Syntaxe
OpenDateComment ça marche
OpenDate lit l'horodatage d'ouverture du bar courant et renvoie sa date sous la forme d'un entier au format YYYYMMDD. Un bar qui a ouvert le 8 juillet 2026 donne 20260708. L'année, le mois et le jour sont regroupés dans une seule valeur, ce qui rend les comparaisons chronologiques triviales : un OpenDate numériquement plus grand correspond toujours à une date postérieure.
Le mot-clé ne prend aucun paramètre. Il désigne l'heure d'ouverture de la barre, tandis que les mots-clés de date simples comme Today décrivent la date de clôture du bar. Sur les bars journaliers, les deux concordent normalement, mais sur les bars hebdomadaires, mensuels ou qui chevauchent plusieurs séances, les dates d'ouverture et de clôture peuvent différer, le choix du mot-clé a donc son importance.
Comme le format condense trois champs en un seul nombre, extraire une composante exige de l'arithmétique. Les éléments individuels sont aussi disponibles directement via OpenYear, OpenMonth, et OpenDay, ce qui est généralement l'approche la plus claire.
Les usages typiques sont la restriction d'un backtest à une plage de dates, l'ancrage de calculs à une date d'événement connue et la désactivation d'un système en réel après une date d'expiration fixe.
Exemples
Exemple 1, Afficher la date d'ouverture de chaque bar (Indicateur)
// Store and plot the opening date of the current bar
myOpenDate = OpenDate
RETURN myOpenDateL'indicateur renvoie la date d'ouverture de chaque bar sous forme d'un nombre YYYYMMDD, un moyen rapide de vérifier à quelle date calendaire appartient un bar.
Exemple 2, Limiter un backtest à une date de début (ProBacktest)
// Ignore all history before 2 January 2024
IF OpenDate >= 20240102 THEN
IF close CROSSES OVER Average[50](close) THEN
BUY 1 SHARES AT MARKET
ENDIF
ENDIFComme les nombres au format YYYYMMDD se trient chronologiquement, une seule comparaison avec le littéral 20240102 exclut tous les bars qui ont ouvert avant cette date.
Exemple 3, Désactiver un système après une date d'expiration (ProOrder)
// Stop opening new positions from 1 December 2026 onward
expired = OpenDate >= 20261201
IF NOT expired AND close CROSSES OVER Highest[20](close[1]) THEN
BUY 1 SHARES AT MARKET
ENDIFL'entrée en breakout ne reste active que tant que la date d'ouverture du bar est antérieure à la date limite, une manière simple de limiter dans le temps une stratégie en réel.
Erreurs et pièges courants
- Un nombre, pas un objet date. OpenDate renvoie un entier. Une arithmétique de dates comme ajouter 7 ne donne pas la date de la semaine suivante, elle ajoute simplement 7 au nombre et échoue aux changements de mois. Utilisez des comparaisons, pas de l'arithmétique.
- Date d'ouverture contre date de clôture. OpenDate décrit le moment où le bar s'est ouvert. Sur des bars hebdomadaires ou mensuels, la date de clôture peut tomber sur un mois ou une année différents. À comparer avec
Today, qui suit la date de la bar à la clôture. - L'extraction des composantes est indirecte. Extraire le mois de 20260708 demande une division et un arrondi. Préférez
OpenYear,OpenMonth, etOpenDay, qui renvoient directement les composantes. - Littéraux à huit chiffres complets requis. Les comparaisons doivent utiliser des valeurs YYYYMMDD complètes. Une condition comme
OpenDate = 0708ne correspond jamais car la valeur stockée inclut toujours l'année.
Instructions liées
Today, date du bar courant au format YYYYMMDD, d'après la clôture.OpenDay, jour du mois où le bar courant s'est ouvert.OpenMonth, numéro du mois où le bar courant s'est ouvert.OpenYear, année où le bar courant s'est ouvert.OpenTime, heure d'ouverture du bar courant au format HHMMSS.OpenHour, heure à laquelle le bar courant s'est ouvert.Timestamp, horodatage de clôture du bar en secondes depuis 1970.OpenTimestamp, horodatage d'ouverture du bar en secondes depuis 1970.