Word nu lid
ProBacktest/probacktest · proorder

TomorrowOpen

TomorrowOpen stelt een ProBacktest- of ProOrder-order uit tot de opening van de volgende handelsdag, zoals in BUY 1 CONTRACT AT MARKET TomorrowOpen voor dagelijkse strategieën.

Syntaxis

probuilder
AT MARKET TomorrowOpen

Hoe het werkt

Standaard wordt een marktorder van een strategie uitgevoerd tegen de eerstvolgende beschikbare prijs. Het toevoegen van TomorrowOpen stelt de uitvoering uit tot de opening van de volgende handelsdag. De voorwaarden worden nog steeds op de huidige bar geëvalueerd, alleen de uitvoering schuift naar de eerste prijs van de volgende sessie.

De modifier past bij strategieën die rond dagelijkse slotdata zijn gebouwd. Een signaal dat op de afgeronde dagbar is berekend, kan realistisch gezien niet op diezelfde slotkoers worden uitgevoerd, en ergens binnen de overnight sessie uitvoeren is ook niet wat een end-of-day model beoogt. Uitvoeren op de officiële opening van de volgende dag houdt de backtest eerlijk en sluit aan bij de manier waarop zulke systemen handmatig worden getraden.

TomorrowOpen verschilt van NextBarOpen in de eenheid van vertraging. NextBarOpen wacht op de open van de volgende bar in het tijdframe van de grafiek, wat dat tijdframe ook is. TomorrowOpen wacht altijd op de open van de volgende handelsdag, zelfs als er meerdere intraday bars tussen zitten. Op een daggrafiek vallen de twee samen.

Voorbeelden

Voorbeeld 1, Een long instappen op de opening van de volgende dag (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

De voorwaarde wordt gecontroleerd op de voltooide dagbar en wanneer die geldt, wordt één contract gekocht tegen de openingskoers van de volgende dag. Dit spiegelt het referentievoorbeeld voor de instructie.

Voorbeeld 2, Uitstappen op de volgende opening in plaats van overnight (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

In plaats van de positie in het slot of de overnight sessie te dumpen, wordt de uitstap gepland voor de openingsveiling van de volgende dag, waar dagelijkse strategieën doorgaans worden uitgevoerd.

Voorbeeld 3, Short-instap op een zwakke dagelijkse slotkoers (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

Een slot onder de low van de voorgaande 10 dagen activeert een short die opent op de eerste koers van de volgende sessie, met een beschermende stop van 40 punten eraan gekoppeld.

Veelvoorkomende fouten en valkuilen

  • Alleen marktorders. De modifier verlengt AT MARKET. Het combineert niet met wachtende STOP of LIMIT prijsniveaus, dragen die ordervormen hun eigen triggerlogica.
  • Verkeerde uitsteleenheid op intraday grafieken. Op een intraday grafiek TomorrowOpen wacht op de volgende dag, niet op de volgende bar. Code die een vertraging van één bar bedoelt, vereist NextBarOpen in plaats daarvan. Op daggrafieken verdwijnt het onderscheid.
  • Signaal kan overnight verouderen. Voorwaarden worden geëvalueerd op de huidige slotkoers, maar de uitvoering vindt plaats na de overnight gap. Een grote ongunstige gap voert de order toch uit, dus gaprisico moet worden opgevangen door de position sizing of de stop, niet door de instapvoorwaarde.
  • Scopefouten. Omdat het keyword bij de orderengine hoort, zullen indicatoren en screeners die verwijzen naar TomorrowOpen compileren niet. Signaallogica kan in een indicator staan, maar de orderregel moet in de strategiecode blijven.
  • NextBarOpen, stelt de uitvoering uit tot de opening van de volgende bar in het tijdframe van de grafiek.
  • BUY, opent een long positie of breidt deze uit.
  • SELLSHORT, opent een short positie of breidt deze uit.
  • SELL, sluit een long positie.
  • EXITSHORT, sluit een short positie.
  • MARKET, onmiddellijke uitvoering tegen de huidige prijs.
  • LONGONMARKET, waar zolang er een long positie open is.
  • DEFPARAM, parameters op strategieniveau zoals CumulateOrders.