Bli medlem i dag
ProBacktest/probacktest · proorder

FLATAFTER

FLATAFTER er en DEFPARAM-parameter som lukker alle posisjoner og kansellerer ventende ordrer etter et fastsatt tidspunkt hver dag i ProBacktest- og ProOrder-strategier.

Syntaks

probuilder
DEFPARAM FLATAFTER = HHMMSS

Parametere

NavnTypeStandardBeskrivelse
FLATAFTERtidsliteral (HHMMSS)ingenFra dette klokkeslettet lukkes alle posisjoner, ventende ordrer kanselleres og nye ordrer blokkeres. 24-timers klokke, f.eks. 153000 for 3:30 PM.

Slik fungerer det

FLATAFTER deklareres én gang med DEFPARAM øverst i strategien, før all handelslogikk. Fra det angitte tidspunktet og utover lukker plattformen den posisjonen som er åpen, kansellerer alle ventende ordrer og nekter nye ordrer for resten av handelsdagen. Strategikoden fortsetter å kjøre, den kan bare ikke holde eller legge inn handler etter skjæringstidspunktet, og normal drift gjenopptas ved neste sesjon.

Tidsliteralen bruker HHMMSS-formatet på 24-timers klokke, så 153000 betyr 15:30:00. Innledende nuller kan skrives for lesbarhet (073000), verdien er numerisk uansett.

Parameteren er den vanlige måten å bygge day trading-strategier som aldri skal holde posisjoner over natten. Den passer naturlig sammen med FLATBEFORE, som blokkerer trading før et valgt klokkeslett, slik at de to sammen begrenser all aktivitet til et fast intraday-vindu. Sammenlignet med egenskrevet utgangslogikk basert på TIME, den DEFPARAM tilnærmingen kansellerer også ventende ordrer, et steg som manuell kode for å nulle ut posisjonen ofte glemmer.

Eksempler

Eksempel 1, Flat etter 3:30 PM (ProOrder)

probuilder
// Close positions, cancel pending orders and stop trading after 15:30
DEFPARAM FLATAFTER = 153000

Deklarasjonen er bevart fra den offisielle referansen. Etter 3:30 PM overlever ingen posisjon eller ventende ordre, noe som garanterer at strategien avslutter hver dag flat.

Eksempel 2, Begrensning av et breakout-system til et sesjonsvindu (ProBacktest)

probuilder
// Trade only between 08:00 and 17:00
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 170000

// Buy a breakout of the highest high of the last 20 bars
IF close crosses over highest[20](high)[1] THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

SET STOP %TRAILING 0.8

FLATBEFORE og FLATAFTER rammer inn sesjonen. Backtesten gjenspeiler da en strategi som alltid er uten posisjon utenfor vinduet 08:00 til 17:00, inkludert trailing stop-ordrene sine.

Eksempel 3, Å unngå en illikvid lukking på indeksfutures (ProOrder)

probuilder
// Force flat 15 minutes before the cash close
DEFPARAM FLATAFTER = 214500
DEFPARAM CumulateOrders = false

rsiVal = RSI[14](close)

IF rsiVal crosses under 30 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

IF LongOnMarket AND rsiVal crosses over 60 THEN
  SELL AT MARKET
ENDIF

Uansett hva RSI-logikken gjør, FLATAFTER garanterer at posisjonen likvideres før den tynne omsetningen ved dagens slutt.

Vanlige feil og fallgruver

  • Deklarert etter handelslogikken. Alle DEFPARAM linjer må komme før alle andre instruksjoner. Å plassere FLATAFTER under en IF blokk eller en ordreinstruksjon forårsaker en kompileringsfeil.
  • Feil tidsformat. Verdien er HHMMSS, ikke HHMM. Å skrive 1530 leses som 00:15:30, ikke 15:30:00, noe som flater ut strategien rett etter midnatt i stedet for midt på ettermiddagen.
  • Uoverensstemmelse i tidsramme. Grensen avgjøres på bar-nivå. På et 1-timesdiagram vil en FLATAFTER = 153000 grense kan ikke virke presis 15:30, så intraday-grenser hører til på tidsrammer som er fine nok til å representere tidspunktet. Parameteren er meningsløs på daglige eller høyere tidsrammer.
  • Antakelser om klokke og tidssone. Tiden tolkes mot den klokken plattformen bruker på diagrammets barer. Når instrumentets børs ligger i en annen tidssone, verifiser den faktiske grensen på diagrammet i stedet for å anta at den samsvarer med lokal klokketid.
  • FLATBEFORE, DEFPARAM-parameter som holder strategien flat før et fastsatt klokkeslett.
  • DEFPARAM, deklarerer strategiparametere øverst i koden.
  • CumulateOrders, DEFPARAM-parameter som styrer stabling av ordrer i samme retning.
  • QUIT, stopper strategien helt etter at posisjoner er lukket.
  • TIME, tiden for gjeldende bar til egenskrevne tidsbetingelser.
  • CurrentTime, klokketidsverdi som kan brukes i betingelser.
  • ONMARKET, sann så lenge en posisjon er åpen.
  • SELL, lukker hele eller deler av en long-posisjon.