Day
Day renvoie le jour du mois, de 1 à 31, d'un bar du graphique. Day accepte un décalage entre crochets tel que Day[1] pour lire le jour d'un bar antérieur.
Syntaxe
Day[N]Comment ça marche
Day renvoie le jour du mois du bar en cours de traitement, sous forme d'entier de 1 à 31. Il lit la date calendaire attachée à chaque bar, donc contrairement à la famille Current il change le long de l'axe du temps : sur un graphique journalier, les bars successifs parcourent les jours du mois, et la valeur se réinitialise après le dernier jour de chaque mois.
L'index optionnel N sélectionne une bar par rapport à celle en cours de traitement. Day[0], ou simplement Day, est le bar actuel. Une valeur positive N remonte : Day[1] est le bar précédent, Day[5] correspond à cinq bars en arrière. Le graphique doit contenir assez d'historique pour le décalage demandé, sinon la valeur est indéfinie au bord gauche.
Day ne renvoie que le numéro du jour et ne porte ni mois ni année. Comparer Day valeurs franchissant une limite de mois peuvent être trompeuses, car le jour 31 d'un mois est suivi du jour 1 du suivant. Pour une date complète, utilisez Day conjointement avec Month et Year, ou utilisez Days et Timestamp lorsque vous avez besoin d'une valeur unique monotone.
Exemples
Exemple 1, Jour du bar précédent (Indicateur)
// Retrieve the day of the month from the previous bar
myDay = Day[1]
RETURN myDayL'indicateur trace le numéro de jour du mois du bar immédiatement antérieur à chaque bar traité, une ligne en escalier qui monte au fil du mois et retombe à chaque changement de mois.
Exemple 2, Scan des bars de début de mois (ProScreener)
// Match instruments whose latest bar falls in the first three days of a month
earlyInMonth = Day <= 3
SCREENER[earlyInMonth AND close > Average[20](close)] (Day AS "Day")Le screener ne renvoie que les instruments dont le bar le plus récent se situe dans les premiers jours d'un mois calendaire, avec le numéro du jour affiché à côté.
Exemple 3, Filtre du premier jour de trading (ProOrder)
// Allow entries only when a new month has just started
DEFPARAM CumulateOrders = false
newMonthStart = Day < Day[1]
IF newMonthStart AND close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFLa condition Day < Day[1] est vrai sur le premier bar d'un nouveau mois, car le numéro du jour retombe d'une valeur élevée à 1. La stratégie s'en sert comme filtre d'entrée mensuel.
Erreurs et pièges courants
- Jour du mois, pas de la semaine. Day renvoie 1 à 31, le jour du calendrier. Pour le jour de la semaine, utilisez
DayOfWeek. - Ni mois ni année. Day ne porte que le numéro du jour, de sorte que le jour 5 en mars et le jour 5 en avril sont identiques. À combiner avec
MonthetYearpour une date complète. - Limites de mois. Un test comme
Day > Day[1]échoue sur la première bar d'un mois parce que le numéro repasse à 1. Gérez explicitement ce changement de mois lors des comparaisons d'une bar à l'autre. - Décalage au-delà de l'historique.
Day[N]nécessiteNbars d'historique. Près du bord gauche du graphique, la valeur n'est pas définie.
Instructions liées
OpenDay, jour du mois à l'ouverture de chaque bar.Month, mois de chaque bar, à associer à Day pour une date complète.Year, année à quatre chiffres de chaque bar.DayOfWeek, jour de la semaine de chaque bar, 1 pour lundi à 7 pour dimanche.Days, nombre entier de jours écoulés depuis le 1 janvier 1900 jusqu'à chaque bar.TIME, heure de clôture de chaque bar sous forme d'entier HHMMSS.Timestamp, heure UNIX de la clôture de chaque bar.Yesterday, date du jour précédant un bar, sous la forme YYYYMMDD.