Word nu lid
Datum en tijd/probuilder · probacktest · proorder · proscreener

Days

Days geeft het volledige aantal dagen dat sinds 1 January 1900 is verstreken tot aan een bar. Days accepteert een offset tussen blokhaken zoals Days[1] en helpt bij het meten van datumverschillen.

Syntaxis

probuilder
Days[N]

Hoe het werkt

Days geeft één monotoon geheel getal terug: het aantal kalenderdagen vanaf de referentiedatum 1 januari 1900 tot de datum van de bar die wordt verwerkt. Omdat het de volledige datum terugbrengt tot één getal dat alleen maar oploopt, is het de natuurlijke tool om de afstand tussen twee bars te meten. Het verschil Days[0] - Days[N] is het aantal kalenderdagen tussen de huidige bar en de bar N posities terug.

De telling omvat elke kalenderdag, weekenden en feestdagen inbegrepen, en meet dus verstreken tijd in plaats van handelssessies. Dat onderscheidt het van een gewone bar-telling, die de dagen overslaat waarop de markt gesloten is.

De optionele index N selecteert een bar ten opzichte van de bar die wordt verwerkt. Days[0], of gewoon Days, is de huidige bar. Een positieve N kijkt terug: Days[1] is de vorige bar. De grafiek moet genoeg historie bevatten voor de gevraagde offset, anders is de waarde ongedefinieerd aan de linkerrand.

Voorbeelden

Voorbeeld 1, Verstreken dagen op de huidige bar (Indicator)

probuilder
// Number of days since 1 January 1900 up to the current bar
myDays = Days[0]
RETURN myDays

De indicator plot een langzaam stijgende lijn, die toeneemt met het aantal kalenderdagen tussen opeenvolgende bars. Gaps over weekenden en feestdagen verschijnen als grotere stappen.

Voorbeeld 2, Scannen op een nieuwe kalenderdag (ProScreener)

probuilder
// Match instruments whose latest bar is on a different calendar day from the previous bar
newDay = Days > Days[1]
SCREENER[newDay AND close > Average[20](close)] (close AS "Close")

Op een intraday grafiek Days > Days[1] is alleen waar op de eerste bar van een nieuwe kalenderdag, dus de screener isoleert de openingsbar van de sessie.

Voorbeeld 3, Filter op dagen-in-trade (ProOrder)

probuilder
// Close the position once it has been held for at least five calendar days
DEFPARAM CumulateOrders = false
IF NOT LONGONMARKET AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
    entryDays = Days
ENDIF
IF LONGONMARKET AND (Days - entryDays) >= 5 THEN
    SELL AT MARKET
ENDIF

De strategie slaat de Days-waarde op bij de instap en stapt uit zodra vijf kalenderdagen zijn verstreken, inclusief weekenden en feestdagen, omdat Days verstreken kalendertijd meet.

Veelvoorkomende fouten en valkuilen

  • De referentiedatum is 1 January 1900. Het absolute getal is alleen als verschil zinvol. Trek twee Days-waarden van elkaar af om een tijdspanne in dagen te krijgen.
  • Kalenderdagen, geen handelsdagen. Days telt elke kalenderdag, dus een maandagbar die op een vrijdagbar volgt verschilt met 3, niet met 1. Het is geen bar-telling.
  • Geen opgemaakte datum. Days is een doorlopende telling, geen YYYYMMDD-datum. Gebruik voor een leesbare datum Today of combineren Day, Month en Year.
  • Offset voorbij de historie. Days[N] vereist N bars historie. Nabij de linkerrand van de grafiek is de waarde niet gedefinieerd.
  • Day, dag van de maand van elke bar, 1 tot 31.
  • DayOfWeek, weekdag van elke bar, 1 voor maandag tot 7 voor zondag.
  • Month, maand van elke bar.
  • Year, viercijferig jaartal van elke bar.
  • Timestamp, UNIX-tijd van de close van elke bar, een alternatieve monotone klok.
  • TIME, sluitingstijd van elke bar als geheel getal in HHMMSS.
  • Yesterday, datum van de dag vóór een bar, in YYYYMMDD-vorm.
  • Today, datum van de huidige bar in YYYYMMDD-vorm.