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

Day

Day gibt den Tag des Monats, 1 bis 31, eines Bars im Chart zurück. Day akzeptiert einen Klammer-Offset wie Day[1], um den Tag eines früheren Bars zu lesen.

Syntax

probuilder
Day[N]

So funktioniert es

Day gibt den Tag des Monats des verarbeiteten Bars als Ganzzahl von 1 bis 31 zurück. Es liest das jedem Bar zugeordnete Kalenderdatum, daher ändert es sich im Unterschied zur Current-Familie entlang der Zeitachse: aufeinanderfolgende Bars auf einem Tageschart durchlaufen die Tage des Monats, und der Wert setzt sich nach dem letzten Tag jedes Monats zurück.

Der optionale Index N wählt einen Bar relativ zu dem gerade verarbeiteten aus. Day[0], oder einfach Day, ist die aktuelle Bar. Ein positiver N blickt zurück: Day[1] ist der vorherige Bar, Day[5] ist fünf Bars zurück. Der Chart muss genügend Historie für den angeforderten Offset enthalten, sonst ist der Wert am linken Rand undefiniert.

Day gibt nur die Tageszahl zurück und enthält keinen Monat und kein Jahr. Der Vergleich von Day Werte über eine Monatsgrenze hinweg können irreführend sein, da auf Tag 31 eines Monats Tag 1 des nächsten folgt. Für ein vollständiges Datum verwenden Sie Day zusammen mit Month und Year, oder greifen Sie zu Days und Timestamp wenn Sie einen einzelnen monotonen Wert benötigen.

Beispiele

Beispiel 1, Tag des vorherigen Bars (Indikator)

probuilder
// Retrieve the day of the month from the previous bar
myDay = Day[1]
RETURN myDay

Der Indikator zeichnet die Monatstagsnummer des Bars unmittelbar vor jedem verarbeiteten Bar, eine Stufenlinie, die durch den Monat steigt und bei jedem Monatswechsel abfällt.

Beispiel 2, Scan nach Bars am Monatsanfang (ProScreener)

probuilder
// 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")

Der Screener gibt nur Instrumente zurück, deren aktuellster Bar in den ersten Tagen eines Kalendermonats liegt, mit der daneben angezeigten Tagesnummer.

Beispiel 3, Filter auf den ersten Handelstag (ProOrder)

probuilder
// 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
ENDIF

Die Bedingung Day < Day[1] ist auf der ersten Bar eines neuen Monats true, weil die Tageszahl von einem hohen Wert zurück auf 1 fällt. Die Strategie nutzt das als monatliches Einstiegs-Gate.

Häufige Fehler und Stolperfallen

  • Tag des Monats, nicht der Woche. Day gibt 1 bis 31 zurück, den Kalendertag. Für den Wochentag verwenden Sie DayOfWeek.
  • Kein Monat und kein Jahr. Day enthält nur die Tagesnummer, daher sehen Tag 5 im März und Tag 5 im April identisch aus. Kombinieren Sie es mit Month und Year für ein vollständiges Datum.
  • Monatsgrenzen. Ein Test wie Day > Day[1] scheitert am ersten Bar eines Monats, weil die Zahl auf 1 zurückgesetzt wird. Behandeln Sie den Monatswechsel explizit, wenn Sie über Bars hinweg vergleichen.
  • Offset jenseits der Historie. Day[N] benötigt N Bars Historie. Am linken Rand des Charts ist der Wert undefiniert.
  • OpenDay, Tag des Monats bei der Eröffnung jedes Bars.
  • Month, Monat jedes Bars, zusammen mit Day für ein vollständiges Datum.
  • Year, vierstelliges Jahr jedes Bars.
  • DayOfWeek, Wochentag jedes Bars, 1 für Montag bis 7 für Sonntag.
  • Days, vollständige Tage, die seit dem 1. Januar 1900 bis zu jedem Bar vergangen sind.
  • TIME, Schlusszeit jedes Bars als HHMMSS-Ganzzahl.
  • Timestamp, UNIX-Zeit des Schlusses jedes Bars.
  • Yesterday, Datum des Tages vor einem Bar, in der Form YYYYMMDD.