Jetzt beitreten
ProBacktest/probacktest · proorder

TomorrowOpen

TomorrowOpen verzögert eine ProBacktest- oder ProOrder-Order bis zur Eröffnung des nächsten Handelstages, wie in BUY 1 CONTRACT AT MARKET TomorrowOpen für tägliche Strategien.

Syntax

probuilder
AT MARKET TomorrowOpen

So funktioniert es

Standardmäßig wird eine von einer Strategie gesendete Market-Order zum nächsten verfügbaren Kurs ausgeführt. Das Anhängen von TomorrowOpen verschiebt die Ausführung auf die Eröffnung des nächsten Handelstages. Die Bedingungen werden weiterhin im aktuellen Bar geprüft, nur die Ausführung verschiebt sich auf den ersten Kurs der nächsten Sitzung.

Der Modifikator passt zu Strategien, die auf täglichen Schlusskursdaten aufbauen. Ein Signal, das auf dem fertigen Tages-Bar berechnet wurde, kann realistischerweise nicht zu genau diesem Schlusskurs ausgeführt werden, und eine Ausführung irgendwo innerhalb der Nachtsession ist ebenfalls nicht das, was ein End-of-Day-Modell beabsichtigt. Die Ausführung zur offiziellen Eröffnung des nächsten Tages hält den Backtest ehrlich und entspricht der Art, wie solche Systeme manuell gehandelt werden.

TomorrowOpen unterscheidet sich von NextBarOpen in der Einheit der Verzögerung. NextBarOpen wartet auf die Eröffnung der nächsten Bar in der Zeiteinheit des Charts, welche Zeiteinheit das auch ist. TomorrowOpen wartet immer auf die Eröffnung des nächsten Handelstages, selbst wenn dazwischen mehrere Intraday-Bars auftreten. Auf einem Tageschart fallen beide zusammen.

Beispiele

Beispiel 1, Einen Long zur Eröffnung des nächsten Tages eingehen (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

Die Bedingung wird auf dem abgeschlossenen Tages-Bar geprüft, und wenn sie zutrifft, wird ein Kontrakt zum Eröffnungskurs des folgenden Tages gekauft. Dies entspricht dem Referenzbeispiel für diesen Befehl.

Beispiel 2, Zur nächsten Eröffnung statt über Nacht aussteigen (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

Anstatt die Position in den Schluss oder die Nachtsession zu werfen, wird der Ausstieg für die Eröffnungsauktion des nächsten Tages geplant, wo tägliche Strategien typischerweise handeln.

Beispiel 3, Short-Einstieg bei einem schwachen Tagesschluss (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

Ein Schlusskurs unter dem vorherigen 10-Tage-Tief löst einen Short aus, der zum ersten Kurs der nächsten Session eröffnet wird, mit einem angehängten Schutzstop von 40 Punkten.

Häufige Fehler und Stolperfallen

  • Nur Market-Orders. Der Modifikator erweitert AT MARKET. Es kombiniert sich nicht mit Pending- STOP oder LIMIT Preisniveaus, diese Orderformen haben ihre eigene Auslöselogik.
  • Falsche Verzögerungseinheit auf Intraday-Charts. In einem Intraday-Chart TomorrowOpen wartet auf den nächsten Tag, nicht auf den nächsten Bar. Code, der eine Verzögerung von einem Bar beabsichtigt, benötigt NextBarOpen stattdessen. Auf Tages-Charts entfällt der Unterschied.
  • Das Signal kann über Nacht veralten. Bedingungen werden am aktuellen Schlusskurs ausgewertet, die Ausführung erfolgt jedoch nach dem Übernacht-Gap. Ein großes ungünstiges Gap führt die Order trotzdem aus, daher muss das Gap-Risiko über das Position Sizing oder den Stop gehandhabt werden, nicht über die Einstiegsbedingung.
  • Gültigkeitsbereichsfehler. Da das Schlüsselwort zur Order-Engine gehört, gilt für Indikatoren und Screener mit Verweis auf TomorrowOpen lassen sich nicht kompilieren. Signallogik kann in einem Indikator stehen, aber die Order-Zeile muss im Strategie-Code bleiben.
  • NextBarOpen, verzögert die Ausführung auf die Eröffnung des nächsten Bars in der Chart-Zeiteinheit.
  • BUY, eröffnet eine Long-Position oder baut sie aus.
  • SELLSHORT, eröffnet eine Short-Position oder baut sie aus.
  • SELL, schließt eine Long-Position.
  • EXITSHORT, schließt eine Short-Position.
  • MARKET, sofortige Ausführung zum aktuellen Kurs.
  • LONGONMARKET, wahr, solange eine Long-Position offen ist.
  • DEFPARAM, Parameter auf Strategieebene wie CumulateOrders.