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

DayOfWeek

DayOfWeek returnerer ukedagen for en bar, 1 for mandag til 7 for søndag. DayOfWeek godtar en forskyvning i klammeparentes, for eksempel DayOfWeek[1], for å lese en tidligere bar.

Syntaks

probuilder
DayOfWeek[N]

Slik fungerer det

DayOfWeek returnerer ukedagen for baren som behandles, som et heltall fra 1 til 7. Mandag er 1, tirsdag 2, og så videre til søndag, som er 7. Den leser kalenderdatoen som er knyttet til hver bar, så den endrer seg langs tidsaksen: i et dagsdiagram går verdien 1, 2, 3, 4, 5 gjennom en handelsuke og hopper over dagene da markedet er stengt.

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

DayOfWeek er ukedagen per bar. Søskenfunksjonene er CurrentDayOfWeek, som leser ukedagen fra klokken ved utførelsestidspunktet, og OpenDayOfWeek, som leser ukedagen ved åpningen av hver bar. Fordi de fleste markeder ikke handles hver kalenderdag, forekommer helgeverdier sjelden i et diagram for et enkelt instrument.

Eksempler

Eksempel 1, Mandagsflagg (Indikator)

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

Indikatoren tegner 1 på hver mandagsbar og 0 resten av uken, en rask måte å se hvor hver handelsuke begynner.

Eksempel 2, Skanning etter fredagsbarer (ProScreener)

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

Screeneren returnerer bare instrumenter der den siste baren faller på en fredag, med ukedagsnummeret vist som referanse.

Eksempel 3, Unngå innganger på mandag (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

Strategien avviser nye innganger på mandagsbarer og tar signaler resten av uken, et vanlig filter for systemer som behandler ukens første dag som støyende.

Vanlige feil og fallgruver

  • Mandag er 1, søndag er 7. Nummereringen går 1 til 7 fra mandag. En test skrevet som om søndag var 0, vil være feil med én.
  • Helgebarer er sjeldne. På de fleste instrumenter er markedet stengt i helgene, så verdiene 6 og 7 opptrer sjelden. Ikke stol på at de er til stede.
  • Per bar, ikke klokken. DayOfWeek leser datoen til hver bar. For ukedagen i det øyeblikket koden kjører, bruk CurrentDayOfWeek.
  • Forskyvning utover historikken. DayOfWeek[N] trenger N barer med historikk. Nær venstre kant av diagrammet er verdien udefinert.
  • CurrentDayOfWeek, ukedagen på klokken ved utførelsestidspunktet.
  • OpenDayOfWeek, ukedagen ved åpningen av hver bar.
  • Day, dagen i måneden for hver bar, 1 til 31.
  • Month, måneden for hver bar.
  • Year, firesifret årstall for hver bar.
  • Days, hele dager gått siden 1. januar 1900 fram til hver bar.
  • TIME, stengetiden for hver bar som et HHMMSS-heltall.
  • Today, datoen for gjeldende bar i YYYYMMDD-form.