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
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)
// Number of days since 1 January 1900 up to the current bar
myDays = Days[0]
RETURN myDaysDe 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)
// 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)
// 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
ENDIFDe 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
Todayof combinerenDay,MonthenYear. - Offset voorbij de historie.
Days[N]vereistNbars historie. Nabij de linkerrand van de grafiek is de waarde niet gedefinieerd.
Gerelateerde instructies
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.