Word nu lid
ProBacktest/probacktest · proorder

CASH

CASH is een hoeveelheidseenheid in ProBacktest en ProOrder die een order dimensioneert op geldbedrag, zoals in BUY 1000 CASH, in plaats van op een vast aantal aandelen of contracten.

Syntaxis

probuilder
BUY x CASH

Parameters

NaamTypeStandaardBeschrijving
xnumeriekgeenHoeveelheid kapitaal die aan de order wordt toegewezen, in de valuta van het account. Het platform zet dit tegen de huidige prijs om in een hoeveelheid.

Hoe het werkt

CASH vervangt een aantal eenheden in een orderinstructie. Waar BUY 5 CONTRACTS AT MARKET zet de hoeveelheid vast, BUY 1000 CASH AT MARKET zet het kapitaal vast en laat het platform de hoeveelheid afleiden door het geldbedrag te delen door de instrumentprijs. De resulterende exposure blijft dicht bij het gevraagde bedrag, of het instrument nu op 8 of op 800 handelt.

Omdat een geldbedrag zelden opgaat in een heel aantal eenheden, wordt de berekende kwantiteit afgerond. De afrondingsrichting kan worden geforceerd met ROUNDEDDOWN of ROUNDEDUP direct na de CASH sleutelwoord, bijvoorbeeld BUY 1000 CASH ROUNDEDDOWN AT MARKET besteedt nooit meer dan het genoemde bedrag.

Het bedrag kan een literal of elke numerieke expressie zijn, waardoor CASH de natuurlijke unit is voor sizing in verhouding tot de equity: bereken de allocatie opnieuw uit het startkapitaal plus STRATEGYPROFIT en elke trade schaalt automatisch mee met de rekening. CASH is uitwisselbaar met de andere hoeveelheidseenheden, CONTRACT, SHARES en LOT, in dezelfde ordersyntaxis.

Voorbeelden

Voorbeeld 1, Vaste kapitaalallocatie per 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

Elke instap zet dezelfde 1000 eenheden kapitaal in. Bij een aandeel met een prijs van 50 zijn dat ongeveer 20 aandelen, bij een aandeel met een prijs van 250 ongeveer 4 aandelen, waardoor de exposure over instrumenten heen constant blijft.

Voorbeeld 2, Dimensionering proportioneel aan de equity met afrondingscontrole (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

De ordergrootte is 20 procent van de huidige equity. ROUNDEDDOWN garandeert dat de berekende hoeveelheid binnen het budget blijft.

Voorbeeld 3, In cash gedimensioneerde short instap (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 werkt ook bij short instappen; het platform verkoopt short zoveel eenheden als 500 valuta-eenheden tegen de huidige prijs dekken.

Veelvoorkomende fouten en valkuilen

  • Verrassingen bij het afronden van hoeveelheden. Het geldbedrag wordt omgezet naar een heel aantal eenheden, dus de werkelijke exposure wijkt licht af van x. Op hooggeprijsde instrumenten kan het verschil groot zijn; BUY 1000 CASH op een aandeel van 800 koopt één enkel aandeel. Gebruik ROUNDEDDOWN of ROUNDEDUP om de richting te bepalen.
  • Bedrag onder één eenheid. Als x kleiner is dan de prijs van één unit en er naar beneden wordt afgerond, kan de berekende hoeveelheid nul zijn en wordt er geen order geplaatst. Bescherm de allocatie met een minimum vóór de orderregel.
  • Geen stop loss-instructie. CASH dimensioneert instappen; het begrenst geen verliezen. Het geld dat op een trade verloren gaat beperken is de taak van SET STOP $LOSS.
  • Uitstappen hebben meestal geen hoeveelheid nodig. SELL AT MARKET sluit de volledige positie. Bij de uitstap opnieuw een cashbedrag opgeven sluit alleen de berekende hoeveelheid, waardoor er een restpositie kan achterblijven wanneer de prijs sinds de instap is bewogen.
  • CONTRACT, orderhoeveelheid als een aantal contracten.
  • LOT, orderhoeveelheid in lots.
  • SHARES, orderhoeveelheid als aantal aandelen.
  • BUY, opent een long positie of breidt deze uit.
  • SELLSHORT, opent een short positie of breidt deze uit.
  • ROUNDEDDOWN, rondt een uit cash afgeleide hoeveelheid naar beneden af.
  • ROUNDEDUP, rondt een uit cash afgeleide hoeveelheid naar boven af.
  • MARKET, onmiddellijke uitvoering tegen de huidige prijs.
  • STRATEGYPROFIT, gerealiseerde winst van de strategie, nuttig voor dimensionering op basis van equity.