Bli medlem i dag
Dato og tid/probuilder · probacktest · proorder · proscreener

Day

Day returnerer dagen i måneden, 1 til 31, for en bar i diagrammet. Day godtar en forskyvning i klammeparentes, for eksempel Day[1], for å lese dagen til en tidligere bar.

Syntaks

probuilder
Day[N]

Slik fungerer det

Day returnerer dagen i måneden for baren som behandles, som et heltall fra 1 til 31. Den leser kalenderdatoen som er knyttet til hver bar, så i motsetning til Current-familien endrer den seg langs tidsaksen: påfølgende barer i et dagsdiagram går gjennom dagene i måneden, og verdien nullstilles etter den siste dagen i hver måned.

Den valgfrie indeksen N velger en bar relativt til den som behandles. Day[0], eller ren Day, er gjeldende bar. En positiv N ser tilbake: Day[1] er forrige bar, Day[5] er fem bars tilbake. Diagrammet må ha nok historikk for den forespurte forskyvningen, ellers er verdien udefinert ved venstre kant.

Day rapporterer bare dagnummeret og inneholder ingen måned eller år. Å sammenligne Day verdier over en månedsgrense kan være misvisende, siden dag 31 i én måned følges av dag 1 i den neste. For en full dato, bruk Day sammen med Month og Year, eller ta i bruk Days og Timestamp når du trenger én enkelt monoton verdi.

Eksempler

Eksempel 1, Dag for den forrige baren (Indikator)

probuilder
// Retrieve the day of the month from the previous bar
myDay = Day[1]
RETURN myDay

Indikatoren tegner dagsnummeret i måneden for baren rett før hver behandlede bar, en trinnlinje som stiger gjennom måneden og faller ved hvert månedsskifte.

Eksempel 2, Skanning etter barer i begynnelsen av måneden (ProScreener)

probuilder
// Match instruments whose latest bar falls in the first three days of a month
earlyInMonth = Day <= 3
SCREENER[earlyInMonth AND close > Average[20](close)] (Day AS "Day")

Skanneren returnerer bare instrumenter der den siste baren ligger i de første dagene av en kalendermåned, med dagsnummeret vist ved siden av.

Eksempel 3, Filter for første handelsdag (ProOrder)

probuilder
// Allow entries only when a new month has just started
DEFPARAM CumulateOrders = false
newMonthStart = Day < Day[1]
IF newMonthStart AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

Betingelsen Day < Day[1] er true på den første baren i en ny måned, fordi dagnummeret faller fra en høy verdi tilbake til 1. Strategien bruker det som en inngangsport én gang i måneden.

Vanlige feil og fallgruver

  • Dag i måneden, ikke i uken. Day returnerer 1 til 31, kalenderdagen. For ukedagen bruker du DayOfWeek.
  • Ingen måned eller år. Day inneholder bare dagnummeret, så dag 5 i mars og dag 5 i april ser identiske ut. Kombiner med Month og Year for en fullstendig dato.
  • Månedsgrenser. En test som Day > Day[1] feiler på den første baren i en måned fordi tallet nullstilles til 1. Håndter overgangen eksplisitt når du sammenligner på tvers av barer.
  • Forskyvning utover historikken. Day[N] trenger N barer med historikk. Nær venstre kant av diagrammet er verdien udefinert.
  • OpenDay, dagen i måneden ved åpningen av hver bar.
  • Month, måned for hver bar, kombineres med Day for en full dato.
  • Year, firesifret årstall for hver bar.
  • DayOfWeek, ukedagen for hver bar, 1 for mandag til 7 for søndag.
  • Days, hele dager gått siden 1. januar 1900 fram til hver bar.
  • TIME, stengetiden for hver bar som et HHMMSS-heltall.
  • Timestamp, UNIX-tid for stengingen av hver bar.
  • Yesterday, datoen for dagen før en bar, i YYYYMMDD-form.