Bli medlem i dag
ProBacktest/probacktest · proorder

CASH

CASH er en antallsenhet i ProBacktest og ProOrder som dimensjonerer en ordre etter pengebeløp, som i BUY 1000 CASH, i stedet for et fast antall aksjer eller kontrakter.

Syntaks

probuilder
BUY x CASH

Parametere

NavnTypeStandardBeskrivelse
xnumeriskingenKapitalbeløpet som skal allokeres til ordren, i kontoens valuta. Plattformen konverterer det til et antall til gjeldende pris.

Slik fungerer det

CASH erstatter et enhetsantall i en ordreinstruksjon. Der BUY 5 CONTRACTS AT MARKET fastsetter antallet, BUY 1000 CASH AT MARKET fastsetter kapitalen og lar plattformen utlede antallet ved å dele kontantbeløpet på instrumentprisen. Den resulterende eksponeringen holder seg nær det forespurte beløpet uansett om instrumentet handles på 8 eller på 800.

Fordi et kontantbeløp sjelden går opp i et helt antall enheter, rundes det beregnede kvantumet av. Avrundingsretningen kan tvinges med ROUNDEDDOWN eller ROUNDEDUP umiddelbart etter CASH nøkkelord, for eksempel BUY 1000 CASH ROUNDEDDOWN AT MARKET bruker aldri mer enn det oppgitte beløpet.

Beløpet kan være en konstant eller et hvilket som helst numerisk uttrykk, noe som gjør CASH til den naturlige enheten for equity-proporsjonal posisjonering: beregn allokeringen på nytt ut fra startkapital pluss STRATEGYPROFIT og hver handel skalerer automatisk med kontoen. CASH kan byttes om med de andre antallsenhetene, CONTRACT, SHARES og LOT, med samme ordresyntaks.

Eksempler

Eksempel 1, Fast kapitalallokering per handel (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

Hver inngang setter inn de samme 1000 kapitalenhetene. På en aksje priset til 50 er det omtrent 20 aksjer, på en aksje priset til 250 omtrent 4 aksjer, slik at eksponeringen holdes konstant på tvers av instrumenter.

Eksempel 2, Equity-proporsjonal dimensjonering med avrundingskontroll (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

Ordrestørrelsen er 20 prosent av gjeldende equity. ROUNDEDDOWN garanterer at det beregnede antallet holder seg innenfor budsjettet.

Eksempel 3, CASH-dimensjonert short-inngang (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 fungerer også med short-innganger; plattformen shortselger så mange enheter som 500 valutaenheter dekker til gjeldende pris.

Vanlige feil og fallgruver

  • Overraskelser ved avrunding av antall. Kontantbeløpet konverteres til et helt antall enheter, så den faktiske eksponeringen avviker litt fra x. På høyt prisede instrumenter kan gapet være stort; BUY 1000 CASH på en aksje priset til 800 kjøper én enkelt aksje. Bruk ROUNDEDDOWN eller ROUNDEDUP for å styre retningen.
  • Beløp under én enhet. Hvis x er mindre enn prisen på én enhet og avrundingen går nedover, kan den beregnede mengden bli null og ingen ordre legges. Sikre allokeringen med et minimum før ordrelinjen.
  • Ikke en stop loss-instruksjon. CASH dimensjonerer inngangene; den begrenser ikke tap. Å begrense pengene tapt på en handel er jobben til SET STOP $LOSS.
  • Utganger trenger vanligvis ikke antall. SELL AT MARKET lukker hele posisjonen. Å oppgi et kontantbeløp på nytt ved utgang lukker bare den beregnede mengden, noe som kan etterlate en restposisjon når prisen har beveget seg siden inngang.
  • CONTRACT, ordreantall som et antall kontrakter.
  • LOT, ordrekvantum i lots.
  • SHARES, ordrekvantum som et antall aksjer.
  • BUY, åpner eller øker en long-posisjon.
  • SELLSHORT, åpner eller øker en short-posisjon.
  • ROUNDEDDOWN, runder et kontantutledet antall ned.
  • ROUNDEDUP, runder et kontantutledet antall opp.
  • MARKET, umiddelbar utførelse til gjeldende pris.
  • STRATEGYPROFIT, realisert gevinst for strategien, nyttig for equity-basert dimensjonering.