Jetzt beitreten
Datum und Uhrzeit/probuilder · probacktest · proorder · proscreener

CurrentMonth

CurrentMonth gibt den Monat der Uhr zum Ausführungszeitpunkt zurück, 1 bis 12, auf jedem Bar des Charts identisch. Verwenden Sie Month, um den Monat des Schlusses jedes Bars zu lesen.

Syntax

probuilder
CurrentMonth

So funktioniert es

CurrentMonth liest die Uhr zum Zeitpunkt der Codeausführung und gibt den Kalendermonat zurück, von 1 für Januar bis 12 für Dezember. Referenz ist die Zeitzone des Marktes des Instruments, die von der des lokalen Rechners abweichen kann. Die Konstante nimmt keine Parameter und keinen Klammer-Offset an.

Der Wert gehört zur Current-Familie der Datums- und Zeitkonstanten, die den Moment der Ausführung beschreiben und nicht einen Bar im Chart. Jeder Bar einer Berechnung sieht daher dieselbe Zahl: Ein im Oktober aktualisierter Indikator gibt auf jedem historischen Bar 10 zurück. Das Gegenstück pro Bar ist Month, der den Monat des Schlusses jeder verarbeiteten Bar zurückgibt und sich entlang der Zeitachse ändert. Auf historische Daten angewandte saisonale Logik gehört zu Month; CurrentMonth beschreibt den aktuellen Kalenderzeitpunkt.

In einem live laufenden ProOrder-System ist CurrentMonth sinnvoll, da der Code in Echtzeit ausgeführt wird, während die Bars eintreffen. In einem Backtest spiegelt es den Monat wider, in dem der Test läuft, was es für historische saisonale Bedingungen unbrauchbar macht.

Beispiele

Beispiel 1, Markierung für den Halloween-Monat (Indikator)

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

Der Indikator zeichnet über den gesamten Chart 1, wenn er im Oktober nach Marktzeit neu berechnet wird, und 0 in jedem anderen Monat.

Beispiel 2, Auf eine Saison beschränkter Scan (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")

Der Screener gibt außerhalb von Oktober, November und Dezember eine leere Liste zurück, eine Möglichkeit, einen Scan nur während einer gewählten Saison aktiv zu halten.

Beispiel 3, Durch den Monat gesteuerte Strategie (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

Im Live-Betrieb stoppt sich das System für den gesamten August selbst. Backtests können diesen Zweig nicht sinnvoll durchlaufen, da CurrentMonth auf jedem Bar den Monat des Testlaufs enthält.

Häufige Fehler und Stolperfallen

  • Auf jedem Bar derselbe Wert. CurrentMonth beschreibt den Kalender, nicht den Chart, daher ist eine Bedingung wie CurrentMonth = 10 ist für die gesamte Berechnung auf einmal wahr oder falsch. Saisonale Logik pro Bar benötigt Month.
  • Blinder Fleck im Backtest. In einem Backtest gibt CurrentMonth den Monat zurück, in dem der Test ausgeführt wird, sodass darauf aufgebaute saisonale Filter pauschal durchlassen oder pauschal blockieren und Ergebnisse erzeugen, die dem Live-Verhalten nicht entsprechen.
  • Zeitzone des Marktes, nicht Ortszeit. Der Monat bezieht sich auf den Markt des Instruments und berücksichtigt den lokalen Zeitversatz des Betrachters nicht.
  • Kein Bracket-Offset. CurrentMonth[1] lässt sich nicht kompilieren. Nur Konstanten pro Bar wie Month[N] akzeptieren einen Index.
  • Month, Monat des Schlusses jedes Bars, das bar-bezogene Gegenstück zu dieser Konstante.
  • OpenMonth, Monat zur Eröffnung jedes Bars.
  • CurrentYear, Jahr der Uhr zum Ausführungszeitpunkt.
  • CurrentHour, Stunde der Uhr zum Ausführungszeitpunkt.
  • CurrentTime, vollständige Uhrzeit bei Ausführung als HHMMSS-Ganzzahl.
  • Year, vierstelliges Jahr jedes Bars.
  • Day, Tag des Monats jedes Bars.
  • TIME, Schlusszeit jedes Bars als HHMMSS-Ganzzahl.