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

DayOfWeek

DayOfWeek geeft de weekdag van een bar, 1 voor maandag tot 7 voor zondag. DayOfWeek accepteert een offset tussen rechte haken zoals DayOfWeek[1] om een eerdere bar te lezen.

Syntaxis

probuilder
DayOfWeek[N]

Hoe het werkt

DayOfWeek geeft de weekdag van de bar die wordt verwerkt, als een integer van 1 tot 7. Maandag is 1, dinsdag 2, en zo verder tot zondag, dat 7 is. Het leest de kalenderdatum die aan elke bar hangt, dus het verandert langs de tijdas: op een daggrafiek loopt de waarde 1, 2, 3, 4, 5 door een handelsweek en slaat de dagen over waarop de markt gesloten is.

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

DayOfWeek is de weekdag per bar. De verwante functies zijn CurrentDayOfWeek, die de weekdag van de klok op het moment van uitvoering leest, en OpenDayOfWeek, dat de weekdag bij de opening van elke bar leest. Omdat de meeste markten niet op elke kalenderdag handelen, komen weekendwaarden zelden voor op een grafiek van één instrument.

Voorbeelden

Voorbeeld 1, Maandagmarkering (Indicator)

probuilder
// Flag bars that fall on a Monday
myDay = DayOfWeek[0]
IF myDay = 1 THEN
    isMonday = 1
ELSE
    isMonday = 0
ENDIF
RETURN isMonday

De indicator plot 1 op elke maandagbar en 0 op de rest van de week, een snelle manier om te zien waar elke handelsweek begint.

Voorbeeld 2, Scan op vrijdagbars (ProScreener)

probuilder
// Match instruments whose latest bar is a Friday
isFriday = DayOfWeek = 5
SCREENER[isFriday AND close > Average[20](close)] (DayOfWeek AS "Weekday")

De screener geeft alleen instrumenten waarvan de meest recente bar op een vrijdag valt, met het weekdagnummer ter referentie.

Voorbeeld 3, Instappen op maandag vermijden (ProOrder)

probuilder
// Skip new entries on Mondays, take them on other weekdays
DEFPARAM CumulateOrders = false
notMonday = DayOfWeek <> 1
IF notMonday AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

De strategie weigert nieuwe instappen op maandagbars en neemt signalen aan in de rest van de week, een gebruikelijke filter voor systemen die de eerste dag van de week als ruis beschouwen.

Veelvoorkomende fouten en valkuilen

  • Maandag is 1, zondag is 7. De nummering loopt van 1 tot 7 vanaf maandag. Een test die is geschreven alsof zondag 0 was, zit er één naast.
  • Weekendbars zijn zeldzaam. Bij de meeste instrumenten is de markt in het weekend gesloten, dus de waarden 6 en 7 komen zelden voor. Vertrouw er niet op dat ze aanwezig zijn.
  • Per bar, niet de klok. DayOfWeek leest de datum van elke bar. Gebruik voor de weekdag van het moment waarop de code draait CurrentDayOfWeek.
  • Offset voorbij de historie. DayOfWeek[N] vereist N bars historie. Nabij de linkerrand van de grafiek is de waarde niet gedefinieerd.
  • CurrentDayOfWeek, weekdag van de klok op het moment van uitvoering.
  • OpenDayOfWeek, weekdag bij de open van elke bar.
  • Day, dag van de maand van elke bar, 1 tot 31.
  • Month, maand van elke bar.
  • Year, viercijferig jaartal van elke bar.
  • Days, het aantal volledige dagen verstreken sinds 1 januari 1900 tot aan elke bar.
  • TIME, sluitingstijd van elke bar als geheel getal in HHMMSS.
  • Today, datum van de huidige bar in YYYYMMDD-vorm.