Bli medlem i dag
Dato og tid/probuilder · probacktest · proorder · proscreener

Timestamp

Timestamp returnerer Unix-tidsstempelet for lukketiden til gjeldende candlestick i ProBuilder, og teller sekunder som har gått siden 1. januar 1970 kl. 00:00 UTC.

Syntaks

probuilder
Timestamp

Nøkkelordet tar ingen parametere. En historikkindeks i hakeparenteser leser tidligere bars, så Timestamp[1] gir lukketidspunktet for forrige bar.

Slik fungerer det

Et Unix-tidsstempel representerer tid som det totale antallet sekunder som har gått siden Unix-epoken, 1. januar 1970 kl. 00:00:00 UTC. Timestamp rapporterer det antallet for lukkingen av hvert candlestick. Skalaen er universell: den avhenger ikke av plattformens tidssoneinnstilling, geografisk plassering eller regler for sommertid, noe som gjør den til det pålitelige grunnlaget for tidsberegninger i tradingskript.

Fordi tellingen er lineær, gir det å trekke én Timestamp-verdi fra en annen en eksakt differanse i sekunder. Dette er egenskapen som HHMMSS-verdier som TIME mangler, siden sifrene koder timer og minutter posisjonelt. Typiske mønstre er å lagre tidsstemplet til en referansehendelse i en variabel, og deretter sammenligne senere barer mot den for å måle hvor mye tid som har gått.

Det relaterte nøkkelordet OpenTimestamp rapporterer Unix-tiden for barens åpning i stedet for lukkingen. På en fullført bar, Timestamp - OpenTimestamp er lik barens varighet. På den levende baren som dannes, fortsetter Timestamp å øke, så samme uttrykk måler alderen på baren så langt.

Eksempler

Eksempel 1, Sekunder som har gått siden uken åpnet (Indikator)

probuilder
// 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"

Et fall i ukedagsnummeret markerer den første baren i en ny uke. Timestamp for den lagres, og hver påfølgende bar plotter antallet sekunder som har gått siden den referansen.

Eksempel 2, Gå ut av en posisjon etter en fast holdetid (ProOrder)

probuilder
// 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
ENDIF

Timestamp for inngangsbaren lagres når posisjonen åpnes. Når differansen når 7200 sekunder, to timer, lukkes posisjonen uavhengig av pris.

Eksempel 3, Utelate instrumenter med sparsomme data (ProScreener)

probuilder
// Match instruments whose last two bars closed less than a day apart
active = Timestamp - Timestamp[1] < 86400
SCREENER[active] ("Bar age")

Å sammenligne lukketidsstemplene til de to siste barene filtrerer ut instrumenter hvis data kommer sjeldnere enn én gang per dag.

Vanlige feil og fallgruver

  • Sekunder, ikke millisekunder. ProBuilder-tidsstempler teller sekunder. Terskler kopiert fra miljøer som bruker millisekund-epoker er feil med en faktor på 1000.
  • Lukketid, ikke klokketid. På historiske barer er Timestamp øyeblikket den baren lukket, ikke nåtiden. Å behandle den som "nå" under en backtest-avspilling fører til betingelser som aldri var sanne historisk.
  • Ikke sammenlignbar med datoer eller HHMMSS-verdier. Et tidsstempel som 1719849600 deler ingen skala med 20240701 eller 140000. Sammenligninger på tvers av formater kompilerer, men gir meningsløse resultater.
  • Uinitialiserte referansevariabler. Mønstre som Timestamp - firstBarTime returnerer hele epoketallet til referansevariabelen tilordnes første gang, siden utilordnede variabler starter på 0. Sikre uttrykket eller vent til referansehendelsen har inntruffet.
  • OpenTimestamp, Unix-tidsstempel for åpningen av baren.
  • CurrentTime, klokketid i HHMMSS-format.
  • OpenTime, åpningstiden for baren som et HHMMSS-heltall.
  • TIME, stengetiden for en bar i HHMMSS-format.
  • DayOfWeek, ukedagen til baren, nyttig for ukentlige ankerpunkter.
  • Today, datoen for gjeldende bar i YYYYMMDD-format.
  • BarIndex, antall barer siden begynnelsen av den innlastede historikken.