OpenMonth
OpenMonth returnerar månaden, 1 till 12, då den aktuella baren öppnade. Använd Month för månaden för barens stängning och CurrentMonth för kalendern just nu.
Syntax
OpenMonthSå fungerar det
OpenMonth returnerar den kalendermånad då den bar som behandlas öppnade, från 1 för januari till 12 för december. Den läser tidsstämpeln för öppningen av varje bar, så den ändras längs tidsaxeln när beräkningen vandrar från bar till bar.
OpenMonth är den open-baserade medlemmen i månadstrion. Dess syskon är Month, som läser månaden för varje bars stängning, och CurrentMonth, som läser av klockans månad i det ögonblick koden körs och är identisk på varje bar. På dagstidsramen och kortare är en bars öppningsmånad och stängningsmånad nästan alltid samma; skillnaden spelar roll främst på vecko- eller månadsbarer som sträcker sig över en månadsgräns.
Konstanten tar inga parametrar och ingen hakparentesförskjutning. Den passar säsongslogik som utgår från månaden en bar börjar, till exempel att isolera den första baren i en ny månad eller att filtrera på en viss säsong.
Exempel
Exempel 1, flagga för januariöppning (Indikator)
// Flag bars that opened in January
iMonth = OpenMonth
IF iMonth = 1 THEN
openedInJan = 1
ELSE
openedInJan = 0
ENDIF
RETURN openedInJanIndikatorn ritar 1 på barer vars öppning faller i januari och 0 i varje annan månad, ett enkelt sätt att markera början på varje år i diagrammet.
Exempel 2, sök efter öppningar i fjärde kvartalet (ProScreener)
// Match instruments whose latest bar opened in the fourth quarter
q4Open = (OpenMonth >= 10) AND (OpenMonth <= 12)
SCREENER[q4Open AND close > Average[50](close)] (OpenMonth AS "OpenMonth")Screenern returnerar endast instrument vars senaste bar öppnade i oktober, november eller december, med öppningsmånaden visad intill.
Exempel 3, entrygrind vid ny månad (ProOrder)
// Allow entries only on the first bar of a new month
DEFPARAM CumulateOrders = false
newMonth = OpenMonth <> Month[1]
IF newMonth AND close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFVillkoret jämför öppningsmånaden för den aktuella baren med stängningsmånaden för föregående bar, så det är sant på den första baren efter ett månadsbyte, vilket ger en entrygrind en gång per månad.
Vanliga fel och fallgropar
- Open, inte close. OpenMonth läser månaden för barens open. För closen använd
Month. De två skiljer sig sällan utom på barer som sträcker sig över en månadsgräns. - Inte kalendern just nu. OpenMonth är ett värde per bar som ändras längs diagrammet. För månaden vid det ögonblick koden körs, använd
CurrentMonth. - Innehåller inget år. OpenMonth returnerar bara månadsnumret, så januari 2025 och januari 2026 ser identiska ut. Kombinera med
OpenYearellerYearnär året spelar roll. - Ingen bracket-offset.
OpenMonth[1]kompilerar inte. För att nå en tidigare bars månad användMonth[N].
Relaterade instruktioner
Month, månad för stängningen av varje bar.CurrentMonth, klockans månad vid exekveringstidpunkten.OpenYear, året vid öppningen av varje bar.OpenDay, dag i månaden vid öppningen av varje bar.OpenTime, öppningstiden för varje bar som ett HHMMSS-heltal.Year, fyrsiffrigt år för varje bar.Day, dag i månaden för varje bar.TIME, stängningstiden för varje bar som ett HHMMSS-heltal.