Bli medlem idag
Datum och tid/probuilder · probacktest · proorder · proscreener

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

probuilder
OpenMonth

Så 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)

probuilder
// Flag bars that opened in January
iMonth = OpenMonth
IF iMonth = 1 THEN
    openedInJan = 1
ELSE
    openedInJan = 0
ENDIF
RETURN openedInJan

Indikatorn 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)

probuilder
// 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)

probuilder
// 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
ENDIF

Villkoret 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 OpenYear eller Year när året spelar roll.
  • Ingen bracket-offset. OpenMonth[1] kompilerar inte. För att nå en tidigare bars månad använd Month[N].
  • 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.