Timestamp
Timestamp geeft in ProBuilder de Unix-timestamp van de sluitingstijd van de huidige candlestick terug, en telt de seconden die zijn verstreken sinds 1 January 1970 om 00:00 UTC.
Syntaxis
TimestampHet keyword neemt geen parameters. Een historie-index tussen vierkante haken leest eerdere bars, dus Timestamp[1] geeft het sluitingstijdstip van de vorige bar.
Hoe het werkt
Een Unix-timestamp geeft tijd weer als het totale aantal seconden dat is verstreken sinds de Unix Epoch, 1 January 1970 om 00:00:00 UTC. Timestamp rapporteert dat aantal voor het slot van elke candlestick. De schaal is universeel: die is niet afhankelijk van de tijdzone-instelling van het platform, de geografische locatie of zomertijdregels, wat het de betrouwbare basis maakt voor rekenen met tijd in trading scripts.
Omdat de telling lineair is, levert het aftrekken van twee Timestamp-waarden een exact verschil in seconden op. Dit is de eigenschap die HHMMSS-waarden zoals TIME missen, omdat hun cijfers uren en minuten positioneel vastleggen. Typische patronen zijn het opslaan van het tijdstempel van een referentiegebeurtenis in een variabele en daarna latere bars daarmee vergelijken om te meten hoeveel tijd er is verstreken.
Het gerelateerde sleutelwoord OpenTimestamp rapporteert de Unix-tijd van de baropen in plaats van de close. Op een afgeronde bar, Timestamp - OpenTimestamp is gelijk aan de duur van de bar. Op de bar die live wordt gevormd blijft Timestamp oplopen, dus dezelfde expressie meet de leeftijd van de bar tot nu toe.
Voorbeelden
Voorbeeld 1, Verstreken seconden sinds de week opende (Indicator)
// Store the timestamp of the first bar of each new week
IF DayOfWeek < DayOfWeek[1] THEN
firstBarTime = Timestamp
ENDIF
RETURN Timestamp - firstBarTime AS "elapsed seconds"Een daling in het getal voor de dag van de week markeert de eerste bar van een nieuwe week. De Timestamp daarvan wordt opgeslagen en elke volgende bar plot het aantal seconden dat sinds dat referentiepunt is verstreken.
Voorbeeld 2, Een positie sluiten na een vaste houdtijd (ProOrder)
// Record the entry time, then exit after two hours on market
IF NOT OnMarket AND close CROSSES OVER Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
entryStamp = Timestamp
ENDIF
IF LongOnMarket AND Timestamp - entryStamp >= 7200 THEN
SELL AT MARKET
ENDIFDe Timestamp van de instapbar wordt opgeslagen wanneer de positie opent. Zodra het verschil 7200 seconden bereikt, twee uur, wordt de positie gesloten ongeacht de koers.
Voorbeeld 3, Instrumenten met schaarse data uitsluiten (ProScreener)
// Match instruments whose last two bars closed less than a day apart
active = Timestamp - Timestamp[1] < 86400
SCREENER[active] ("Bar age")Het vergelijken van de slot-timestamps van de laatste twee bars filtert instrumenten weg waarvan de data minder vaak dan eenmaal per dag binnenkomt.
Veelvoorkomende fouten en valkuilen
- Seconden, geen milliseconden. ProBuilder-timestamps tellen seconden. Drempelwaarden die zijn gekopieerd uit omgevingen met epochs in milliseconden zitten er een factor 1000 naast.
- Sluitingstijd, niet kloktijd. Op historische bars is Timestamp het moment waarop die bar sloot, niet het huidige tijdstip. Het behandelen als "nu" tijdens een backtest-replay leidt tot voorwaarden die historisch nooit waar waren.
- Niet vergelijkbaar met datums of HHMMSS-waarden. Een tijdstempel zoals
1719849600deelt geen schaal met20240701of140000. Vergelijkingen tussen formaten compileren wel, maar leveren zinloze resultaten op. - Niet-geïnitialiseerde referentievariabelen. Patronen zoals
Timestamp - firstBarTimegeven de volledige epoch-waarde terug totdat de referentievariabele voor het eerst is toegekend, omdat niet-toegekende variabelen op 0 beginnen. Bescherm de expressie of wacht tot de referentiegebeurtenis heeft plaatsgevonden.
Gerelateerde instructies
OpenTimestamp, Unix-timestamp van de opening van de bar.CurrentTime, kloktijd in HHMMSS-formaat.OpenTime, openingstijd van de bar als geheel getal in HHMMSS.TIME, sluitingstijd van een bar in HHMMSS-formaat.DayOfWeek, dag van de week van de bar, nuttig voor wekelijkse ankerpunten.Today, datum van de huidige bar in YYYYMMDD-formaat.BarIndex, aantal bars sinds het begin van de geladen historie.