CurrentSecond
CurrentSecond returnerer sekundet på klokken ved kjøringstidspunktet, 0 til 59, identisk på hver bar i diagrammet. Bruk Second for å lese sekundet ved hver bars slutt.
Syntaks
CurrentSecondSlik fungerer det
CurrentSecond leser klokken i det øyeblikket koden kjører, og returnerer sekundet innenfor gjeldende minutt, fra 0 til 59. 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:30 returnerer 30 på hver historiske bar. Søskenkonstanten per bar er Second, som returnerer sekundet for stengingen av hver bar som behandles og endrer seg langs tidsaksen. Timing under ett minutt på historiske data hører sammen med Second; CurrentSecond beskriver klokken nå.
I et live ProOrder-system er CurrentSecond meningsfull, siden koden kjøres i sanntid etter hvert som barene kommer inn. I en backtest gjenspeiler den sekundet testen kjøres, noe som gjør den uegnet for historiske inngangs- eller utgangsbetingelser.
Eksempler
Eksempel 1, Halvminuttsflagg (Indikator)
// Set the flag when the script executes at 30 seconds past the minute
mySecond = CurrentSecond
IF mySecond = 30 THEN
onHalfMinute = 1
ELSE
onHalfMinute = 0
ENDIF
RETURN onHalfMinuteIndikatoren tegner 1 over hele diagrammet når den beregnes på nytt nøyaktig på sekund 30 i gjeldende minutt, og 0 ellers.
Eksempel 2, Skanning på de første sekundene (ProScreener)
// Return matches only in the first ten seconds of the minute
earlySecond = CurrentSecond < 10
SCREENER[earlySecond AND close > Average[20](close)] (close AS "Close")Skanneren returnerer en tom liste når klokken har passert sekund 10, en måte å spre planlagte skanninger over et smalt vindu.
Eksempel 3, Sjekk med sekundsperre (ProOrder)
// Only evaluate entries during the last seconds of a minute
DEFPARAM CumulateOrders = false
lateSecond = CurrentSecond >= 55
IF lateSecond AND close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFLive sjekker systemet bare signalet i de siste sekundene av hvert minutt. Backtester kan ikke prøve ut denne grenen på en meningsfull måte, fordi CurrentSecond holder sekundet for testkjøringen på hver bar.
Vanlige feil og fallgruver
- Samme verdi på hver bar. CurrentSecond beskriver klokken, ikke diagrammet, så en betingelse som
CurrentSecond = 30er sann eller falsk for hele beregningen på én gang. Tidslogikk per bar trengerSecond. - Blindsone i backtest. I en backtest returnerer CurrentSecond sekundet testen kjøres, så filtre bygget på den slipper gjennom eller blokkerer alt under ett og gir resultater som ikke stemmer med live oppførsel.
- Smalt treffvindu. En eksakt test som
CurrentSecond = 30gjelder bare i ett enkelt sekund av klokketiden, så en omberegning vil sjelden treffe den. Intervaller somCurrentSecond < 10er mer pålitelige. - Ingen forskyvning i klammer.
CurrentSecond[1]kompilerer ikke. Bare konstanter per bar, somSecond[N]godtar en indeks.
Relaterte instruksjoner
Second, sekund ved slutten av hver bar, søskenverdien per bar til denne konstanten.OpenSecond, sekundet ved åpningen av hver bar.CurrentMinute, minuttet på klokken ved utførelsestidspunktet.CurrentHour, timen på klokken ved utførelsestidspunktet.CurrentTime, full klokketid ved utførelse som et HHMMSS-heltall.Minute, minuttet ved stengingen av hver bar.TIME, stengetiden for hver bar som et HHMMSS-heltall.Timestamp, UNIX-tid for stengingen av hver bar.