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

DayOfWeek

DayOfWeek renvoie le jour de la semaine d'un bar, de 1 pour lundi à 7 pour dimanche. DayOfWeek accepte un décalage entre crochets tel que DayOfWeek[1] pour lire un bar antérieur.

Syntaxe

probuilder
DayOfWeek[N]

Comment ça marche

DayOfWeek renvoie le jour de la semaine du bar en cours de traitement, sous forme d'entier de 1 à 7. Lundi vaut 1, mardi 2, et ainsi de suite jusqu'à dimanche, qui vaut 7. Il lit la date calendaire attachée à chaque bar, donc il change le long de l'axe du temps : sur un graphique journalier, la valeur parcourt 1, 2, 3, 4, 5 au fil d'une semaine de trading et saute les jours où le marché est fermé.

L'index optionnel N sélectionne une bar par rapport à celle en cours de traitement. DayOfWeek[0], ou simplement DayOfWeek, est le bar actuel. Une valeur positive N remonte : DayOfWeek[1] est le bar précédent. Le graphique doit contenir assez d'historique pour le décalage demandé, sinon la valeur est indéfinie au bord gauche.

DayOfWeek est le jour de la semaine de la bar. Ses équivalents sont CurrentDayOfWeek, qui lit le jour de la semaine de l'horloge au moment de l'exécution, et OpenDayOfWeek, qui lit le jour de la semaine à l'ouverture de chaque bar. Comme la plupart des marchés ne traitent pas tous les jours du calendrier, les valeurs de week-end apparaissent rarement sur le graphique d'un seul instrument.

Exemples

Exemple 1, Marqueur du lundi (Indicateur)

probuilder
// Flag bars that fall on a Monday
myDay = DayOfWeek[0]
IF myDay = 1 THEN
    isMonday = 1
ELSE
    isMonday = 0
ENDIF
RETURN isMonday

L'indicateur trace 1 sur chaque bar du lundi et 0 le reste de la semaine, un moyen rapide de voir où commence chaque semaine de trading.

Exemple 2, Scan des bars du vendredi (ProScreener)

probuilder
// Match instruments whose latest bar is a Friday
isFriday = DayOfWeek = 5
SCREENER[isFriday AND close > Average[20](close)] (DayOfWeek AS "Weekday")

Le screener ne retourne que les instruments dont le bar le plus récent tombe un vendredi, avec le numéro du jour de la semaine affiché pour référence.

Exemple 3, Éviter les entrées du lundi (ProOrder)

probuilder
// Skip new entries on Mondays, take them on other weekdays
DEFPARAM CumulateOrders = false
notMonday = DayOfWeek <> 1
IF notMonday AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

La stratégie refuse les nouvelles entrées sur les bars du lundi et prend les signaux sur le reste de la semaine, un filtre courant pour les systèmes qui considèrent le premier jour de la semaine comme bruité.

Erreurs et pièges courants

  • Lundi vaut 1, dimanche vaut 7. La numérotation va de 1 à 7 à partir du lundi. Un test écrit comme si dimanche valait 0 sera décalé d'une unité.
  • Les bars de week-end sont rares. Sur la plupart des instruments, le marché est fermé le week-end, les valeurs 6 et 7 apparaissent donc rarement. Ne comptez pas sur leur présence.
  • Par bar, pas l'horloge. DayOfWeek lit la date de chaque bar. Pour le jour de la semaine du moment où le code s'exécute, utilisez CurrentDayOfWeek.
  • Décalage au-delà de l'historique. DayOfWeek[N] nécessite N bars d'historique. Près du bord gauche du graphique, la valeur n'est pas définie.
  • CurrentDayOfWeek, jour de la semaine de l'horloge au moment de l'exécution.
  • OpenDayOfWeek, jour de la semaine à l'ouverture de chaque bar.
  • Day, jour du mois de chaque bar, 1 à 31.
  • Month, mois de chaque bar.
  • Year, année à quatre chiffres de chaque bar.
  • 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.
  • Today, date du bar courant sous la forme YYYYMMDD.