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

DayOfWeek

DayOfWeek gibt den Wochentag eines Bars zurück, 1 für Montag bis 7 für Sonntag. DayOfWeek akzeptiert einen Klammer-Offset wie DayOfWeek[1], um einen früheren Bar zu lesen.

Syntax

probuilder
DayOfWeek[N]

So funktioniert es

DayOfWeek gibt den Wochentag des verarbeiteten Bars als Ganzzahl von 1 bis 7 zurück. Montag ist 1, Dienstag 2 und so weiter bis Sonntag, der 7 ist. Es liest das jedem Bar zugeordnete Kalenderdatum, daher ändert es sich entlang der Zeitachse: auf einem Tageschart läuft der Wert 1, 2, 3, 4, 5 durch eine Handelswoche und überspringt die Tage, an denen der Markt geschlossen ist.

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

DayOfWeek ist der Wochentag pro Bar. Verwandt sind CurrentDayOfWeek, der den Wochentag der Uhr zum Ausführungszeitpunkt liest, und OpenDayOfWeek, das den Wochentag zur Eröffnung jedes Bars liest. Da die meisten Märkte nicht an jedem Kalendertag handeln, erscheinen Wochenendwerte im Chart eines einzelnen Instruments selten.

Beispiele

Beispiel 1, Montags-Markierung (Indikator)

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

Der Indikator zeichnet auf jedem Montags-Bar 1 und in der restlichen Woche 0, eine schnelle Möglichkeit zu sehen, wo jede Handelswoche beginnt.

Beispiel 2, Scan nach Freitags-Bars (ProScreener)

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

Der Screener gibt nur Instrumente zurück, deren letzter Bar auf einen Freitag fällt, wobei die Wochentagsnummer zur Referenz angezeigt wird.

Beispiel 3, Einstiege am Montag vermeiden (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

Die Strategie lehnt neue Einstiege auf Montags-Bars ab und nimmt Signale an den übrigen Tagen der Woche, ein verbreiteter Filter für Systeme, die den ersten Tag der Woche als unruhig behandeln.

Häufige Fehler und Stolperfallen

  • Montag ist 1, Sonntag ist 7. Die Nummerierung läuft von 1 bis 7 ab Montag. Ein Test, der geschrieben ist, als wäre Sonntag 0, liegt um eins daneben.
  • Wochenend-Bars sind selten. Bei den meisten Instrumenten ist der Markt an Wochenenden geschlossen, daher erscheinen die Werte 6 und 7 selten. Verlassen Sie sich nicht darauf, dass sie vorhanden sind.
  • Pro Bar, nicht die Uhr. DayOfWeek liest das Datum jeder Bar. Verwenden Sie für den Wochentag des Moments, in dem der Code läuft, CurrentDayOfWeek.
  • Offset jenseits der Historie. DayOfWeek[N] benötigt N Bars Historie. Am linken Rand des Charts ist der Wert undefiniert.
  • CurrentDayOfWeek, Wochentag der Uhr zum Ausführungszeitpunkt.
  • OpenDayOfWeek, Wochentag bei der Eröffnung jedes Bars.
  • Day, Tag des Monats jedes Bars, 1 bis 31.
  • Month, Monat jedes Bars.
  • Year, vierstelliges Jahr jedes Bars.
  • Days, vollständige Tage, die seit dem 1. Januar 1900 bis zu jedem Bar vergangen sind.
  • TIME, Schlusszeit jedes Bars als HHMMSS-Ganzzahl.
  • Today, Datum des aktuellen Bars in der Form YYYYMMDD.