FLATBEFORE
FLATBEFORE er en DEFPARAM-parameter som blokkerer trading og holder en ProBacktest- eller ProOrder-strategi flat før et fastsatt tidspunkt på dagen. Syntaks og eksempler.
Syntaks
DEFPARAM FLATBEFORE = HHMMSSParametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
FLATBEFORE | tidsliteral (HHMMSS) | ingen | Før dette klokkeslettet lukkes posisjoner, ventende ordrer kanselleres og nye ordrer blokkeres. 24-timers klokke, f.eks. 073000 for 7:30 AM. |
Slik fungerer det
FLATBEFORE deklareres én gang med DEFPARAM øverst i strategien, foran all handelslogikk, og leses når strategien starter. Før det angitte tidspunktet hver dag håndhever plattformen en flat tilstand: den lukker enhver posisjon som ellers ville vært åpen, kansellerer ventende ordrer og avviser nye. Strategikoden fortsetter å kjøre i den perioden, beregningene utføres og variablene oppdateres, det er bare ordreplassering som undertrykkes. Fra det angitte tidspunktet og utover går handelen som normalt.
Verdien bruker HHMMSS-formatet på en 24-timers klokke, så 073000 er 07:30:00. Parameteren pauser eller forsinker ikke strategien, den fungerer utelukkende som en handelsport.
Den vanlige grunnen til å sperre åpningen av en sesjon er å hoppe over den uberegnelige prisbevegelsen og de tynne ordrebøkene rundt markedsåpning eller nattetimer. Kombinert med FLATAFTER, som påtvinger flat posisjon etter et klokkeslett, definerer de to parameterne et daglig handelsvindu uten noen håndskrevne tidsbetingelser.
Eksempler
Eksempel 1, Ingen trading før 7:30 AM (ProOrder)
// Stay flat until 07:30, then trade normally
DEFPARAM FLATBEFORE = 073000Deklarasjonen er bevart fra den offisielle referansen. Fram til 7:30 AM hver dag holder strategien ingenting og plasserer ingenting.
Eksempel 2, Å hoppe over den volatile kontantåpningen (ProBacktest)
// Ignore the first 30 minutes after the 09:00 open
DEFPARAM FLATBEFORE = 093000
DEFPARAM FLATAFTER = 172500
// Mean-reversion entry on Bollinger band touch
lowerBand = BollingerDown[20](close)
IF close crosses under lowerBand THEN
BUY 1 CONTRACT AT MARKET
ENDIF
SET TARGET %PROFIT 1
SET STOP %LOSS 0.5Backtesting med vinduet på plass viser hvordan systemet oppfører seg når den første halvtimen, der båndtreff er hyppigst og minst pålitelige, er utelatt.
Eksempel 3, Begrensning av et forex-system til London-sesjonen (ProOrder)
// Trade only after the London open, flat again in the evening
DEFPARAM FLATBEFORE = 090000
DEFPARAM FLATAFTER = 200000
DEFPARAM CumulateOrders = false
fastMA = ExponentialAverage[9](close)
slowMA = ExponentialAverage[21](close)
IF fastMA crosses over slowMA THEN
BUY 1 LOT AT MARKET
ENDIF
IF LongOnMarket AND fastMA crosses under slowMA THEN
SELL AT MARKET
ENDIFDe to flat-parameterne begrenser all aktivitet, innganger, utganger og ventende ordrer likeså, til de valgte sesjonstimene.
Vanlige feil og fallgruver
- Deklarert etter handelslogikken.
DEFPARAMdeklarasjoner må være de første instruksjonene i programmet. EnFLATBEFORElinje plassert etter en ordre eller betingelse kompilerer ikke. - HHMM i stedet for HHMMSS.
DEFPARAM FLATBEFORE = 0930betyr 00:09:30, ikke 09:30:00. Sekundsifrene er obligatoriske, så en port for 9:30 AM skrives093000. - Å forvente at strategien pauser. Parameteren stopper ikke kodekjøringen. Indikatorer, tellere og tilstandsvariabler fortsetter å oppdateres før grensen, bare ordreplassering er blokkert. Logikk som antar at ingenting kjørte før porten åpner, kan være feil.
- Grove tidsrammer. Porten avgjøres på bar-granularitet, så på diagrammer på én time eller mer kan den faktiske frigivelsestiden avvike fra den bokstavelige verdien, og på daglige eller høyere tidsrammer har parameteren ingen hensikt.
Relaterte instruksjoner
FLATAFTER, DEFPARAM-parameter som tvinger strategien flat etter 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.BUY, åpner eller øker en long-posisjon.