Bli medlem i dag
Dato og tid/probuilder · probacktest · proorder · proscreener

CurrentHour

CurrentHour returnerer timen på klokken ved kjøringstidspunktet, 0 til 23, identisk på hver bar i diagrammet. Bruk Hour for å lese timen ved hver bars slutt.

Syntaks

probuilder
CurrentHour

Slik fungerer det

CurrentHour leser klokken i det øyeblikket koden kjører, og returnerer timen i 24-timersformat, fra 0 til 23. Referansen er tidssonen til instrumentets marked, som kan avvike fra den lokale maskinen. Konstanten tar ingen parametere og ingen forskyvning i klammeparentes.

Verdien tilhører Current-familien av dato- og tidskonstanter, som beskriver utførelsesøyeblikket og ikke noen bar i diagrammet. Hver bar i en beregning ser derfor samme tall: en indikator som oppdateres 14:20 returnerer 14 på hver historiske bar. Søskenkonstanten per bar er Hour, som returnerer timen for stengingen av hver bar som behandles og endrer seg langs tidsaksen. Sesjonsfiltre brukt på historiske data hører sammen med Hour eller TIME; CurrentHour beskriver klokken nå.

I et live ProOrder-system er CurrentHour meningsfull, siden koden kjøres i sanntid etter hvert som barene kommer inn. I en backtest gjenspeiler den timen testen kjøres, noe som gjør den uegnet for historiske inngangs- eller utgangsbetingelser.

Eksempler

Eksempel 1, Middagsflagg (Indikator)

probuilder
// Set the flag when the script executes during the 12 o'clock hour
IF (CurrentHour = 12) THEN
    GoLunch = 1
ELSE
    GoLunch = 0
ENDIF
RETURN GoLunch

Indikatoren tegner 1 over hele diagrammet når den beregnes på nytt mellom 12:00:00 og 12:59:59 markedstid, og 0 på alle andre tider av døgnet.

Eksempel 2, Skanning begrenset til handelstimene (ProScreener)

probuilder
// Return matches only while the cash session is open
inSession = (CurrentHour >= 9) AND (CurrentHour < 17)
SCREENER[inSession AND close > Average[20](close)] (close AS "Close")

Skanneren returnerer en tom liste utenfor de valgte timene, en måte å holde en planlagt skanning stille utenfor handelsperioden.

Eksempel 3, Avstengning på kvelden (ProOrder)

probuilder
// Stop the strategy before the evening maintenance window
DEFPARAM CumulateOrders = false
IF CurrentHour >= 22 THEN
    QUIT
ENDIF
IF close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

Live stopper systemet seg selv fra 22:00 markedstid og utover. Backtester kan ikke prøve ut denne grenen på en meningsfull måte, fordi CurrentHour holder timen for testkjøringen på hver bar.

Vanlige feil og fallgruver

  • Samme verdi på hver bar. CurrentHour beskriver klokken, ikke diagrammet, så en betingelse som CurrentHour = 12 er sann eller falsk for hele beregningen på én gang. Sesjonslogikk per bar trenger Hour eller TIME.
  • Blindsone i backtest. I en backtest returnerer CurrentHour timen testen kjøres, så tidsfiltre bygget på den slipper gjennom eller blokkerer alt under ett og gir resultater som ikke stemmer med live oppførsel.
  • Markedets tidssone, ikke lokal tid. Timen refererer til instrumentets marked. Et diagram over en notering i New York, sett fra Europa, returnerer New York-timer, ikke betrakterens lokale timer.
  • Ingen forskyvning i klammer. CurrentHour[1] kompilerer ikke. Bare konstanter per bar, som Hour[N] godtar en indeks.
  • Hour, time ved slutten av hver bar, søskenverdien per bar til denne konstanten.
  • OpenHour, timen ved åpningen av hver bar.
  • CurrentMinute, minuttet på klokken ved utførelsestidspunktet.
  • CurrentSecond, sekundet på klokken ved utførelsestidspunktet.
  • CurrentTime, full klokketid ved utførelse som et HHMMSS-heltall.
  • CurrentDayOfWeek, ukedagen på klokken ved utførelsestidspunktet.
  • TIME, stengetiden for hver bar som et HHMMSS-heltall.
  • Timestamp, UNIX-tid for stengingen av hver bar.