Bli medlem idag
ProBacktest/probacktest · proorder

TomorrowOpen

TomorrowOpen fördröjer en ProBacktest- eller ProOrder-order till nästa handelsdags öppning, som i BUY 1 CONTRACT AT MARKET TomorrowOpen för dagsstrategier.

Syntax

probuilder
AT MARKET TomorrowOpen

Så fungerar det

Som standard exekveras en marknadsorder som skickas av en strategi till nästa tillgängliga pris. Att lägga till TomorrowOpen skjuter upp avslutet till öppningen av nästa handelsdag. Villkoren utvärderas fortfarande på aktuell bar, bara exekveringen flyttas till nästa sessions första pris.

Modifieraren passar strategier byggda kring dagliga stängningsdata. En signal som beräknas på den färdiga dagsbaren kan inte realistiskt fyllas vid samma stängning, och att fyllas någonstans inne i nattsessionen är inte heller vad en end-of-day-modell avser. Att utföra till den officiella öppningen nästa dag håller backtestet ärligt och motsvarar hur sådana system handlas manuellt.

TomorrowOpen skiljer sig från NextBarOpen i fördröjningens enhet. NextBarOpen väntar på öppningen av nästa bar i diagrammets tidsram, vilken tidsram det än är. TomorrowOpen väntar alltid på nästa handelsdags öppning, även om flera intraday-barer inträffar däremellan. På ett dagsdiagram sammanfaller de två.

Exempel

Exempel 1, Gå long vid nästa dags öppning (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

Villkoret kontrolleras på den färdiga dagsbaren, och när det gäller köps ett kontrakt till nästa dags öppningspris. Detta speglar referensexemplet för instruktionen.

Exempel 2, Stänga vid nästa öppning i stället för över 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 stället för att slänga ut positionen i stängningen eller nattsessionen schemaläggs exiten till nästa dags öppningsauktion, där dagsstrategier vanligtvis gör sina affärer.

Exempel 3, Short-entry på en svag dagsstängning (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 stängning under föregående 10-dagars low utlöser en short som öppnas till nästa sessions första pris, med en skyddande stopp på 40 punkter kopplad.

Vanliga fel och fallgropar

  • Endast marknadsorder. Modifieraren utökar AT MARKET. Den kombineras inte med väntande STOP eller LIMIT prisnivåer, de orderformerna har sin egen utlösningslogik.
  • Fel fördröjningsenhet på intraday-diagram. På ett intraday-diagram TomorrowOpen väntar på nästa dag, inte nästa bar. Kod som avser en fördröjning på en bar behöver NextBarOpen istället. På dagsdiagram försvinner skillnaden.
  • Signalen kan bli inaktuell över natten. Villkoren utvärderas på den aktuella stängningen, men fyllningen sker efter nattgapet. Ett stort negativt gap utför ordern ändå, så gaprisken måste hanteras av position sizing eller stoppen, inte av entryvillkoret.
  • Omfångsfel. Eftersom nyckelordet hör till ordermotorn kommer indikatorer och screeners som nämner TomorrowOpen kompilerar inte. Signallogik kan ligga i en indikator, men orderraden måste stanna i strategikoden.
  • NextBarOpen, fördröjer utförandet till öppningen av nästa bar i diagrammets tidsram.
  • BUY, öppnar eller utökar en long-position.
  • SELLSHORT, öppnar eller utökar en short-position.
  • SELL, stänger en long-position.
  • EXITSHORT, stänger en short-position.
  • MARKET, omedelbar exekvering till aktuellt pris.
  • LONGONMARKET, sant så länge en long-position är öppen.
  • DEFPARAM, parametrar på strateginivå, till exempel CumulateOrders.