Days
Days returnerar det hela antalet dagar som förflutit sedan 1 January 1900 fram till en bar. Days godtar en hakparentesförskjutning som Days[1] och hjälper till att mäta datumskillnader.
Syntax
Days[N]Så fungerar det
Days returnerar ett enda monotont heltal: antalet kalenderdagar från referensdatumet 1 januari 1900 fram till datumet för den bar som behandlas. Eftersom det pressar hela datumet till ett tal som bara ökar är det det naturliga verktyget för att mäta spannet mellan två barer. Skillnaden Days[0] - Days[N] är antalet kalenderdagar som skiljer den aktuella baren från baren N positioner bakåt.
Räkningen omfattar varje kalenderdag, såväl helger som helgdagar, så den mäter förfluten tid snarare än handelssessioner. Det skiljer den från ett enkelt antal barer, som hoppar över de dagar då marknaden är stängd.
Det valfria indexet N väljer en bar i förhållande till den som behandlas. Days[0], eller enbart Days, är den aktuella baren. Ett positivt N ser bakåt: Days[1] är föregående bar. Diagrammet måste innehålla tillräckligt med historik för den begärda förskjutningen, annars är värdet odefinierat vid den vänstra kanten.
Exempel
Exempel 1, Förflutna dagar vid aktuell bar (Indikator)
// Number of days since 1 January 1900 up to the current bar
myDays = Days[0]
RETURN myDaysIndikatorn ritar en långsamt stigande linje som ökar med antalet kalenderdagar mellan efterföljande barer. Gap över helger och helgdagar syns som större steg.
Exempel 2, Sök efter en ny 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")På ett intraday-diagram Days > Days[1] är sann endast på den första baren i en ny kalenderdag, så screenern isolerar sessionens öppningsbar.
Exempel 3, Filter för dagar i affär (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
ENDIFStrategin lagrar Days-värdet vid entry och går sedan ur när fem kalenderdagar har passerat, och räknar helger och helgdagar eftersom Days mäter förfluten kalendertid.
Vanliga fel och fallgropar
- Referensdatumet är 1 January 1900. Det absoluta talet är endast meningsfullt som en skillnad. Subtrahera två Days-värden för att få ett spann i dagar.
- Kalenderdagar, inte handelsdagar. Days räknar varje kalenderdag, så en måndagsbar som följer på en fredagsbar skiljer sig med 3, inte 1. Det är inte ett antal barer.
- Inget formaterat datum. Days är en löpande räknare, inte ett datum i formen YYYYMMDD. För ett läsbart datum använd
Todayeller kombineraDay,MonthochYear. - Offset utanför historiken.
Days[N]behöverNbarer historik. Nära diagrammets vänstra kant är värdet odefinierat.
Relaterade instruktioner
Day, dag i månaden för varje bar, 1 till 31.DayOfWeek, veckodag för varje bar, 1 för måndag till 7 för söndag.Month, månad för varje bar.Year, fyrsiffrigt år för varje bar.Timestamp, UNIX-tid för stängningen av varje bar, en alternativ monoton klocka.TIME, stängningstiden för varje bar som ett HHMMSS-heltal.Yesterday, datumet för dagen före en bar, i formen YYYYMMDD.Today, datumet för den aktuella baren i formen YYYYMMDD.