CurrentHour
CurrentHour gibt die Stunde der Uhr zum Ausführungszeitpunkt zurück, 0 bis 23, auf jedem Bar des Charts identisch. Verwenden Sie Hour, um die Stunde des Schlusses jedes Bars zu lesen.
Syntax
CurrentHourSo funktioniert es
CurrentHour liest die Uhr zum Zeitpunkt der Codeausführung und gibt die Stunde im 24-Stunden-Format zurück, von 0 bis 23. 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 um 14:20 aktualisierter Indikator gibt auf jedem historischen Bar 14 zurück. Das Gegenstück pro Bar ist Hour, der die Stunde des Schlusses jeder verarbeiteten Bar zurückgibt und sich entlang der Zeitachse ändert. Auf historische Daten angewandte Session-Filter gehören zu Hour oder TIME; CurrentHour beschreibt die aktuelle Uhrzeit.
In einem live laufenden ProOrder-System ist CurrentHour sinnvoll, da der Code in Echtzeit ausgeführt wird, während die Bars eintreffen. In einem Backtest spiegelt es die Stunde wider, in der der Test läuft, was es für historische Einstiegs- oder Ausstiegsbedingungen unbrauchbar macht.
Beispiele
Beispiel 1, Mittagsmarkierung (Indikator)
// Set the flag when the script executes during the 12 o'clock hour
IF (CurrentHour = 12) THEN
GoLunch = 1
ELSE
GoLunch = 0
ENDIF
RETURN GoLunchDer Indikator zeichnet über den gesamten Chart 1, wenn er zwischen 12:00:00 und 12:59:59 Marktzeit neu berechnet wird, und 0 zu jeder anderen Tageszeit.
Beispiel 2, Auf Handelszeiten beschränkter Scan (ProScreener)
// Return matches only while the cash session is open
inSession = (CurrentHour >= 9) AND (CurrentHour < 17)
SCREENER[inSession AND close > Average[20](close)] (close AS "Close")Der Screener gibt außerhalb der gewählten Stunden eine leere Liste zurück, eine Möglichkeit, einen geplanten Scan außerhalb der Handelszeit still zu halten.
Beispiel 3, Abendliche Abschaltung (ProOrder)
// Stop the strategy before the evening maintenance window
DEFPARAM CumulateOrders = false
IF CurrentHour >= 22 THEN
QUIT
ENDIF
IF close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFIm Live-Betrieb stoppt sich das System ab 22:00 Marktzeit selbst. Backtests können diesen Zweig nicht sinnvoll durchlaufen, da CurrentHour auf jedem Bar die Stunde des Testlaufs enthält.
Häufige Fehler und Stolperfallen
- Auf jedem Bar derselbe Wert. CurrentHour beschreibt die Uhrzeit, nicht den Chart, daher eine Bedingung wie
CurrentHour = 12ist für die gesamte Berechnung auf einmal true oder false. Session-Logik pro Bar benötigtHouroderTIME. - Blinder Fleck im Backtest. In einem Backtest gibt CurrentHour die Stunde zurück, in der der Test ausgeführt wird, sodass darauf aufgebaute Zeitfilter pauschal durchlassen oder pauschal blockieren und Ergebnisse erzeugen, die dem Live-Verhalten nicht entsprechen.
- Zeitzone des Marktes, nicht Ortszeit. Die Stunde bezieht sich auf den Markt des Instruments. Ein Chart einer New Yorker Notierung, von Europa aus betrachtet, gibt New Yorker Stunden zurück, nicht die lokalen Stunden des Betrachters.
- Kein Bracket-Offset.
CurrentHour[1]lässt sich nicht kompilieren. Nur Konstanten pro Bar wieHour[N]akzeptieren einen Index.
Verwandte Befehle
Hour, Stunde des Schlusses jedes Bars, das bar-bezogene Gegenstück zu dieser Konstante.OpenHour, Stunde bei der Eröffnung jedes Bars.CurrentMinute, Minute der Uhr zum Ausführungszeitpunkt.CurrentSecond, Sekunde der Uhr zum Ausführungszeitpunkt.CurrentTime, vollständige Uhrzeit bei Ausführung als HHMMSS-Ganzzahl.CurrentDayOfWeek, Wochentag der Uhr zum Ausführungszeitpunkt.TIME, Schlusszeit jedes Bars als HHMMSS-Ganzzahl.Timestamp, UNIX-Zeit des Schlusses jedes Bars.