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

Days

Days retourne le nombre entier de jours écoulés depuis le 1 January 1900 jusqu'à un bar. Days accepte un décalage entre crochets tel que Days[1] et permet de mesurer des écarts de dates.

Syntaxe

probuilder
Days[N]

Comment ça marche

Days renvoie un seul entier monotone : le nombre de jours calendaires entre la date de référence du 1 janvier 1900 et la date du bar traité. Comme elle réduit la date complète à un nombre qui ne fait que croître, c'est l'outil naturel pour mesurer l'écart entre deux bars. La différence Days[0] - Days[N] est le nombre de jours calendaires qui séparent le bar courant du bar N positions en arrière.

Le compte inclut chaque jour calendaire, week-ends et jours fériés compris, il mesure donc le temps écoulé plutôt que les séances de bourse. Cela le distingue d'un simple compte de bars, qui ignore les jours où le marché est fermé.

L'index optionnel N sélectionne une bar par rapport à celle en cours de traitement. Days[0], ou simplement Days, est le bar actuel. Une valeur positive N remonte : Days[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.

Exemples

Exemple 1, Jours écoulés au bar actuel (Indicateur)

probuilder
// Number of days since 1 January 1900 up to the current bar
myDays = Days[0]
RETURN myDays

L'indicateur trace une ligne lentement croissante, qui augmente du nombre de jours calendaires entre bars successifs. Les écarts sur les week-ends et les jours fériés apparaissent comme des marches plus grandes.

Exemple 2, Détecter un nouveau jour calendaire (ProScreener)

probuilder
// Match instruments whose latest bar is on a different calendar day from the previous bar
newDay = Days > Days[1]
SCREENER[newDay AND close > Average[20](close)] (close AS "Close")

Sur un graphique intraday Days > Days[1] n'est vrai que sur le premier bar d'un nouveau jour calendaire, donc le screener isole le bar d'ouverture de la séance.

Exemple 3, Filtre de jours dans le trade (ProOrder)

probuilder
// Close the position once it has been held for at least five calendar days
DEFPARAM CumulateOrders = false
IF NOT LONGONMARKET AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
    entryDays = Days
ENDIF
IF LONGONMARKET AND (Days - entryDays) >= 5 THEN
    SELL AT MARKET
ENDIF

La stratégie enregistre la valeur de Days à l'entrée, puis sort une fois que cinq jours calendaires se sont écoulés, week-ends et jours fériés compris, car Days mesure le temps calendaire écoulé.

Erreurs et pièges courants

  • La date de référence est le 1 January 1900. Le nombre absolu n'a de sens que comme différence. Soustrayez deux valeurs Days pour obtenir un intervalle en jours.
  • Jours calendaires, pas jours de bourse. Days compte chaque jour calendaire, donc un bar du lundi suivant un bar du vendredi diffère de 3, pas de 1. Ce n'est pas un compte de bars.
  • Pas une date formatée. Days est un compteur cumulatif, pas une date YYYYMMDD. Pour une date lisible, utilisez Today ou combiner Day, Month et Year.
  • Décalage au-delà de l'historique. Days[N] nécessite N bars d'historique. Près du bord gauche du graphique, la valeur n'est pas définie.
  • Day, jour du mois de chaque bar, 1 à 31.
  • DayOfWeek, jour de la semaine de chaque bar, 1 pour lundi à 7 pour dimanche.
  • Month, mois de chaque bar.
  • Year, année à quatre chiffres de chaque bar.
  • Timestamp, temps UNIX de la clôture de chaque bar, une horloge monotone alternative.
  • TIME, heure de clôture de chaque bar sous forme d'entier HHMMSS.
  • Yesterday, date du jour précédant un bar, sous la forme YYYYMMDD.
  • Today, date du bar courant sous la forme YYYYMMDD.