Month
Month returnerar månadsnumret (1 till 12) för en bars stängningsdatum i ProBuilder. Använd förskjutningen [N] för säsongsfilter och handelslogik baserad på månad på året.
Syntax
Month[N]Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
| N | heltal | 0 | Barförskjutning. 0 läser den aktuella baren, 1 den föregående baren och så vidare. Om den utelämnas läses den aktuella baren. |
Så fungerar det
Month extraherar månadskomponenten ur det datum som hör till en bar. Värdet kommer från barens stängningstidsstämpel, så en veckobar som öppnar 30 juni och stänger 4 juli rapporterar Month = 7. Systernyckelordet OpenMonth läser öppningsdatumet för samma bar och skulle rapportera 6 i det fallet. På de flesta intraday- och dagsbarer stämmer de två överens, men de kan skilja sig på varje bar som sträcker sig över en månadsgräns.
Det returnerade värdet är ett heltal från 1 (januari) till 12 (december). Ingen marknadsdata är inblandad, nyckelordet arbetar enbart med tidsstämpeln som hör till varje bar, så det fungerar likadant på alla instrument.
Den [N] förskjutningen läser månaden för tidigare barer. Month[1] är månaden för föregående bars stängning, vilket är ett enkelt sätt att upptäcka ett månadsbyte: när Month <> Month[1] den aktuella baren är den första som stänger i en ny månad.
Typiska användningar är säsongsstudier, att utesluta specifika månader från en backtest och att trigga logik för månatlig ombalansering.
Exempel
Exempel 1, Kontrollera om föregående bar stängde i december (Indikator)
// Read the closing month of the previous bar
lastMonth = Month[1]
IF lastMonth = 12 THEN
itWereChristmasMonth = 1
ELSE
itWereChristmasMonth = 0
ENDIF
RETURN itWereChristmasMonthIndikatorn ritar 1 när föregående bar stängde i december och 0 annars. [1] förskjutningen flyttar läsningen en bar bakåt.
Exempel 2, Säsongsbetonat fönster med endast lång (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
ENDIFStrategin tar trendentries endast under fönstret november till april och stänger varje öppen long när kalendern lämnar säsongen. Observera OR-kombinationen, fönstret löper runt årsskiftet.
Exempel 3, Screena efter en stängning i januari (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")Screenern returnerar instrument som handlas över sitt långa medelvärde på barer som stängde i januari, och visar månadsnumret som resultatkolumn.
Vanliga fel och fallgropar
- Stängningsdatum, inte öppningsdatum. Month läser barens stängningstidsstämpel. Vecko- eller månadsbarer som sträcker sig över en månadsgräns rapporterar den senare månaden. Använd
OpenMonthnär öppningsdatumet är det relevanta. - Månaderna börjar på 1. Intervallet är 1 till 12, det finns ingen månad 0. Villkor som
Month = 0matchar aldrig, och konverteringar som är ett steg fel från nollbaserade system ger tysta logikfel. - Fönster över årsskiftet kräver OR. En säsong som november till april sträcker sig över årsgränsen.
Month >= 11 AND Month <= 4aldrig matchar, den korrekta formen ärMonth >= 11 OR Month <= 4. - Identifiera månadsskiften. Att jämföra mot en konstant utlöses på varje bar i den månaden. För att agera en gång per månad, jämför intilliggande barer med
Month <> Month[1].
Relaterade instruktioner
OpenMonth, månad för den aktuella barens öppningsdatum, systerformen till Month.CurrentMonth, månad enligt maskinklockan i stället för en bars tidsstämpel.Day, dag i månaden för en bars stängningsdatum.Year, år för en bars stängningsdatum.Today, datumet för den aktuella baren i formatet YYYYMMDD.Hour, timkomponenten i en bars stängningstid.DayOfWeek, veckodag för en bars stängningsdatum.