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
CurrentMonthSlik 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)
// Set the flag when the script executes during October
IF (CurrentMonth = 10) THEN
HalloweenMonth = 1
ELSE
HalloweenMonth = 0
ENDIF
RETURN HalloweenMonthIndikatoren 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)
// 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)
// 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
ENDIFLive 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 = 10er sann eller falsk for hele beregningen på én gang. Sesonglogikk per bar kreverMonth. - 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, somMonth[N]godtar en indeks.
Relaterte instruksjoner
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.