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

CurrentMonth

CurrentMonth returnerer måneden på klokken ved kjøringstidspunktet, 1 til 12, identisk på hver bar i diagrammet. Bruk Month for å lese måneden ved hver bars slutt.

Syntaks

probuilder
CurrentMonth

Slik fungerer det

CurrentMonth leser klokken i det øyeblikket koden kjører, og returnerer kalendermåneden, fra 1 for januar til 12 for desember. Referansen er tidssonen til instrumentets marked, som kan avvike fra den lokale maskinen. Konstanten tar ingen parametere og ingen forskyvning i klammeparentes.

Verdien tilhører Current-familien av dato- og tidskonstanter, som beskriver utførelsesøyeblikket og ikke noen bar i diagrammet. Hver bar i en beregning ser derfor samme tall: en indikator som oppdateres i oktober returnerer 10 på hver historiske bar. Søskenkonstanten per bar er Month, som returnerer måneden for stengingen av hver bar som behandles og endrer seg langs tidsaksen. Sesongbasert logikk brukt på historiske data hører sammen med Month; CurrentMonth beskriver kalenderen nå.

I et live ProOrder-system er CurrentMonth meningsfull, siden koden kjøres i sanntid etter hvert som barene kommer inn. I en backtest gjenspeiler den måneden testen kjøres, noe som gjør den uegnet for historiske sesongbetingelser.

Eksempler

Eksempel 1, Flagg for Halloween-måneden (Indikator)

probuilder
// Set the flag when the script executes during October
IF (CurrentMonth = 10) THEN
    HalloweenMonth = 1
ELSE
    HalloweenMonth = 0
ENDIF
RETURN HalloweenMonth

Indikatoren tegner 1 over hele diagrammet når den beregnes på nytt i oktober markedstid, og 0 i alle andre måneder.

Eksempel 2, Skanning begrenset til en sesong (ProScreener)

probuilder
// Return matches only during the fourth quarter
inQ4 = (CurrentMonth >= 10) AND (CurrentMonth <= 12)
SCREENER[inQ4 AND close > Average[50](close)] (close AS "Close")

Skanneren returnerer en tom liste utenfor oktober, november og desember, en måte å holde en skanning aktiv bare i en valgt sesong.

Eksempel 3, Strategi med månedssperre (ProOrder)

probuilder
// Skip new entries during the summer month of August
DEFPARAM CumulateOrders = false
IF CurrentMonth = 8 THEN
    QUIT
ENDIF
IF close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

Live stopper systemet seg selv i hele august. Backtester kan ikke prøve ut denne grenen på en meningsfull måte, fordi CurrentMonth holder måneden for testkjøringen på hver bar.

Vanlige feil og fallgruver

  • Samme verdi på hver bar. CurrentMonth beskriver kalenderen, ikke diagrammet, så en betingelse som CurrentMonth = 10 er sann eller falsk for hele beregningen på én gang. Sesonglogikk per bar krever Month.
  • Blindsone i backtest. I en backtest returnerer CurrentMonth måneden testen kjøres, så sesongfiltre bygget på den slipper gjennom eller blokkerer alt under ett og gir resultater som ikke stemmer med live oppførsel.
  • Markedets tidssone, ikke lokal tid. Måneden refererer til instrumentets marked og justeres ikke for betrakterens lokale tidsforskjell.
  • Ingen forskyvning i klammer. CurrentMonth[1] kompilerer ikke. Bare konstanter per bar, som Month[N] godtar en indeks.
  • Month, måned ved slutten av hver bar, søskenverdien per bar til denne konstanten.
  • OpenMonth, måned ved åpningen av hver bar.
  • CurrentYear, året på klokken ved utførelsestidspunktet.
  • CurrentHour, timen på klokken ved utførelsestidspunktet.
  • CurrentTime, full klokketid ved utførelse som et HHMMSS-heltall.
  • Year, firesifret årstall for hver bar.
  • Day, dagen i måneden for hver bar.
  • TIME, stengetiden for hver bar som et HHMMSS-heltall.