Jetzt beitreten
ProBacktest/probacktest · proorder

BUY

BUY eröffnet in ProBacktest und ProOrder eine long-Position. Behandelt Mengeneinheiten, die Ordertypen AT MARKET, LIMIT und STOP sowie häufige Fehler bei der Dimensionierung und beim Einstieg.

Syntax

probuilder
BUY x SHARES AT MARKET
probuilder
BUY x CONTRACT AT price LIMIT
probuilder
BUY x CONTRACT AT price STOP

Parameter

NameTypStandardBeschreibung
xZahlerforderlichOrdermenge, interpretiert über die darauf folgende Einheit.
EinheitSHARES, CONTRACT, LOT, CASHerforderlichGrößeneinheit. CASH gibt einen Betrag in Kontowährung an statt einer Anzahl von Einheiten.
OrdertypAT MARKET, AT price LIMIT, AT price STOPerforderlichSofortige Ausführung zum aktuellen Kurs oder eine schwebende Order auf einem angegebenen Niveau.

So funktioniert es

BUY platziert eine Long-Einstiegsorder. Mit AT MARKET, wird die Order zum nächsten verfügbaren Kurs ausgeführt. Mit AT price LIMIT, wartet eine Pending-Order darauf, auf dem angegebenen Niveau oder besser unter dem aktuellen Kurs zu kaufen. Mit AT price STOP, kauft eine Pending-Order, sobald der Kurs über das angegebene Niveau steigt, die übliche Form für Breakout-Einstiege.

Die Mengeneinheit muss zum Instrument passen: SHARES für Aktien, CONTRACT für Futures und CFDs, LOT für Forex, und CASH um die Order als Betrag in Kontowährung zu dimensionieren. Die Positionsakkumulation wird gesteuert durch CumulateOrders. Wenn es aktiviert ist, was der Standard ist, summieren sich wiederholte BUY-Orders zu einer größeren Position; bei DEFPARAM CumulateOrders = false, wird ein neues BUY bei bereits bestehender long-Position ignoriert.

Einstiege werden normalerweise in eine Positionsstatus-Prüfung eingeschlossen, etwa IF NOT LongOnMarket THEN oder IF NOT OnMarket THEN, sodass Orders nur ausgelöst werden, wenn die Strategie eine neue Position halten will.

Beispiele

Beispiel 1, Bedingter Markteinstieg (ProBacktest)

probuilder
// Enter long at market when flat and the entry conditions hold
IF NOT LongOnMarket AND LongConditions THEN
    BUY 1 SHARES AT MARKET
ENDIF

Eine Aktie wird zum aktuellen Marktpreis gekauft, aber nur, wenn noch keine long-Position offen ist. Dies ist das Beispiel aus der offiziellen Referenz.

Beispiel 2, Breakout-Einstieg mit einer schwebenden Stop-Order (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Buy a break of the 20-bar high
entryLevel = Highest[20](high)

IF NOT onmarket THEN
  BUY 1 CONTRACT AT entryLevel STOP
ENDIF

Die schwebende Stop-Order liegt über dem Markt und wird nur ausgeführt, wenn der Kurs über das vorherige 20-Bar-Hoch steigt.

Beispiel 3, Cash-dimensionierter Einstieg mit einem Trendfilter (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Size the position as 5000 units of account currency
IF NOT onmarket AND close > Average[50](close) THEN
  BUY 5000 CASH AT MARKET
ENDIF

// Exit when price loses the average
IF longonmarket AND close < Average[50](close) THEN
  SELL AT MARKET
ENDIF

CASH Sizing hält das Exposure über Instrumente mit unterschiedlichen Preisen hinweg währungsmäßig konstant, statt eine Stückzahl festzulegen.

Häufige Fehler und Stolperfallen

  • Unbeabsichtigtes Pyramidieren. CumulateOrders ist standardmäßig aktiviert, sodass eine Einstiegsbedingung, die über mehrere Bars true bleibt, auf jedem davon einen neuen BUY stapelt. Setzen Sie entweder DEFPARAM CumulateOrders = false oder den Einstieg absichern mit NOT LongOnMarket.
  • Ausstehende Orders verfallen nach einem Bar. A LIMIT oder STOP Order, die auf dem nächsten Bar nicht ausgeführt wird, wird storniert. Dauerhaft schwebende Einstiege müssen bei jedem Bar erneut übermittelt werden, solange das Setup gültig bleibt.
  • Falsche Einheit für das Instrument. SHARES bei einem Forex-Paar oder LOT bei einer Aktie bemisst die Order nicht wie beabsichtigt. Passen Sie die Einheit an den Markt an, oder verwenden Sie CASH für eine in Währung angegebene Größe.
  • BUY als short-Ausstieg. Das Schließen einer short-Position ist die Aufgabe von EXITSHORT. Ein BUY, das größer dimensioniert ist als der offene short, dreht die Position um, statt sie nur zu schließen, was selten das beabsichtigte Verhalten ist.
  • SELL, schließt 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.
  • CONTRACT, Mengeneinheit für Futures und CFDs.
  • SHARES, Mengeneinheit für Aktien.
  • LOT, Mengeneinheit für Forex.
  • CASH, dimensioniert eine Order in Kontowährung.
  • ONMARKET, wahr, solange eine Position offen ist.
  • CumulateOrders, steuert, ob sich wiederholte Einstiege aufaddieren.