DayOfWeek
DayOfWeek returnerar veckodagen för en bar, 1 för måndag till 7 för söndag. DayOfWeek accepterar en förskjutning i hakparenteser, till exempel DayOfWeek[1], för att läsa en tidigare bar.
Syntax
DayOfWeek[N]Så fungerar det
DayOfWeek returnerar veckodagen för den bar som behandlas, som ett heltal från 1 till 7. Måndag är 1, tisdag 2 och så vidare fram till söndag, som är 7. Den läser kalenderdatumet som hör till varje bar, så den ändras längs tidsaxeln: i ett dagsdiagram vandrar värdet 1, 2, 3, 4, 5 genom en handelsvecka och 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. DayOfWeek[0], eller enbart DayOfWeek, är den aktuella baren. Ett positivt N ser bakåt: DayOfWeek[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.
DayOfWeek är veckodagen per bar. Dess syskon är CurrentDayOfWeek, som läser veckodagen enligt klockan vid exekveringstidpunkten, och OpenDayOfWeek, som läser veckodagen vid öppningen av varje bar. Eftersom de flesta marknader inte handlas varje kalenderdag förekommer helgvärden sällan i ett diagram för ett enskilt instrument.
Exempel
Exempel 1, Måndagsflagga (Indikator)
// Flag bars that fall on a Monday
myDay = DayOfWeek[0]
IF myDay = 1 THEN
isMonday = 1
ELSE
isMonday = 0
ENDIF
RETURN isMondayIndikatorn ritar 1 på varje måndagsbar och 0 under resten av veckan, ett snabbt sätt att se var varje handelsvecka börjar.
Exempel 2, Skanna efter fredagsbarer (ProScreener)
// Match instruments whose latest bar is a Friday
isFriday = DayOfWeek = 5
SCREENER[isFriday AND close > Average[20](close)] (DayOfWeek AS "Weekday")Screenern returnerar endast instrument vars senaste bar faller på en fredag, med veckodagsnumret visat som referens.
Exempel 3, Undvik entries på måndagar (ProOrder)
// 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
ENDIFStrategin avvisar nya entries på måndagsbarer och tar signaler under resten av veckan, ett vanligt filter för system som betraktar veckans första dag som stökig.
Vanliga fel och fallgropar
- Måndag är 1, söndag är 7. Numreringen går 1 till 7 från måndag. Ett test skrivet som om söndag vore 0 blir fel med ett.
- Helgbarer är ovanliga. På de flesta instrument är marknaden stängd på helgerna, så värdena 6 och 7 förekommer sällan. Förlita dig inte på att de finns.
- Per bar, inte klockan. DayOfWeek läser varje bars datum. För veckodagen i det ögonblick koden körs, använd
CurrentDayOfWeek. - Offset utanför historiken.
DayOfWeek[N]behöverNbarer historik. Nära diagrammets vänstra kant är värdet odefinierat.
Relaterade instruktioner
CurrentDayOfWeek, klockans veckodag vid exekveringstidpunkten.OpenDayOfWeek, veckodag vid öppningen av varje bar.Day, dag i månaden för varje bar, 1 till 31.Month, månad för varje bar.Year, fyrsiffrigt år för varje bar.Days, hela dagar som förflutit sedan 1 January 1900 fram till varje bar.TIME, stängningstiden för varje bar som ett HHMMSS-heltal.Today, datumet för den aktuella baren i formen YYYYMMDD.