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

CurrentMonth

CurrentMonth renvoie le mois de l'horloge au moment de l'exécution, de 1 à 12, identique sur chaque bar du graphique. Utilisez Month pour lire le mois de clôture de chaque bar.

Syntaxe

probuilder
CurrentMonth

Comment ça marche

CurrentMonth lit l'horloge au moment où le code s'exécute et renvoie le mois du calendrier, de 1 pour janvier à 12 pour décembre. La référence est le fuseau horaire du marché de l'instrument, qui peut différer de celui de la machine locale. La constante ne prend aucun paramètre ni décalage entre crochets.

La valeur appartient à la famille Current des constantes de date et d'heure, qui décrivent le moment de l'exécution plutôt qu'un bar du graphique. Chaque bar d'un calcul voit donc le même nombre : un indicateur rafraîchi en octobre renvoie 10 sur chaque bar historique. L'équivalent par bar est Month, qui renvoie le mois de la clôture de chaque bar traité et change le long de l'axe du temps. La logique saisonnière appliquée aux données historiques relève de Month ; CurrentMonth décrit le calendrier actuel.

Dans un système ProOrder en réel, CurrentMonth a du sens, puisque le code s'exécute en temps réel à mesure que les bars arrivent. Dans un backtest, il reflète le mois au cours duquel le test est exécuté, ce qui le rend inadapté à des conditions saisonnières historiques.

Exemples

Exemple 1, Marqueur du mois d'Halloween (Indicateur)

probuilder
// Set the flag when the script executes during October
IF (CurrentMonth = 10) THEN
    HalloweenMonth = 1
ELSE
    HalloweenMonth = 0
ENDIF
RETURN HalloweenMonth

L'indicateur trace 1 sur tout le graphique lorsqu'il est recalculé en octobre heure du marché, et 0 pour tout autre mois.

Exemple 2, Scan limité à une saison (ProScreener)

probuilder
// Return matches only during the fourth quarter
inQ4 = (CurrentMonth >= 10) AND (CurrentMonth <= 12)
SCREENER[inQ4 AND close > Average[50](close)] (close AS "Close")

Le screener renvoie une liste vide en dehors d'octobre, novembre et décembre, un moyen de n'activer un scan que pendant une saison choisie.

Exemple 3, Stratégie conditionnée au mois (ProOrder)

probuilder
// Skip new entries during the summer month of August
DEFPARAM CumulateOrders = false
IF CurrentMonth = 8 THEN
    QUIT
ENDIF
IF close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

En réel, le système s'arrête de lui-même pendant tout le mois d'août. Les backtests ne peuvent pas tester cette branche de manière significative, car CurrentMonth contient le mois de l'exécution du test sur chaque bar.

Erreurs et pièges courants

  • Même valeur sur chaque bar. CurrentMonth décrit le calendrier, pas le graphique ; une condition telle que CurrentMonth = 10 est vrai ou faux pour tout le calcul d'un coup. Une logique saisonnière par bar nécessite Month.
  • Angle mort du backtest. Dans un backtest, CurrentMonth renvoie le mois au cours duquel le test s'exécute ; les filtres saisonniers construits dessus laissent donc tout passer ou bloquent tout, et produisent des résultats qui ne correspondent pas au comportement en réel.
  • Fuseau horaire du marché, pas l'heure locale. Le mois est référencé au marché de l'instrument et ne tient pas compte du décalage local de celui qui consulte le graphique.
  • Pas de décalage entre crochets. CurrentMonth[1] ne compile pas. Seules des constantes par bar telles que Month[N] acceptent un index.
  • Month, mois de la clôture de chaque bar, l'équivalent par bar de cette constante.
  • OpenMonth, mois à l'ouverture de chaque bar.
  • CurrentYear, année de l'horloge au moment de l'exécution.
  • CurrentHour, heure de l'horloge au moment de l'exécution.
  • CurrentTime, heure complète de l'horloge à l'exécution sous forme d'entier HHMMSS.
  • Year, année à quatre chiffres de chaque bar.
  • Day, jour du mois de chaque bar.
  • TIME, heure de clôture de chaque bar sous forme d'entier HHMMSS.