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

CurrentSecond

CurrentSecond gibt die Sekunde der Uhr zum Ausführungszeitpunkt zurück, 0 bis 59, auf jedem Bar des Charts identisch. Verwenden Sie Second, um die Sekunde des Schlusses jedes Bars zu lesen.

Syntax

probuilder
CurrentSecond

So funktioniert es

CurrentSecond liest die Uhr zum Zeitpunkt der Codeausführung und gibt die Sekunde innerhalb der aktuellen Minute zurück, von 0 bis 59. 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:30 aktualisierter Indikator gibt auf jedem historischen Bar 30 zurück. Das Gegenstück pro Bar ist Second, der die Sekunde des Schlusses jeder verarbeiteten Bar zurückgibt und sich entlang der Zeitachse ändert. Timing unterhalb der Minute auf historischen Daten gehört zu Second; CurrentSecond beschreibt die aktuelle Uhrzeit.

In einem live laufenden ProOrder-System ist CurrentSecond sinnvoll, da der Code in Echtzeit ausgeführt wird, während die Bars eintreffen. In einem Backtest spiegelt es die Sekunde wider, in der der Test läuft, was es für historische Einstiegs- oder Ausstiegsbedingungen unbrauchbar macht.

Beispiele

Beispiel 1, Halbminuten-Markierung (Indikator)

probuilder
// Set the flag when the script executes at 30 seconds past the minute
mySecond = CurrentSecond
IF mySecond = 30 THEN
    onHalfMinute = 1
ELSE
    onHalfMinute = 0
ENDIF
RETURN onHalfMinute

Der Indikator zeichnet über den gesamten Chart 1, wenn er genau bei Sekunde 30 der aktuellen Minute neu berechnet wird, und sonst 0.

Beispiel 2, Scan in den frühen Sekunden (ProScreener)

probuilder
// Return matches only in the first ten seconds of the minute
earlySecond = CurrentSecond < 10
SCREENER[earlySecond AND close > Average[20](close)] (close AS "Close")

Der Screener gibt eine leere Liste zurück, sobald die Uhr Sekunde 10 überschreitet, eine Möglichkeit, geplante Scans über ein enges Fenster zu verteilen.

Beispiel 3, Durch die Sekunde gesteuerte Prüfung (ProOrder)

probuilder
// Only evaluate entries during the last seconds of a minute
DEFPARAM CumulateOrders = false
lateSecond = CurrentSecond >= 55
IF lateSecond AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

Im Live-Betrieb prüft das System das Signal nur in den letzten Sekunden jeder Minute. Backtests können diesen Zweig nicht sinnvoll durchlaufen, da CurrentSecond auf jedem Bar die Sekunde des Testlaufs enthält.

Häufige Fehler und Stolperfallen

  • Auf jedem Bar derselbe Wert. CurrentSecond beschreibt die Uhr, nicht den Chart, daher ist eine Bedingung wie CurrentSecond = 30 ist für die gesamte Berechnung auf einmal true oder false. Zeitlogik pro Bar benötigt Second.
  • Blinder Fleck im Backtest. In einem Backtest gibt CurrentSecond die Sekunde zurück, in der der Test ausgeführt wird, sodass darauf aufgebaute Filter pauschal durchlassen oder pauschal blockieren und Ergebnisse erzeugen, die dem Live-Verhalten nicht entsprechen.
  • Enges Trefferfenster. Ein exakter Test wie CurrentSecond = 30 gilt nur während einer einzigen Sekunde der Uhrzeit, sodass eine Neuberechnung sie kaum trifft. Bereiche wie CurrentSecond < 10 sind zuverlässiger.
  • Kein Bracket-Offset. CurrentSecond[1] lässt sich nicht kompilieren. Nur Konstanten pro Bar wie Second[N] akzeptieren einen Index.
  • Second, Sekunde des Schlusses jedes Bars, das bar-bezogene Gegenstück zu dieser Konstante.
  • OpenSecond, Sekunde bei der Eröffnung jedes Bars.
  • CurrentMinute, Minute der Uhr zum Ausführungszeitpunkt.
  • CurrentHour, Stunde der Uhr zum Ausführungszeitpunkt.
  • CurrentTime, vollständige Uhrzeit bei Ausführung als HHMMSS-Ganzzahl.
  • Minute, Minute des Schlusses jedes Bars.
  • TIME, Schlusszeit jedes Bars als HHMMSS-Ganzzahl.
  • Timestamp, UNIX-Zeit des Schlusses jedes Bars.