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

Second

Second liefert in ProBuilder die Sekunden nach der vollen Minute, 0 bis 59, für den Zeitstempel der aktuellen Kerze. Nur auf sekundenbasierten intraday-Charts relevant.

Syntax

probuilder
Second

Das Schlüsselwort nimmt keine Parameter. Ein Historienindex in eckigen Klammern liest frühere Bars, daher Second[1] gibt die Sekundenkomponente des Zeitstempels des vorherigen Bars zurück.

So funktioniert es

Jeder Bar trägt einen Zeitstempel, und Second isoliert dessen Sekundenfeld. Das Ergebnis ist immer eine ganze Zahl zwischen 0 und 59. Auf einem 15-Sekunden-Chart durchlaufen die Werte aufeinanderfolgender Bars 15, 30, 45, 0, während auf jedem Chart, dessen Zeiteinheit eine Minute oder gröber ist, der Wert auf jedem Bar 0 beträgt, weil solche Bars immer genau auf einer Minutengrenze schließen.

Die Genauigkeit der Ausgabe hängt daher vollständig von der Chart-Granularität ab. Skripte, die sich auf Second stützen, verhalten sich nur auf sekundenbasierten intraday-Charts sinnvoll, wo das Timing auf die Sekunde genau zählt, zum Beispiel rund um geplante Nachrichtenveröffentlichungen.

Second beschreibt den Zeitstempel der Bar, der dem Bar-Schluss entspricht. Die Sekundenkomponente der Bar-Eröffnung ist verfügbar über OpenSecond, und das Sekundenfeld der Uhrzeit über CurrentSecond. Kombiniert mit Hour und Minute, kann das Schlüsselwort einen vollständigen HHMMSS-Wert aus seinen Teilen rekonstruieren.

Beispiele

Beispiel 1, Auslesen des Sekundenfelds jedes Bar (Indikator)

probuilder
// Store the seconds portion of the current bar's timestamp
mySecond = Second
RETURN mySecond

Der Indikator zeichnet die Sekundenkomponente Bar für Bar, was eine schnelle Möglichkeit ist, die Chart-Granularität zu prüfen oder zeitbasierte Logik zu debuggen.

Beispiel 2, Rekonstruktion eines vollständigen HHMMSS-Werts (Indikator)

probuilder
// Rebuild an HHMMSS time value from its components
fullTime = Hour * 10000 + Minute * 100 + Second
RETURN fullTime

Die Multiplikation jeder Komponente in ihre Dezimalposition rekonstruiert genau das zusammengesetzte Format von TIME, nützlich, wenn die Teile zuerst separat bearbeitet werden.

Beispiel 3, Handeln nur an Minutengrenzen (ProOrder)

probuilder
// On a 15-second chart, act only on bars closing exactly on the minute
IF Second = 0 AND NOT OnMarket THEN
  IF close > Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ENDIF
SET STOP PLOSS 20

In einem sekundenbasierten Chart ist die Bedingung Second = 0 wählt einen Bar pro Minute aus und verringert so die Signalfrequenz, ohne die Zeiteinheit des Charts zu ändern.

Häufige Fehler und Stolperfallen

  • Auf Minutencharts und darüber immer null. Auf 1-Minuten-, Stunden- oder Tages-Charts gibt Second auf jeder Bar 0 zurück. Eine Bedingung wie Second = 30 kann dann niemals wahr sein, und der umgebende Block wird zu totem Code.
  • Bar-Zeitstempel im Vergleich zur Uhrzeit. Second liest den Zeitstempel der Bar, nicht die aktuelle Tageszeit. Für die Echtzeituhr, CurrentSecond ist das richtige Schlüsselwort; die beiden stimmen nur im Moment des Bar-Schlusses überein.
  • Close im Vergleich zum Open. Der Zeitstempel des Bars entspricht dem Schluss des Bars. Das Sekundenfeld des Eröffnungszeitpunkts erfordert OpenSecond, und die beiden unterscheiden sich um die Bar-Dauer bei sekundenbasierten Charts.
  • CurrentSecond, Sekundenfeld der aktuellen Uhrzeit.
  • OpenSecond, Sekundenkomponente der Eröffnungszeit des Bar.
  • Minute, Minutenkomponente des bar-Zeitstempels.
  • Hour, Stundenkomponente des bar-Zeitstempels.
  • TIME, vollständige Schlusszeit eines Bars im Format HHMMSS.
  • Timestamp, Unix-Zeitstempel des Bar-Schlusses in Sekunden.