Jetzt beitreten
ProBacktest/probacktest · proorder

CONTRACT

CONTRACT ist eine Mengeneinheit in ProBacktest und ProOrder, die die Ordergröße in Kontrakten festlegt, wie in BUY 5 CONTRACTS AT MARKET, austauschbar mit SHARES oder LOT.

Syntax

probuilder
x CONTRACT

Innerhalb eines Orderbefehls verwendet:

probuilder
BUY 5 CONTRACTS AT MARKET

Parameter

NameTypStandardBeschreibung
xnumerisch1 beim Einstieg, volle Position beim AusstiegAnzahl der Kontrakte für die Order. Akzeptiert Literale oder numerische Ausdrücke.

So funktioniert es

CONTRACT legt fest, wie viele Kontrakte eine Order handelt. Es trägt keine eigene Richtung: BUY 5 CONTRACTS AT MARKET eröffnet einen Long oder baut ihn aus, SELLSHORT 5 CONTRACTS AT MARKET eröffnet einen Short oder baut ihn aus, und SELL 2 CONTRACTS AT MARKET reduziert einen Long um zwei Kontrakte.

Das Schlüsselwort ist eines von mehreren austauschbaren Einheitenwörtern. SHARE, CONTRACTS, PERPOINT, LOT und LOTS werden an derselben Stelle bei jedem Instrumententyp akzeptiert, und die Schreibweise im Singular oder Plural macht funktional keinen Unterschied. Bei Forex wird die angegebene Menge mit der Größe eines Lots multipliziert.

Wenn keine Menge angegeben ist, gelten Standardwerte. Eine Einstiegsorder wie BUY AT MARKET handelt eine Einheit. Eine Ausstiegsorder wie SELL AT MARKET oder EXITSHORT AT MARKET schließt die gesamte offene Position, unabhängig von ihrer Größe.

Die Menge kann eine Variable sein, und so werden position sizing-Regeln, zum Beispiel eine aus der Volatilität oder aus der Equity des Kontos abgeleitete Kontraktanzahl, in den Orderfluss eingebunden.

Beispiele

Beispiel 1, Fester Einstieg mit fünf Kontrakten (ProBacktest)

probuilder
long = close crosses over Average[50](close)
IF NOT LongOnMarket AND long THEN
    // Order size fixed at five contracts
    BUY 5 CONTRACTS AT MARKET
ENDIF
SET STOP PLOSS 40

Das Kreuzen der gleitenden Durchschnitte löst einen Long-Einstieg von genau fünf Kontrakten aus, die Größe wird durch die Einheit CONTRACT angegeben.

Beispiel 2, Volatilitätsskalierte Kontraktanzahl (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Fewer contracts when the market is volatile
atr = AverageTrueRange[14](close)
n = MAX(1, ROUND(200 / atr))

IF NOT OnMarket AND RSI[14](close) crosses over 50 THEN
    BUY n CONTRACT AT MARKET
ENDIF
SET STOP %LOSS 2

Die Kontraktanzahl ist eine Variable, die auf jedem Bar neu berechnet wird: Ein ruhiger Markt erlaubt mehr Kontrakte, ein volatiler weniger, mit einer Untergrenze von einem.

Beispiel 3, Teilausstieg in Kontrakten (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT OnMarket AND close crosses over Highest[20](high)[1] THEN
    BUY 4 CONTRACTS AT MARKET
ENDIF

// Bank half the position after a favorable move, keep the rest running
IF LongOnMarket AND close >= TRADEPRICE * 1.02 THEN
    SELL 2 CONTRACTS AT MARKET
ENDIF
SET STOP %TRAILING 1.5

Die Angabe einer Menge auf der Ausstiegsorder schließt nur diese Anzahl von Kontrakten, hier zwei von vier, während der Rest unter dem Trailing Stop offen bleibt.

Häufige Fehler und Stolperfallen

  • CONTRACT legt die Größe fest, nicht die Richtung. Das Schlüsselwort öffnet oder schließt von sich aus nichts. Der umgebende Befehl, BUY, SELL, SELLSHORT oder EXITSHORT, entscheidet über die Richtung des Trades.
  • Forex-Lot-Multiplikation. Bei Forex-Instrumenten wird die Menge mit der Lot-Größe multipliziert, daher BUY 1 CONTRACT handelt ein ganzes Lot, nicht eine Währungseinheit. Prüfen Sie die Lot-Definition des Instruments, bevor Sie die Größe festlegen.
  • Nicht angegebene Mengen fallen auf Standardwerte zurück. BUY AT MARKET handelt stillschweigend eine Einheit und SELL AT MARKET schließt die gesamte Position. Eine fehlende Zahl ist kein Fehler, daher verändert ein Tippfehler, der die Menge weglässt, die Position Size ohne Warnung.
  • Gebrochene Anzahlen werden gerundet. Ein berechneter Ausdruck wie capital / price ergibt selten eine ganze Zahl. Verpacken Sie Sizing-Formeln in ROUND, oder fügen Sie eine explizite Untergrenze hinzu, damit die angeforderte Menge bewusst bleibt.
  • CASH, Ordermenge als Geldbetrag.
  • LOT, Ordermenge in Lots.
  • SHARES, Ordermenge als Anzahl von Aktien.
  • BUY, eröffnet eine Long-Position oder baut sie aus.
  • SELL, schließt oder reduziert eine Long-Position.
  • SELLSHORT, eröffnet eine Short-Position oder baut sie aus.
  • EXITSHORT, schließt oder reduziert eine Short-Position.
  • MARKET, sofortige Ausführung zum aktuellen Kurs.
  • COUNTOFPOSITION, Größe der offenen Position in Einheiten.