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

Month

Month returnerer månedsnummeret (1 til 12) i en bars sluttdato i ProBuilder. Bruk [N]-forskyvningen for sesongfiltre og tradinglogikk basert på måned i året.

Syntaks

probuilder
Month[N]

Parametere

NavnTypeStandardBeskrivelse
Nheltall0Bar-forskyvning. 0 leser gjeldende bar, 1 forrige bar, og så videre. Når den utelates, leses gjeldende bar.

Slik fungerer det

Month trekker ut månedskomponenten fra datoen knyttet til en bar. Verdien kommer fra barens lukketidsstempel, så en ukebar som åpner 30. juni og lukker 4. juli rapporterer Month = 7. Søsternøkkelordet OpenMonth leser åpningsdatoen til samme bar og ville rapportere 6 i det tilfellet. På de fleste intraday- og dagsbarer stemmer de to, men de kan avvike på enhver bar som strekker seg over en månedsgrense.

Den returnerte verdien er et heltall fra 1 (januar) til 12 (desember). Ingen markedsdata er involvert, nøkkelordet opererer kun på tidsstempelet som er knyttet til hver bar, så det virker identisk på alle instrumenter.

Den [N] forskyvning leser måneden for tidligere barer. Month[1] er måneden for forrige bars slutt, som er en enkel måte å oppdage et månedsskifte: når Month <> Month[1] den gjeldende baren er den første som lukker i en ny måned.

Typiske bruksområder omfatter sesongstudier, å utelate spesifikke måneder fra en backtest, og å utløse månedlig rebalanseringslogikk.

Eksempler

Eksempel 1, Sjekk om forrige bar sluttet i desember (Indikator)

probuilder
// Read the closing month of the previous bar
lastMonth = Month[1]
IF lastMonth = 12 THEN
  itWereChristmasMonth = 1
ELSE
  itWereChristmasMonth = 0
ENDIF
RETURN itWereChristmasMonth

Indikatoren plotter 1 når forrige bar lukket i desember, og 0 ellers. [1] forskyvning flytter lesingen én bar bakover.

Eksempel 2, Sesongbasert vindu med kun long (ProBacktest)

probuilder
// Only hold longs from November through April
inSeason = Month >= 11 OR Month <= 4

IF inSeason AND close CROSSES OVER Average[100](close) THEN
  BUY 1 SHARES AT MARKET
ENDIF

IF NOT inSeason AND LONGONMARKET THEN
  SELL AT MARKET
ENDIF

Strategien tar trendinnganger bare i vinduet fra november til april og nullstiller enhver åpen long når kalenderen forlater sesongen. Merk OR-kombinasjonen, vinduet går rundt årsskiftet.

Eksempel 3, Screen for en januarslutt (ProScreener)

probuilder
// Match instruments whose latest bar closed in January above its 200-bar average
inJanuary = Month = 1
aboveTrend = close > Average[200](close)

SCREENER[inJanuary AND aboveTrend] (Month AS "Month")

Screeneren returnerer instrumenter som handles over sitt lange gjennomsnitt på barer som sluttet i januar, og viser månedsnummeret som resultatkolonne.

Vanlige feil og fallgruver

  • Sluttdato, ikke åpningsdato. Month leser barens sluttidspunkt. Uke- eller månedsbarer som går over en månedsgrense, rapporterer den seneste måneden. Bruk OpenMonth når åpningsdatoen er den relevante.
  • Månedene starter på 1. Området er 1 til 12, det finnes ingen måned 0. Betingelser som Month = 0 aldri stemmer, og konverteringer med én av fra nullbaserte systemer gir stille logikkfeil.
  • Vinduer rundt årsskiftet trenger OR. En sesong som november til april krysser årsgrensen. Month >= 11 AND Month <= 4 aldri gir treff, riktig form er Month >= 11 OR Month <= 4.
  • Oppdage månedsskifter. Sammenligning med en konstant utløses på hver bar i den måneden. For å handle én gang per måned, sammenlign påfølgende barer med Month <> Month[1].
  • OpenMonth, måneden i gjeldende bars åpningsdato, søskenformen til Month.
  • CurrentMonth, måneden på maskinklokken i stedet for et bar-tidsstempel.
  • Day, dagen i måneden for en bars stengedato.
  • Year, året i en bars sluttdato.
  • Today, datoen for gjeldende bar i YYYYMMDD-format.
  • Hour, timekomponenten i en bars sluttidspunkt.
  • DayOfWeek, ukedagen for en bars stengedato.