Iscriviti ora
Data e ora/probuilder · probacktest · proorder · proscreener

Timestamp

Timestamp restituisce il timestamp Unix dell'orario di chiusura della candela corrente in ProBuilder, contando i secondi trascorsi dal 1 gennaio 1970 alle 00:00 UTC.

Sintassi

probuilder
Timestamp

La parola chiave non accetta parametri. Un indice storico tra parentesi quadre legge le bar precedenti, quindi Timestamp[1] restituisce il timestamp di chiusura del bar precedente.

Come funziona

Un timestamp Unix rappresenta il tempo come numero totale di secondi trascorsi dall'Epoch Unix, 1 gennaio 1970 alle 00:00:00 UTC. Timestamp riporta tale conteggio per la chiusura di ogni candela. La scala è universale: non dipende dall'impostazione del fuso orario della piattaforma, dalla posizione geografica o dalle regole dell'ora legale, il che la rende la base affidabile per il calcolo del tempo negli script di trading.

Poiché il conteggio è lineare, sottrarre due valori Timestamp dà una differenza esatta in secondi. Questa è la proprietà che i valori HHMMSS come TIME mancano, poiché le loro cifre codificano ore e minuti in modo posizionale. I pattern tipici comprendono il salvataggio del timestamp di un evento di riferimento in una variabile, per poi confrontare i bar successivi con esso e misurare quanto tempo è passato.

La parola chiave correlata OpenTimestamp riporta l'ora Unix dell'apertura del bar invece della chiusura. Su un bar completato, Timestamp - OpenTimestamp è pari alla durata della barra. Sulla barra in formazione, Timestamp continua ad avanzare, quindi la stessa espressione misura l'età della barra fino a quel momento.

Esempi

Esempio 1, Secondi trascorsi dall'apertura della settimana (Indicatore)

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"

Un calo nel numero del giorno della settimana segna la prima bar di una nuova settimana. Il suo Timestamp viene memorizzato e ogni bar successiva traccia il numero di secondi trascorsi da quel riferimento.

Esempio 2, Uscire da una posizione dopo un tempo di mantenimento fisso (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

Il Timestamp della bar di ingresso viene salvato all'apertura della posizione. Quando la differenza raggiunge 7200 secondi, due ore, la posizione viene chiusa indipendentemente dal prezzo.

Esempio 3, Escludere gli strumenti con dati sporadici (ProScreener)

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

Confrontare i timestamp di chiusura delle ultime due bar esclude gli strumenti i cui dati arrivano meno di una volta al giorno.

Errori e insidie comuni

  • Secondi, non millisecondi. I timestamp di ProBuilder contano i secondi. Le soglie copiate da ambienti che usano epoch in millisecondi sono errate di un fattore 1000.
  • Orario di chiusura, non ora dell'orologio. Sulle bar storiche, Timestamp è il momento in cui quella bar si è chiusa, non l'ora attuale. Trattarlo come "adesso" durante un replay di backtest porta a condizioni che storicamente non sono mai state vere.
  • Non confrontabile con date o valori HHMMSS. Un timestamp come 1719849600 non condivide la scala con 20240701 o 140000. I confronti tra formati diversi vengono compilati ma producono risultati privi di senso.
  • Variabili di riferimento non inizializzate. Pattern come Timestamp - firstBarTime restituiscono il conteggio epoch completo fino alla prima assegnazione della variabile di riferimento, poiché le variabili non impostate partono da 0. Proteggi l'espressione o attendi che l'evento di riferimento si sia verificato.
  • OpenTimestamp, timestamp Unix dell'apertura della bar.
  • CurrentTime, ora dell'orologio in formato HHMMSS.
  • OpenTime, orario di apertura della bar come intero HHMMSS.
  • TIME, orario di chiusura di una bar in formato HHMMSS.
  • DayOfWeek, giorno della settimana della bar, utile per gli ancoraggi settimanali.
  • Today, data della bar corrente in formato YYYYMMDD.
  • BarIndex, numero di bar dall'inizio dello storico caricato.