CurrentDayOfWeek
CurrentDayOfWeek geeft de weekdag van de klok op het moment van uitvoering, 0 zondag tot 6 zaterdag, op elke bar hetzelfde, in tegenstelling tot de DayOfWeek-waarde per bar.
Syntaxis
CurrentDayOfWeekHoe het werkt
CurrentDayOfWeek leest de klok op het moment dat de code wordt uitgevoerd en geeft de weekdag als een integer. ProRealTime™ gebruikt de tijdzone van de markt van het instrument als referentie, dus de waarde kan afwijken van de weekdag op de machine die de grafiek weergeeft. De constante neemt geen parameters en accepteert geen offset tussen rechte haken.
De waarde volgt de platformconventie van 0 voor zondag, 1 voor maandag, 2 voor dinsdag, en zo verder tot 6 voor zaterdag.
Omdat het getal van de klok komt en niet uit grafiekdata, ziet elke bar in een berekening dezelfde waarde. Een indicator die op een dinsdag wordt herberekend, geeft 2 op elke historische bar van de grafiek. Dit is het bepalende verschil met de verwante constante DayOfWeek, dat de weekdag van de slotkoers van elke verwerkte bar teruggeeft en daarom meebeweegt langs de tijdas. Voorwaarden die historische bars op weekdag filteren horen bij DayOfWeek; CurrentDayOfWeek antwoordt op de vraag welke dag het nu is.
In een live ProOrder-systeem vallen de twee waarden meestal samen op de meest recente intraday bar, omdat de strategie bars in realtime verwerkt. In een backtest lopen ze volledig uiteen: CurrentDayOfWeek weerspiegelt de dag waarop de test wordt uitgevoerd, niet de dag van enige historische bar.
Voorbeelden
Voorbeeld 1, Een specifieke weekdag markeren (Indicator)
// Set the flag when the script executes on a Wednesday
IF (CurrentDayOfWeek = 3) THEN
Wednesday = 1
ELSE
Wednesday = 0
ENDIF
RETURN WednesdayDe indicator plot 1 over de hele grafiek wanneer hij op een woensdag herberekent, en anders 0, wat illustreert dat de waarde niet per bar varieert.
Voorbeeld 2, Scan alleen op vrijdag (ProScreener)
// Return matches only when the scan itself runs on a Friday
isFriday = (CurrentDayOfWeek = 5)
SCREENER[isFriday AND close > Average[20](close)] (close AS "Close")De screener levert alleen resultaten op wanneer hij op een vrijdag wordt uitgevoerd, ongeacht de datums van de bars die hij scant.
Voorbeeld 3, Weekendbeveiliging op een 24/7-markt (ProOrder)
// Stand aside at the weekend on a market that trades every day
DEFPARAM CumulateOrders = false
weekend = (CurrentDayOfWeek = 0) OR (CurrentDayOfWeek = 6)
IF NOT weekend AND close > Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFLive blokkeert het filter nieuwe instappen op zaterdag en zondag. In een backtest filtert dezelfde code niets zinvols, omdat elke historische bar de dag ziet waarop de test loopt; een historische versie van dit filter heeft DayOfWeek.
Veelvoorkomende fouten en valkuilen
- Constant over de hele grafiek. Elke bar levert hetzelfde getal op, de weekdag van het moment van uitvoering. CurrentDayOfWeek gebruiken om historische bars te filteren laat de hele grafiek stilzwijgend in één keer door of blokkeert hem in één keer. Gebruik
DayOfWeekvoor voorwaarden per bar. - Nummering van zondag. De handleiding van het platform definieert het bereik als 0 voor zondag tot en met 6 voor zaterdag. Sommige naslagwerken nummeren de week 1 tot en met 7 met zondag als 7. Maandag tot en met zaterdag komen in beide schema's overeen; controleer de behandeling van zondag op een live grafiek voordat je erop vertrouwt.
- Backtest-resultaten die live gedrag niet kunnen reproduceren. Een weekdagfilter dat op CurrentDayOfWeek is gebouwd werkt correct in live-uitvoering maar is historisch niet te testen, dus backtest-statistieken voor zo'n systeem weerspiegelen het live-filter niet.
- Geen offset tussen haakjes.
CurrentDayOfWeek[1]is ongeldig. De constante heeft geen historie om in te indexeren; alleen de constanten per bar zoalsDayOfWeek[N]accepteren een offset.
Gerelateerde instructies
DayOfWeek, weekdag van het slot van elke bar, de variant per bar van deze constante.OpenDayOfWeek, weekdag bij de open van elke bar.CurrentTime, kloktijd op het moment van uitvoering als een HHMMSS-integer.CurrentHour, uur van de klok op het moment van uitvoering.CurrentMinute, minuut van de klok op het moment van uitvoering.CurrentMonth, maand van de klok op het moment van uitvoering.CurrentYear, jaar van de klok op het moment van uitvoering.Day, dag van de maand bij het slot van elke bar.