Bli medlem idag
ProBacktest/probacktest · proorder

CASH

CASH är en kvantitetsenhet i ProBacktest och ProOrder som storleksätter en order utifrån ett penningbelopp, som i BUY 1000 CASH, i stället för ett fast antal aktier eller kontrakt.

Syntax

probuilder
BUY x CASH

Parametrar

NamnTypStandardBeskrivning
xnumeriskingenKapitalbelopp att allokera till ordern, i kontots valuta. Plattformen omvandlar det till en kvantitet till aktuellt pris.

Så fungerar det

CASH ersätter ett antal enheter i en orderinstruktion. Där BUY 5 CONTRACTS AT MARKET låser kvantiteten, BUY 1000 CASH AT MARKET låser kapitalet och låter plattformen räkna fram kvantiteten genom att dividera kontantbeloppet med instrumentets pris. Den resulterande exponeringen håller sig nära det begärda beloppet oavsett om instrumentet handlas på 8 eller på 800.

Eftersom ett kontantbelopp sällan går jämnt upp i ett helt antal enheter avrundas den beräknade kvantiteten. Avrundningsriktningen kan tvingas med ROUNDEDDOWN eller ROUNDEDUP omedelbart efter CASH nyckelord, till exempel BUY 1000 CASH ROUNDEDDOWN AT MARKET spenderar aldrig mer än det angivna beloppet.

Beloppet kan vara en literal eller vilket numeriskt uttryck som helst, vilket gör CASH till den naturliga enheten för equity-proportionell storlek: beräkna om allokeringen från startkapital plus STRATEGYPROFIT och varje affär skalas automatiskt med kontot. CASH är utbytbart mot de andra kvantitetsenheterna, CONTRACT, SHARES och LOT, med samma ordersyntax.

Exempel

Exempel 1, Fast kapitalallokering per affär (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

Varje entry sätter in samma 1000 kapitalenheter. På en aktie som kostar 50 blir det omkring 20 aktier, på en aktie som kostar 250 omkring 4 aktier, vilket håller exponeringen konstant över instrument.

Exempel 2, Equity-proportionell storleksättning med avrundningskontroll (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

Orderstorleken är 20 procent av aktuell equity. ROUNDEDDOWN garanterar att den beräknade kvantiteten håller sig inom budgeten.

Exempel 3, Short-entry storleksatt i CASH (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 fungerar även med short-entries; plattformen säljer short så många enheter som 500 valutaenheter täcker till aktuellt pris.

Vanliga fel och fallgropar

  • Överraskningar vid avrundning av kvantitet. Kontantbeloppet omvandlas till ett helt antal enheter, så den faktiska exponeringen avviker något från x. På högt prissatta instrument kan gapet vara stort; BUY 1000 CASH på en aktie som kostar 800 köper en enda aktie. Använd ROUNDEDDOWN eller ROUNDEDUP för att styra riktningen.
  • Belopp under en enhet. Om x är mindre än priset för en enhet och avrundningen sker nedåt kan den beräknade kvantiteten bli noll och ingen order läggs. Skydda allokeringen med ett minimum före orderraden.
  • Inte en stop loss-instruktion. CASH storleksbestämmer entryer; den begränsar inte förluster. Att begränsa pengarna som förloras i en affär är uppgiften för SET STOP $LOSS.
  • Exits behöver vanligtvis ingen kvantitet. SELL AT MARKET stänger hela positionen. Att ange ett kontantbelopp igen vid exit stänger bara den beräknade kvantiteten, vilket kan lämna en restposition när priset har rört sig sedan entry.
  • CONTRACT, orderkvantitet som ett antal kontrakt.
  • LOT, orderkvantitet i lots.
  • SHARES, orderkvantitet som ett antal aktier.
  • BUY, öppnar eller utökar en long-position.
  • SELLSHORT, öppnar eller utökar en short-position.
  • ROUNDEDDOWN, avrundar en kvantitet beräknad från CASH nedåt.
  • ROUNDEDUP, avrundar en kvantitet beräknad från CASH uppåt.
  • MARKET, omedelbar exekvering till aktuellt pris.
  • STRATEGYPROFIT, strategins realiserade vinst, användbar för equity-baserad storleksättning.