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

CurrentMonth

CurrentMonth returnerar månaden på klockan vid exekveringstillfället, 1 till 12, identisk på varje bar i diagrammet. Använd Month för att läsa månaden för varje bars stängning.

Syntax

probuilder
CurrentMonth

Så fungerar det

CurrentMonth läser klockan i det ögonblick koden körs och returnerar kalendermånaden, från 1 för januari till 12 för december. Referensen är tidszonen för instrumentets marknad, som kan skilja sig från den lokala datorn. Konstanten tar inga parametrar och ingen förskjutning i hakparenteser.

Värdet hör till Current-familjen av datum- och tidskonstanter, som beskriver exekveringsögonblicket snarare än någon bar i diagrammet. Varje bar i en beräkning ser därför samma tal: en indikator som uppdateras i oktober returnerar 10 på varje historisk bar. Syskonkonstanten per bar är Month, som returnerar månaden för stängningen av varje bar som behandlas och förändras längs tidsaxeln. Säsongslogik som tillämpas på historiska data hör till Month; CurrentMonth beskriver kalendern just nu.

I ett ProOrder-system live är CurrentMonth meningsfull, eftersom koden exekveras i realtid när barer kommer in. I ett backtest återspeglar den månaden då testet körs, vilket gör den olämplig för historiska säsongsvillkor.

Exempel

Exempel 1, Flagga för halloweenmånaden (Indikator)

probuilder
// Set the flag when the script executes during October
IF (CurrentMonth = 10) THEN
    HalloweenMonth = 1
ELSE
    HalloweenMonth = 0
ENDIF
RETURN HalloweenMonth

Indikatorn ritar 1 över hela diagrammet när den räknas om under oktober i marknadstid, och 0 i alla andra månader.

Exempel 2, Skanning begränsad till en säsong (ProScreener)

probuilder
// Return matches only during the fourth quarter
inQ4 = (CurrentMonth >= 10) AND (CurrentMonth <= 12)
SCREENER[inQ4 AND close > Average[50](close)] (close AS "Close")

Screenern returnerar en tom lista utanför oktober, november och december, ett sätt att hålla en skanning aktiv bara under en vald säsong.

Exempel 3, Månadsstyrd strategi (ProOrder)

probuilder
// Skip new entries during the summer month of August
DEFPARAM CumulateOrders = false
IF CurrentMonth = 8 THEN
    QUIT
ENDIF
IF close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

Live stoppar systemet sig självt under hela augusti. Backtest kan inte pröva den här grenen på ett meningsfullt sätt, eftersom CurrentMonth innehåller månaden för testkörningen på varje bar.

Vanliga fel och fallgropar

  • Samma värde på varje bar. CurrentMonth beskriver kalendern, inte diagrammet, så ett villkor som CurrentMonth = 10 är sant eller falskt för hela beräkningen på en gång. Säsongslogik per bar kräver Month.
  • Blind fläck i backtest. I ett backtest returnerar CurrentMonth månaden då testet exekveras, så säsongsfilter byggda på den släpper igenom eller blockerar allt och ger resultat som inte stämmer med beteendet live.
  • Marknadens tidszon, inte lokal tid. Månaden utgår från instrumentets marknad och justeras inte för betraktarens lokala förskjutning.
  • Ingen bracket-offset. CurrentMonth[1] kompilerar inte. Endast konstanter per bar som Month[N] accepterar ett index.
  • Month, månad för stängningen av varje bar, motsvarigheten per bar till den här konstanten.
  • OpenMonth, månad vid öppningen av varje bar.
  • CurrentYear, klockans år vid exekveringstidpunkten.
  • CurrentHour, klockans timme vid exekveringstidpunkten.
  • CurrentTime, fullständig klocktid vid exekvering 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.