CONTRACT
CONTRACT är en volymenhet i ProBacktest och ProOrder som anger orderstorlek i kontrakt, som i BUY 5 CONTRACTS AT MARKET, utbytbar mot SHARES eller LOT.
Syntax
x CONTRACTAnvänds inuti en orderinstruktion:
BUY 5 CONTRACTS AT MARKETParametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
x | numerisk | 1 vid entry, hela positionen vid exit | Antal kontrakt för ordern. Accepterar literaler eller numeriska uttryck. |
Så fungerar det
CONTRACT anger hur många kontrakt en order handlar. Den bär ingen egen riktning: BUY 5 CONTRACTS AT MARKET öppnar eller utökar en long, SELLSHORT 5 CONTRACTS AT MARKET öppnar eller utökar en short, och SELL 2 CONTRACTS AT MARKET minskar en long med två kontrakt.
Nyckelordet är ett av flera utbytbara enhetsord. SHARE, CONTRACTS, PERPOINT, LOT och LOTS accepteras på samma plats för alla instrumenttyper, och stavning i singular eller plural gör ingen funktionell skillnad. På Forex multipliceras den angivna kvantiteten med storleken på en lot.
När ingen kvantitet anges gäller standardvärden. En entryorder som BUY AT MARKET handlar en enhet. En exitorder som SELL AT MARKET eller EXITSHORT AT MARKET stänger hela den öppna positionen, oavsett storlek.
Volymen kan vara en variabel, och det är så regler för position size, till exempel ett antal kontrakt härlett från volatilitet eller från kontots equity, kopplas in i orderflödet.
Exempel
Exempel 1, Fast entry på fem kontrakt (ProBacktest)
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 40Korsningen av de glidande medelvärdena triggar en long-entry på exakt fem kontrakt, storleken som anges av enheten CONTRACT.
Exempel 2, Volatilitetsskalat antal kontrakt (ProOrder)
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 2Antalet kontrakt är en variabel som räknas om varje bar: en lugn marknad tillåter fler kontrakt, en volatil färre, med ett minimum på ett.
Exempel 3, Delvis exit i kontrakt (ProOrder)
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.5Att ange en volym på exitordern stänger bara så många kontrakt, här två av de fyra, medan resten förblir öppen under trailing stop.
Vanliga fel och fallgropar
- CONTRACT anger storlek, inte riktning. Nyckelordet öppnar eller stänger aldrig något i sig själv. Den omgivande instruktionen,
BUY,SELL,SELLSHORTellerEXITSHORT, avgör affärens riktning. - Multiplikation av forex-lot. På Forex-instrument multipliceras kvantiteten med lotstorleken, så
BUY 1 CONTRACThandlar en hel lot, inte en valutaenhet. Kontrollera instrumentets lotdefinition innan du dimensionerar. - Ej angivna volymer faller tillbaka på standardvärden.
BUY AT MARKEThandlar tyst en enhet ochSELL AT MARKETstänger hela positionen. Ett saknat tal är inte ett fel, så ett skrivfel som tappar kvantiteten ändrar position size utan varning. - Decimaltal avrundas. Ett beräknat uttryck såsom
capital / priceger sällan ett heltal. Omslut storleksformler medROUND, eller lägg till ett explicit golv, för att hålla den begärda kvantiteten medveten.
Relaterade instruktioner
CASH, ordervolym som ett penningbelopp.LOT, orderkvantitet i lots.SHARES, orderkvantitet som ett antal aktier.BUY, öppnar eller utökar en long-position.SELL, stänger eller minskar en long-position.SELLSHORT, öppnar eller utökar en short-position.EXITSHORT, stänger eller minskar en short-position.MARKET, omedelbar exekvering till aktuellt pris.COUNTOFPOSITION, storleken på den öppna positionen i enheter.