Bli medlem idag
Datum och tid/probuilder · probacktest · proorder · proscreener

Today

Today returnerar datumet för en bar N handelsdagar före den aktuella som ett heltal i formatet YYYYMMDD. Today[0] ger den aktuella dagens datum i ProBuilder-skript.

Syntax

probuilder
Today
Today[N]

Parametrar

NamnTypStandardBeskrivning
Nheltal0Antal handelsperioder före den aktuella baren. 0 är den aktuella dagen; N måste vara icke-negativt.

Så fungerar det

Today exponerar datum som kompakta heltal i formatet YYYYMMDD, så 1 mars 2024 blir 20240301. Utan index, eller med Today[0], returnerar nyckelordet datumet för den aktuella handelsdagen. Med ett positivt index går det bakåt genom diagramhistoriken: Today[10] är datumet för baren 10 handelsperioder före den aktuella.

Indexet räknar endast handelsdagar. Helger och marknadshelgdagar förekommer inte i datan, så de hoppas över snarare än räknas, och Today[5] på en måndag sträcker sig vanligtvis mer än fem kalenderdagar bakåt.

Eftersom YYYYMMDD-heltal växer med tiden sorteras de korrekt med vanliga jämförelseoperatorer. Today >= 20240301 är ett giltigt sätt att begränsa logik till datum från och med den 1 mars 2024. Vad formatet inte stöder är kalenderaritmetik: skillnaden mellan två YYYYMMDD-värden är inte ett antal dagar, så mätningar av förfluten tid bör använda Timestamp istället.

Exempel

Exempel 1, Läsa ett datum tio handelsdagar tillbaka (Indikator)

probuilder
// Date of the bar 10 trading days before the current one
previousDate = Today[10]
RETURN previousDate

Indikatorn returnerar YYYYMMDD-datumet för baren tio handelsperioder tidigare och hoppar över helger och helgdagar på vägen.

Exempel 2, Aktivera en strategi från ett fast datum (ProBacktest)

probuilder
// Ignore all signals before 1 March 2024
IF Today >= 20240301 THEN
  IF close CROSSES OVER Average[20](close) THEN
    BUY 1 SHARES AT MARKET
  ENDIF
ENDIF

Datumfiltret begränsar backtestet till barer på eller efter den valda dagen, även när en mycket längre historik är inläst i diagrammet.

Exempel 3, Upptäcka den första baren på en ny dag (ProScreener)

probuilder
// Match instruments whose current bar starts a new calendar date
newDay = Today > Today[1]
SCREENER[newDay] ("New date")

Eftersom YYYYMMDD-värden ökar med tiden isolerar villkoret att den aktuella barens datum överstiger det föregående den första baren på varje ny dag.

Vanliga fel och fallgropar

  • Datumsubtraktion är inte dagräkning. 20240301 - 20240229 är lika med 72, inte 1. YYYYMMDD-heltal är positionella sammansättningar, så differenser över månads- eller årsgränser är meningslösa. Varaktigheter kräver Timestamp.
  • Indexet räknar handelsdagar. Dagar utan handel saknas i datat, så Today[5] går tillbaka fem barer i dagsserien, inte fem kalenderdagar. Kring helgdagar växer kalenderavståndet ytterligare.
  • Indexering utanför inläst historik. När N överstiger antalet barer som finns tillgängliga i diagrammet har uppslagningen inga data att läsa och resultatet är oanvändbart. Håll N inom det inlästa intervallet eller skydda mot tidiga barer.
  • Tvåsiffriga genvägar fungerar inte. Datum måste skrivas fullständigt, 20240301, aldrig 240301. Avhuggna literaler jämförs mot fel storleksordning och villkoret beter sig fel i tysthet.
  • Yesterday, datum för dagen före en given bar.
  • Day, dag-i-månaden-komponenten i barens datum.
  • Month, månadskomponenten i barens datum.
  • Year, årskomponenten i barens datum.
  • DayOfWeek, barens veckodag som ett tal.
  • OpenDate, datumet då baren öppnade, i formatet YYYYMMDD.
  • TIME, stängningstiden för en bar i formatet HHMMSS.
  • Days, antal dagar som förflutit sedan 1900 för linjära dagberäkningar.