Bli medlem idag
ProBacktest/probacktest · proorder

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

probuilder
x CONTRACT

Används inuti en orderinstruktion:

probuilder
BUY 5 CONTRACTS AT MARKET

Parametrar

NamnTypStandardBeskrivning
xnumerisk1 vid entry, hela positionen vid exitAntal 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)

probuilder
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 40

Korsningen 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)

probuilder
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 2

Antalet 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)

probuilder
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.5

Att 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, SELLSHORT eller EXITSHORT, avgör affärens riktning.
  • Multiplikation av forex-lot. På Forex-instrument multipliceras kvantiteten med lotstorleken, så BUY 1 CONTRACT handlar en hel lot, inte en valutaenhet. Kontrollera instrumentets lotdefinition innan du dimensionerar.
  • Ej angivna volymer faller tillbaka på standardvärden. BUY AT MARKET handlar tyst en enhet och SELL AT MARKET stä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 / price ger sällan ett heltal. Omslut storleksformler med ROUND, eller lägg till ett explicit golv, för att hålla den begärda kvantiteten medveten.
  • 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.