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
BUY x SHARES AT MARKETBUY x CONTRACT AT price LIMITBUY x CONTRACT AT price STOPParameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
x | Zahl | erforderlich | Ordermenge, interpretiert über die darauf folgende Einheit. |
| Einheit | SHARES, CONTRACT, LOT, CASH | erforderlich | Größeneinheit. CASH gibt einen Betrag in Kontowährung an statt einer Anzahl von Einheiten. |
| Ordertyp | AT MARKET, AT price LIMIT, AT price STOP | erforderlich | Sofortige 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)
// Enter long at market when flat and the entry conditions hold
IF NOT LongOnMarket AND LongConditions THEN
BUY 1 SHARES AT MARKET
ENDIFEine 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)
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
ENDIFDie 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)
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
ENDIFCASH 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.
CumulateOrdersist standardmäßig aktiviert, sodass eine Einstiegsbedingung, die über mehrere Bars true bleibt, auf jedem davon einen neuen BUY stapelt. Setzen Sie entwederDEFPARAM CumulateOrders = falseoder den Einstieg absichern mitNOT LongOnMarket. - Ausstehende Orders verfallen nach einem Bar. A
LIMIToderSTOPOrder, 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.
SHARESbei einem Forex-Paar oderLOTbei einer Aktie bemisst die Order nicht wie beabsichtigt. Passen Sie die Einheit an den Markt an, oder verwenden SieCASHfü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.
Verwandte Befehle
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.