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

CurrentDayOfWeek

CurrentDayOfWeek gibt den Wochentag der Uhr zum Ausführungszeitpunkt zurück, 0 Sonntag bis 6 Samstag, auf jedem Bar gleich, im Unterschied zum bar-bezogenen Wert DayOfWeek.

Syntax

probuilder
CurrentDayOfWeek

So funktioniert es

CurrentDayOfWeek liest die Uhr zum Zeitpunkt der Codeausführung und gibt den Wochentag als Ganzzahl zurück. ProRealTime™ verwendet die Zeitzone des Marktes des Instruments als Referenz, daher kann der Wert vom Wochentag auf dem Rechner abweichen, der den Chart anzeigt. Die Konstante nimmt keine Parameter und keinen Klammer-Offset an.

Der Wert folgt der Konvention der Plattform mit 0 für Sonntag, 1 für Montag, 2 für Dienstag und so weiter bis 6 für Samstag.

Weil die Zahl von der Uhr und nicht aus den Chartdaten kommt, sieht jeder Bar einer Berechnung denselben Wert. Ein an einem Dienstag neu berechneter Indikator gibt auf jedem historischen Bar des Charts 2 zurück. Das ist der entscheidende Unterschied zur Schwesterkonstante DayOfWeek, das den Wochentag des Schlusskurses jedes verarbeiteten Bars liefert und sich daher entlang der Zeitachse ändert. Bedingungen, die historische Bars nach Wochentag filtern, gehören zu DayOfWeek; CurrentDayOfWeek beantwortet die Frage, welcher Tag gerade ist.

In einem live laufenden ProOrder-System stimmen die beiden Werte auf dem aktuellsten intraday Bar meist überein, da die Strategie die Bars in Echtzeit verarbeitet. In einem Backtest weichen sie vollständig voneinander ab: CurrentDayOfWeek spiegelt den Tag wider, an dem der Test läuft, nicht den Tag irgendeines historischen Bars.

Beispiele

Beispiel 1, Einen bestimmten Wochentag markieren (Indikator)

probuilder
// Set the flag when the script executes on a Wednesday
IF (CurrentDayOfWeek = 3) THEN
    Wednesday = 1
ELSE
    Wednesday = 0
ENDIF
RETURN Wednesday

Der Indikator zeichnet über den gesamten Chart 1, wenn er an einem Mittwoch neu berechnet wird, und sonst 0, was veranschaulicht, dass der Wert nicht pro Bar variiert.

Beispiel 2, Scan nur am Freitag (ProScreener)

probuilder
// Return matches only when the scan itself runs on a Friday
isFriday = (CurrentDayOfWeek = 5)
SCREENER[isFriday AND close > Average[20](close)] (close AS "Close")

Der Screener liefert nur Ergebnisse, wenn er an einem Freitag ausgeführt wird, unabhängig von den Daten der Bars, die er scannt.

Beispiel 3, Wochenendsperre in einem 24/7-Markt (ProOrder)

probuilder
// Stand aside at the weekend on a market that trades every day
DEFPARAM CumulateOrders = false
weekend = (CurrentDayOfWeek = 0) OR (CurrentDayOfWeek = 6)
IF NOT weekend AND close > Average[50](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

Im Live-Betrieb blockiert der Filter neue Einstiege an Samstagen und Sonntagen. In einem Backtest filtert derselbe Code nichts Sinnvolles, weil jeder historische Bar den Tag sieht, an dem der Test läuft; eine historische Version dieses Filters benötigt DayOfWeek.

Häufige Fehler und Stolperfallen

  • Über den gesamten Chart konstant. Jeder Bar ergibt dieselbe Zahl, den Wochentag des Ausführungszeitpunkts. CurrentDayOfWeek zum Filtern historischer Bars lässt unbemerkt den gesamten Chart auf einmal durch oder blockiert ihn ganz. Verwenden Sie DayOfWeek für Bedingungen pro Bar.
  • Nummerierung des Sonntags. Das Handbuch der Plattform definiert den Bereich von 0 für Sonntag bis 6 für Samstag. Manche Referenzen nummerieren die Woche von 1 bis 7 mit Sonntag als 7. Montag bis Samstag stimmen in beiden Schemata überein; prüfen Sie die Behandlung des Sonntags auf einem Live-Chart, bevor Sie sich darauf verlassen.
  • Backtest-Ergebnisse, die das Live-Verhalten nicht reproduzieren können. Ein auf CurrentDayOfWeek aufgebauter Wochentagsfilter verhält sich in der Live-Ausführung korrekt, ist historisch aber nicht testbar, sodass die backtest-Statistiken eines solchen Systems den Live-Filter nicht widerspiegeln.
  • Kein Bracket-Offset. CurrentDayOfWeek[1] ist ungültig. Die Konstante hat keine Historie, in die indexiert werden könnte; nur die Konstanten pro Bar wie DayOfWeek[N] akzeptieren einen Offset.
  • DayOfWeek, Wochentag des Schlusses jedes Bars, das bar-bezogene Gegenstück zu dieser Konstante.
  • OpenDayOfWeek, Wochentag bei der Eröffnung jedes Bars.
  • CurrentTime, Uhrzeit zum Ausführungszeitpunkt als HHMMSS-Ganzzahl.
  • CurrentHour, Stunde der Uhr zum Ausführungszeitpunkt.
  • CurrentMinute, Minute der Uhr zum Ausführungszeitpunkt.
  • CurrentMonth, Monat der Uhr zum Ausführungszeitpunkt.
  • CurrentYear, Jahr der Uhr zum Ausführungszeitpunkt.
  • Day, Tag des Monats zum Schluss jedes Bars.