Jetzt beitreten
ProBacktest/probacktest · proorder

SELL

SELL in ProBacktest und ProOrder schließt eine offene long-Position. SELL steigt aus longs aus, während SELLSHORT shorts eröffnet. Syntax, Ordertypen und Beispiele erklärt.

Syntax

probuilder
SELL AT MARKET
probuilder
SELL x CONTRACT AT MARKET
probuilder
SELL AT price STOP

So funktioniert es

SELL ist der Ausstiegsbefehl auf der Long-Seite. Ohne Menge geschrieben, SELL AT MARKET schließt die gesamte offene Long-Position zum nächsten verfügbaren Kurs. Mit einer Menge, etwa SELL 1 CONTRACT AT MARKET, schließt es nur einen Teil einer größeren Position, und genau so wird ein stufenweiser Ausstieg ausgedrückt.

Pending-Formen sind ebenfalls verfügbar: SELL AT price LIMIT steigt auf einem angegebenen Niveau oder besser über dem Markt aus, eine Order zur Gewinnmitnahme, und SELL AT price STOP steigt aus, sobald der Kurs ein Niveau durchbricht, eine manuelle Stop-Order. Wie bei allen schwebenden Orders in ProBacktest und ProOrder wird eine nicht ausgeführte Order nach einem Bar gelöscht und muss erneut übermittelt werden, solange die Ausstiegsregel gültig bleibt.

Die Unterscheidung zu SELLSHORT ist wichtig. SELL reduziert oder schließt immer nur eine long-Position; wenn die Strategie keine Position hält oder short ist, hat eine SELL-Order keine Wirkung. SELLSHORT eröffnet eine neue short-Position, und EXITSHORT schließt sie. Die vier Orderbefehle bilden Paare: BUY mit SELL für die long-Seite und SELLSHORT mit EXITSHORT für die short-Seite.

Beispiele

Beispiel 1, Regelbasierter Ausstieg aus einer long-Position (ProBacktest)

probuilder
// Close the long at market when the exit conditions are met
IF LongOnMarket AND ExitConditions THEN
    SELL AT MARKET
ENDIF

Die Position wird zum aktuellen Marktpreis geschlossen, sobald die Ausstiegsregel bei offenem long-Trade auslöst. Dies ist das Beispiel aus der offiziellen Referenz.

Beispiel 2, Abbau der halben Position nach einem Gewinn (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Enter with two contracts when flat
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
  BUY 2 CONTRACT AT MARKET
ENDIF

// Take half off after a 2 percent gain from entry
IF longonmarket AND close >= tradeprice * 1.02 AND countofposition = 2 THEN
  SELL 1 CONTRACT AT MARKET
ENDIF

// Close the remainder when the trend turns
IF longonmarket AND close CROSSES UNDER Average[50](close) THEN
  SELL AT MARKET
ENDIF

Ein SELL mit Mengenangabe schließt einen Teil der Position, während das abschließende SELL ohne Mengenangabe den Rest glattstellt.

Beispiel 3, Schwebender Stop-Ausstieg unterhalb des Einstiegs (ProOrder)

probuilder
// Maintain a resting exit 50 points below the entry price
IF longonmarket THEN
  SELL AT tradeprice - 50 * pointsize STOP
ENDIF

Die schwebende Stop-Order wird auf jedem Bar erneut übermittelt, solange der Long offen ist, und hält damit einen festen Ausstieg 50 Punkte unter dem Ausführungspreis bereit.

Häufige Fehler und Stolperfallen

  • SELL ist nicht SELLSHORT. SELL schließt longs; SELLSHORT eröffnet shorts. Eine Strategie, die short gehen soll und SELL ohne offene Position absetzt, tut nichts, und der Fehler bleibt stumm, weil die Order einfach ignoriert wird.
  • Keine long-Position zum Schließen. Wenn die Strategie flat oder short ist, hat SELL keine Wirkung. Sichern Sie Ausstiegsblöcke mit IF LongOnMarket THEN damit die Absicht des Codes explizit bleibt.
  • Schwebende Ausstiege verfallen nach einem Bar. Eine ruhende SELL ... STOP oder SELL ... LIMIT Order wird storniert, wenn sie nach dem nächsten Bar nicht ausgeführt ist. Senden Sie sie auf jedem Bar erneut, solange die Position offen ist, wie in Beispiel 3.
  • Abweichung bei der Teilmenge. Ein SELL mit einer Mengenangabe, die größer als die offene Position ist, schließt lediglich die Position; es dreht nicht in einen short. Prüfen Sie die Größe mit COUNTOFPOSITION, bevor Sie feste Beträge abbauen.
  • BUY, eröffnet eine Long-Position.
  • SELLSHORT, eröffnet eine Short-Position.
  • EXITSHORT, schließt eine Short-Position.
  • MARKET, sofortige Ausführung zum aktuellen Kurs.
  • LIMIT, ausstehende Order zum angegebenen Kurs oder besser.
  • STOP, ausstehende Order, die ausgelöst wird, wenn der Kurs ein Niveau kreuzt.
  • LONGONMARKET, wahr, solange eine Long-Position offen ist.
  • ONMARKET, wahr, solange eine Position offen ist.
  • TRADEPRICE, der Ausführungskurs eines vergangenen Trades.