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
Month[N]Parametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
| N | heltall | 0 | Bar-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)
// Read the closing month of the previous bar
lastMonth = Month[1]
IF lastMonth = 12 THEN
itWereChristmasMonth = 1
ELSE
itWereChristmasMonth = 0
ENDIF
RETURN itWereChristmasMonthIndikatoren 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)
// 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
ENDIFStrategien 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)
// 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
OpenMonthnå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 = 0aldri 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 <= 4aldri gir treff, riktig form erMonth >= 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].
Relaterte instruksjoner
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.