OpenDate
OpenDate gibt in ProBuilder das Datum zurück, an dem ein Bar eröffnet hat, im Format YYYYMMDD. Verwenden Sie es, um Trades oder Analysen auf exakte Kalenderdaten in jeder Chart-Zeiteinheit festzulegen.
Syntax
OpenDateSo funktioniert es
OpenDate liest den Eröffnungszeitstempel des aktuellen Bars und gibt sein Datum als eine Ganzzahl in der Form YYYYMMDD zurück. Ein Bar, der am 8. Juli 2026 eröffnet hat, ergibt 20260708. Jahr, Monat und Tag sind in einen einzigen Wert gepackt, was chronologische Vergleiche trivial macht: ein numerisch größeres OpenDate ist immer ein späteres Datum.
Das Schlüsselwort nimmt keine Parameter. Es bezieht sich auf die Eröffnungszeit des Bars, während bloße Datums-Schlüsselwörter wie Today beschreiben das Schlussdatum des Bars. Auf Tagesbars stimmen beide normalerweise überein, aber auf Wochen-, Monats- oder sitzungsübergreifenden Bars können Eröffnungs- und Schlussdatum abweichen, die Wahl des Schlüsselworts ist daher wichtig.
Da das Format drei Felder in eine Zahl packt, erfordert das Herauslösen einer Komponente Rechenarbeit. Die einzelnen Teile sind auch direkt verfügbar über OpenYear, OpenMonth, und OpenDay, was meist der klarere Ansatz ist.
Typische Anwendungen sind das Beschränken eines Backtests auf einen Datumsbereich, das Verankern von Berechnungen an einem bekannten Ereignisdatum und das Abschalten eines Live-Systems nach einem festen Ablaufdatum.
Beispiele
Beispiel 1, Das Eröffnungsdatum jedes Bars anzeigen (Indikator)
// Store and plot the opening date of the current bar
myOpenDate = OpenDate
RETURN myOpenDateDer Indikator gibt das Eröffnungsdatum jedes Bars als YYYYMMDD-Zahl zurück, eine schnelle Möglichkeit zu prüfen, zu welchem Kalenderdatum ein Bar gehört.
Beispiel 2, Einen Backtest auf ein Startdatum begrenzen (ProBacktest)
// Ignore all history before 2 January 2024
IF OpenDate >= 20240102 THEN
IF close CROSSES OVER Average[50](close) THEN
BUY 1 SHARES AT MARKET
ENDIF
ENDIFDa YYYYMMDD-Zahlen chronologisch sortieren, schließt ein einziger Vergleich mit dem Literal 20240102 jeden Bar aus, der vor diesem Datum eröffnet hat.
Beispiel 3, Ein System nach einem Ablaufdatum deaktivieren (ProOrder)
// Stop opening new positions from 1 December 2026 onward
expired = OpenDate >= 20261201
IF NOT expired AND close CROSSES OVER Highest[20](close[1]) THEN
BUY 1 SHARES AT MARKET
ENDIFDer breakout-Einstieg bleibt nur aktiv, solange das Eröffnungsdatum des Bars vor dem Stichtag liegt, eine einfache Möglichkeit, eine Live-Strategie zeitlich zu begrenzen.
Häufige Fehler und Stolperfallen
- Eine Zahl, kein Datumsobjekt. OpenDate gibt eine Ganzzahl zurück. Datumsarithmetik wie das Addieren von 7 ergibt nicht das Datum eine Woche später, sie addiert nur 7 zur Zahl und scheitert an Monatsgrenzen. Verwenden Sie Vergleiche, nicht Arithmetik.
- Eröffnungsdatum gegenüber Schlussdatum. OpenDate beschreibt, wann die Bar eröffnet hat. Bei Wochen- oder Monatsbars kann das Schlussdatum in einen anderen Monat oder ein anderes Jahr fallen. Vergleichen Sie mit
Today, das dem Datum des Bars beim close folgt. - Das Extrahieren einzelner Komponenten ist indirekt. Den Monat aus 20260708 herauszulösen erfordert Division und Rundung. Bevorzugen Sie
OpenYear,OpenMonth, undOpenDay, die die Komponenten direkt zurückgeben. - Vollständige achtstellige Literale erforderlich. Vergleiche müssen vollständige YYYYMMDD-Werte verwenden. Eine Bedingung wie
OpenDate = 0708trifft niemals zu, weil der gespeicherte Wert immer das Jahr enthält.
Verwandte Befehle
Today, Datum des aktuellen Bars im Format YYYYMMDD, bezogen auf den Schluss.OpenDay, Tag des Monats, an dem der aktuelle Bar eröffnet hat.OpenMonth, Monatsnummer, in der der aktuelle Bar eröffnet hat.OpenYear, Jahr, in dem der aktuelle Bar eröffnet hat.OpenTime, Eröffnungszeit des aktuellen Bars im Format HHMMSS.OpenHour, Stunde, in der der aktuelle Bar eröffnet hat.Timestamp, Zeitstempel des Bar-Schlusses in Sekunden seit 1970.OpenTimestamp, Zeitstempel der Bar-Eröffnung in Sekunden seit 1970.