Bli medlem i dag
ProBacktest/probacktest · proorder

TomorrowOpen

TomorrowOpen utsetter en ProBacktest- eller ProOrder-ordre til åpningen av neste handelsdag, som i BUY 1 CONTRACT AT MARKET TomorrowOpen for daglige strategier.

Syntaks

probuilder
AT MARKET TomorrowOpen

Slik fungerer det

Som standard utføres en markedsordre sendt av en strategi til neste tilgjengelige pris. Å legge til TomorrowOpen utsetter utførelsen til åpningen av neste handelsdag. Betingelsene vurderes fortsatt på gjeldende bar, bare utførelsen flyttes til første pris i neste sesjon.

Modifikatoren passer strategier bygget rundt daglige lukkedata. Et signal beregnet på den ferdige dagsbaren kan ikke realistisk fylles til den samme lukkekursen, og å fylle et sted inne i sesjonen over natten er heller ikke hva en end-of-day-modell har som hensikt. Å utføre på den offisielle åpningen neste dag holder backtesten ærlig og samsvarer med hvordan slike systemer handles manuelt.

TomorrowOpen skiller seg fra NextBarOpen i forsinkelsesenheten. NextBarOpen venter på åpningen av neste bar i diagrammets tidsramme, uansett hvilken tidsramme det er. TomorrowOpen venter alltid på åpningen av neste handelsdag, selv om flere intraday-bars kommer imellom. På et dagsdiagram sammenfaller de to.

Eksempler

Eksempel 1, Gå inn i en long på neste dags åpning (ProOrder)

probuilder
// Signal: close above the 50-day average, evaluated at end of day
LongConditions = close > average[50](close)

IF NOT LongOnMarket AND LongConditions THEN
  BUY 1 CONTRACT AT MARKET TomorrowOpen
ENDIF

Betingelsen sjekkes på den fullførte dagsbaren, og når den holder, kjøpes én kontrakt til åpningsprisen dagen etter. Dette gjenspeiler referanseeksempelet for instruksjonen.

Eksempel 2, Gå ut på neste åpning i stedet for over natten (ProBacktest)

probuilder
// Leave the trade at tomorrow's open once momentum fades
exitSignal = close < close[3]

IF LongOnMarket AND exitSignal THEN
  SELL AT MARKET TomorrowOpen
ENDIF

I stedet for å dumpe posisjonen inn i lukkingen eller sesjonen over natten, planlegges utgangen til neste dags åpningsauksjon, der daglige strategier typisk handles.

Eksempel 3, Short-inngang på en svak daglig lukkekurs (ProOrder)

probuilder
// Short setups detected on the daily close, filled at the next open
weakClose = close < lowest[10](low)[1]

IF NOT onmarket AND weakClose THEN
  SELLSHORT 1 CONTRACT AT MARKET TomorrowOpen
  SET STOP LOSS 40
ENDIF

En lukkekurs under forrige 10-dagers low utløser en short som åpner på den første prisen i neste sesjon, med en beskyttende stopp på 40 punkter tilknyttet.

Vanlige feil og fallgruver

  • Kun markedsordrer. Modifikatoren utvider AT MARKET. Den kombineres ikke med ventende STOP eller LIMIT prisnivåer, de ordreformene har sin egen utløserlogikk.
  • Feil forsinkelsesenhet på intraday-diagrammer. På et intraday-diagram TomorrowOpen venter på neste dag, ikke neste bar. Kode som er ment å ha én bars forsinkelse trenger NextBarOpen i stedet. På dagsdiagrammer forsvinner forskjellen.
  • Signalet kan bli foreldet over natten. Betingelsene evalueres på gjeldende lukkekurs, men fyllingen skjer etter gapet over natten. Et stort ugunstig gap utfører ordren likevel, så gaprisiko må håndteres av position sizing eller stoppen, ikke av inngangsbetingelsen.
  • Virkeområdefeil. Fordi nøkkelordet hører til ordremotoren, vil indikatorer og screenere som nevner TomorrowOpen kompilerer ikke. Signallogikk kan ligge i en indikator, men ordrelinjen må være i strategikoden.
  • NextBarOpen, utsetter utførelsen til åpningen av neste bar i diagrammets tidsramme.
  • BUY, åpner eller øker en long-posisjon.
  • SELLSHORT, åpner eller øker en short-posisjon.
  • SELL, lukker en long-posisjon.
  • EXITSHORT, lukker en short-posisjon.
  • MARKET, umiddelbar utførelse til gjeldende pris.
  • LONGONMARKET, sann så lenge en long-posisjon er åpen.
  • DEFPARAM, parametere på strateginivå, som CumulateOrders.