Jetzt beitreten
ProBacktest/probacktest · proorder

CASH

CASH ist eine Mengeneinheit in ProBacktest und ProOrder, die eine Order über einen Geldbetrag dimensioniert, wie in BUY 1000 CASH, anstatt über eine feste Anzahl von Aktien oder Kontrakten.

Syntax

probuilder
BUY x CASH

Parameter

NameTypStandardBeschreibung
xnumerischkeineHöhe des Kapitals, das der Order zugewiesen wird, in der Kontowährung. Die Plattform wandelt es zum aktuellen Kurs in eine Menge um.

So funktioniert es

CASH ersetzt eine Stückzahl in einer Order-Anweisung. Wo BUY 5 CONTRACTS AT MARKET legt die Menge fest, BUY 1000 CASH AT MARKET legt das Kapital fest und lässt die Plattform die Menge ableiten, indem der Geldbetrag durch den Instrumentenkurs geteilt wird. Das resultierende Exposure bleibt nahe am angeforderten Betrag, unabhängig davon, ob das Instrument bei 8 oder bei 800 notiert.

Da sich ein Geldbetrag selten in eine ganze Zahl von Einheiten teilen lässt, wird die berechnete Menge gerundet. Die Rundungsrichtung kann erzwungen werden mit ROUNDEDDOWN oder ROUNDEDUP unmittelbar nach dem CASH Schlüsselwort, zum Beispiel BUY 1000 CASH ROUNDEDDOWN AT MARKET gibt niemals mehr als den angegebenen Betrag aus.

Der Betrag kann ein Literal oder ein beliebiger numerischer Ausdruck sein, was CASH zur natürlichen Einheit für eine zur Equity proportionale Positionsgröße macht: Berechnen Sie die Zuteilung neu aus dem Startkapital plus STRATEGYPROFIT und jeder Trade skaliert automatisch mit dem Konto. CASH ist mit den anderen Mengeneinheiten austauschbar, CONTRACT, SHARES und LOT, in derselben Order-Syntax.

Beispiele

Beispiel 1, Feste Kapitalzuweisung pro Trade (ProBacktest)

probuilder
long = close crosses over Average[50](close)
IF NOT LongOnMarket AND long THEN
    // Allocate 1000 of account currency, whatever the share price is
    BUY 1000 CASH AT MARKET
ENDIF
SET STOP %LOSS 3

Jeder Einstieg setzt dieselben 1000 Kapitaleinheiten ein. Bei einer Aktie mit Kurs 50 sind das etwa 20 Aktien, bei einer Aktie mit Kurs 250 etwa 4 Aktien, wodurch das Exposure über Instrumente hinweg konstant bleibt.

Beispiel 2, Equity-proportionale Dimensionierung mit Rundungssteuerung (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Reinvest gains: allocation grows and shrinks with realized performance
startCapital = 10000
allocation = (startCapital + STRATEGYPROFIT) * 0.2

IF NOT OnMarket AND RSI[14](close) < 30 THEN
    // Round down so the order never exceeds the allocation
    BUY allocation CASH ROUNDEDDOWN AT MARKET
ENDIF
SET STOP %LOSS 2

Die Ordergröße beträgt 20 Prozent der aktuellen Equity. ROUNDEDDOWN garantiert, dass die berechnete Menge innerhalb des Budgets bleibt.

Beispiel 3, Cash-dimensionierter short-Einstieg (ProOrder)

probuilder
bearish = close crosses under Average[100](close)
IF NOT ShortOnMarket AND bearish THEN
    // Commit 500 of capital to the short side
    SELLSHORT 500 CASH AT MARKET
ENDIF
SET STOP %TRAILING 2

CASH funktioniert auch bei short-Einstiegen; die Plattform verkauft short so viele Einheiten, wie 500 Währungseinheiten zum aktuellen Kurs abdecken.

Häufige Fehler und Stolperfallen

  • Überraschungen bei der Mengenrundung. Der Geldbetrag wird in eine ganze Anzahl von Einheiten umgerechnet, sodass das tatsächliche Exposure leicht abweicht von x. Bei hochpreisigen Instrumenten kann die Lücke groß sein; BUY 1000 CASH bei einer Aktie zum Preis von 800 kauft eine einzige Aktie. Verwenden Sie ROUNDEDDOWN oder ROUNDEDUP um die Richtung zu steuern.
  • Betrag unter einer Einheit. Wenn x kleiner ist als der Preis einer Einheit und abgerundet wird, kann die berechnete Menge null sein und es wird keine Order platziert. Sichern Sie die Zuteilung vor der Order-Zeile mit einem Minimum ab.
  • Kein stop loss-Befehl. CASH dimensioniert Einstiege; es begrenzt keine Verluste. Den Geldverlust eines Trades zu begrenzen ist die Aufgabe von SET STOP $LOSS.
  • Ausstiege brauchen in der Regel keine Menge. SELL AT MARKET schließt die gesamte Position. Die erneute Angabe eines Geldbetrags beim Ausstieg schließt nur die berechnete Menge, was eine Restposition hinterlassen kann, wenn sich der Kurs seit dem Einstieg bewegt hat.
  • CONTRACT, Ordermenge als Anzahl von Kontrakten.
  • LOT, Ordermenge in Lots.
  • SHARES, Ordermenge als Anzahl von Aktien.
  • BUY, eröffnet eine Long-Position oder baut sie aus.
  • SELLSHORT, eröffnet eine Short-Position oder baut sie aus.
  • ROUNDEDDOWN, rundet eine aus einem Geldbetrag abgeleitete Menge ab.
  • ROUNDEDUP, rundet eine aus einem Geldbetrag abgeleitete Menge auf.
  • MARKET, sofortige Ausführung zum aktuellen Kurs.
  • STRATEGYPROFIT, realisierter Gewinn der Strategie, nützlich für eine equity-basierte Dimensionierung.