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

OpenDate

OpenDate returnerar datumet då en bar öppnade i formatet YYYYMMDD i ProBuilder. Använd det för att knyta affärer eller analys till exakta kalenderdatum på vilken diagramtidsram som helst.

Syntax

probuilder
OpenDate

Så fungerar det

OpenDate läser den aktuella barens öppningstidsstämpel och returnerar dess datum som ett heltal i formen YYYYMMDD. En bar som öppnade den 8 juli 2026 ger 20260708. År, månad och dag packas ihop i ett enda värde, vilket gör kronologiska jämförelser triviala: ett numeriskt större OpenDate är alltid ett senare datum.

Nyckelordet tar inga parametrar. Det syftar på barens öppningstid, medan rena datumnyckelord som Today beskriver barens stängningsdatum. På dagsbarer stämmer de två normalt överens, men på vecko-, månads- eller sessionsöverskridande barer kan öppnings- och stängningsdatumet skilja sig, så valet av nyckelord spelar roll.

Eftersom formatet packar tre fält i ett tal krävs aritmetik för att extrahera en komponent. De enskilda delarna är också tillgängliga direkt via OpenYear, OpenMonth, och OpenDay, vilket oftast är det tydligare angreppssättet.

Typiska användningar är att begränsa ett backtest till ett datumintervall, att ankra beräkningar till ett känt händelsedatum och att stänga av ett live-system efter ett fast slutdatum.

Exempel

Exempel 1, Visa varje bars öppningsdatum (Indikator)

probuilder
// Store and plot the opening date of the current bar
myOpenDate = OpenDate
RETURN myOpenDate

Indikatorn returnerar varje bars öppningsdatum som ett tal i formatet YYYYMMDD, ett snabbt sätt att verifiera vilket kalenderdatum en bar hör till.

Exempel 2, Begränsa ett backtest till ett startdatum (ProBacktest)

probuilder
// Ignore all history before 2 January 2024
IF OpenDate >= 20240102 THEN
  IF close CROSSES OVER Average[50](close) THEN
    BUY 1 SHARES AT MARKET
  ENDIF
ENDIF

Eftersom tal i formatet YYYYMMDD sorteras kronologiskt utesluter en enda jämförelse mot literalen 20240102 varje bar som öppnade före det datumet.

Exempel 3, Avaktivera ett system efter ett slutdatum (ProOrder)

probuilder
// Stop opening new positions from 1 December 2026 onward
expired = OpenDate >= 20261201

IF NOT expired AND close CROSSES OVER Highest[20](close[1]) THEN
  BUY 1 SHARES AT MARKET
ENDIF

Breakout-entryn är aktiv endast så länge barens öppningsdatum ligger före gränsdatumet, ett enkelt sätt att tidsbegränsa en live-strategi.

Vanliga fel och fallgropar

  • Ett tal, inte ett datumobjekt. OpenDate returnerar ett heltal. Datumaritmetik som att lägga till 7 ger inte datumet en vecka senare, det lägger bara till 7 till talet och går sönder vid månadsgränser. Använd jämförelser, inte aritmetik.
  • Öppningsdatum kontra stängningsdatum. OpenDate beskriver när baren öppnade. På vecko- eller månadsbarer kan stängningsdatumet falla i en annan månad eller ett annat år. Jämför med Today, som följer barens datum vid close.
  • Att extrahera komponenter sker indirekt. Att plocka ut månaden ur 20260708 kräver division och avrundning. Föredra OpenYear, OpenMonth, och OpenDay, som returnerar komponenterna direkt.
  • Fullständiga åttasiffriga literaler krävs. Jämförelser måste använda kompletta YYYYMMDD-värden. Ett villkor som OpenDate = 0708 matchar aldrig eftersom det lagrade värdet alltid innehåller året.
  • Today, den aktuella barens datum i formatet YYYYMMDD, enligt stängningen.
  • OpenDay, dag i månaden då den aktuella baren öppnade.
  • OpenMonth, månadsnumret då den aktuella baren öppnade.
  • OpenYear, året då den aktuella baren öppnade.
  • OpenTime, den aktuella barens öppningstid i formatet HHMMSS.
  • OpenHour, timmen då den aktuella baren öppnade.
  • Timestamp, barens stängningstidsstämpel i sekunder sedan 1970.
  • OpenTimestamp, barens öppningstidsstämpel i sekunder sedan 1970.