Word nu lid
Datum en tijd/probuilder · probacktest · proorder · proscreener

CurrentMonth

CurrentMonth geeft de maand van de klok op het moment van uitvoering, 1 tot 12, identiek op elke bar van de grafiek. Gebruik Month om de maand van het slot van elke bar te lezen.

Syntaxis

probuilder
CurrentMonth

Hoe het werkt

CurrentMonth leest de klok op het moment dat de code wordt uitgevoerd en geeft de kalendermaand, van 1 voor januari tot 12 voor december. De referentie is de tijdzone van de markt van het instrument, die kan afwijken van de lokale machine. De constante neemt geen parameters en geen offset tussen rechte haken.

De waarde hoort tot de Current-familie van datum- en tijdconstanten, die het moment van uitvoering beschrijven en niet een bar op de grafiek. Elke bar van een berekening ziet daarom hetzelfde getal: een indicator die in oktober wordt ververst, geeft 10 op elke historische bar. De tegenhanger per bar is Month, die de maand van de close van elke verwerkte bar geeft en meebeweegt langs de tijdas. Seizoenslogica toegepast op historische data hoort bij Month; CurrentMonth beschrijft de kalender nu.

In een live ProOrder-systeem is CurrentMonth zinvol, omdat de code in realtime wordt uitgevoerd terwijl bars binnenkomen. In een backtest weerspiegelt het de maand waarin de test wordt uitgevoerd, wat het ongeschikt maakt voor historische seizoensvoorwaarden.

Voorbeelden

Voorbeeld 1, Markering van de Halloween-maand (Indicator)

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

De indicator plot 1 over de hele grafiek wanneer hij wordt herberekend tijdens oktober markttijd, en 0 in elke andere maand.

Voorbeeld 2, Scan beperkt tot een seizoen (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")

De screener geeft buiten oktober, november en december een lege lijst terug, een manier om een scan alleen tijdens een gekozen seizoen actief te houden.

Voorbeeld 3, Strategie met maandfilter (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 legt het systeem zichzelf de hele maand augustus stil. Backtests kunnen deze tak niet zinvol doorlopen, omdat CurrentMonth op elke bar de maand van de testrun bevat.

Veelvoorkomende fouten en valkuilen

  • Dezelfde waarde op elke bar. CurrentMonth beschrijft de kalender, niet de grafiek, dus een conditie zoals CurrentMonth = 10 is in één keer waar of onwaar voor de hele berekening. Seizoenslogica per bar vereist Month.
  • Blinde vlek in de backtest. In een backtest geeft CurrentMonth de maand waarin de test wordt uitgevoerd, dus seizoensfilters die erop zijn gebouwd laten alles door of blokkeren alles en leveren resultaten op die niet overeenkomen met live gedrag.
  • Tijdzone van de markt, niet de lokale tijd. De maand is gerefereerd aan de markt van het instrument en corrigeert niet voor de lokale afwijking van de kijker.
  • Geen offset tussen haakjes. CurrentMonth[1] compileert niet. Alleen constanten per bar zoals Month[N] accepteren een index.
  • Month, maand van het slot van elke bar, de variant per bar van deze constante.
  • OpenMonth, maand bij de opening van elke bar.
  • CurrentYear, jaar van de klok op het moment van uitvoering.
  • CurrentHour, uur van de klok op het moment van uitvoering.
  • CurrentTime, volledige kloktijd bij uitvoering als geheel getal in HHMMSS.
  • Year, viercijferig jaartal van elke bar.
  • Day, dag van de maand van elke bar.
  • TIME, sluitingstijd van elke bar als geheel getal in HHMMSS.