Word nu lid
ProBacktest/probacktest · proorder

CONTRACT

CONTRACT is een eenheid voor hoeveelheid in ProBacktest en ProOrder die de ordergrootte in contracten instelt, zoals in BUY 5 CONTRACTS AT MARKET, uitwisselbaar met SHARES of LOT.

Syntaxis

probuilder
x CONTRACT

Gebruikt binnen een orderinstructie:

probuilder
BUY 5 CONTRACTS AT MARKET

Parameters

NaamTypeStandaardBeschrijving
xnumeriek1 bij instap, volledige positie bij uitstapAantal contracten voor de order. Accepteert literalen of numerieke expressies.

Hoe het werkt

CONTRACT geeft aan hoeveel contracten een order verhandelt. Het heeft geen eigen richting: BUY 5 CONTRACTS AT MARKET opent of vergroot een long, SELLSHORT 5 CONTRACTS AT MARKET opent of vult een short aan, en SELL 2 CONTRACTS AT MARKET verlaagt een long met twee contracten.

Het keyword is een van meerdere onderling uitwisselbare eenheidswoorden. SHARE, CONTRACTS, PERPOINT, LOT en LOTS worden op dezelfde plek geaccepteerd bij elk instrumenttype, en enkelvoud of meervoud maakt functioneel geen verschil. Op Forex wordt het opgegeven aantal vermenigvuldigd met de grootte van één lot.

Wanneer geen hoeveelheid is opgegeven, gelden standaardwaarden. Een entry-order zoals BUY AT MARKET verhandelt één eenheid. Een uitstaporder zoals SELL AT MARKET of EXITSHORT AT MARKET sluit de volledige open positie, ongeacht de grootte.

De hoeveelheid mag een variabele zijn, en zo worden regels voor position size, bijvoorbeeld een aantal contracten afgeleid van de volatiliteit of van de equity op de rekening, in de orderstroom verwerkt.

Voorbeelden

Voorbeeld 1, Vaste instap van vijf contracten (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

De kruising van de moving averages activeert een long instap van precies vijf contracten, de grootte die door de eenheid CONTRACT wordt opgegeven.

Voorbeeld 2, Aantal contracten geschaald naar volatiliteit (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

Het aantal contracten is een variabele die elke bar opnieuw wordt berekend: een rustige markt staat meer contracten toe, een volatiele minder, met een ondergrens van één.

Voorbeeld 3, Gedeeltelijke uitstap in contracten (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

Een hoeveelheid opgeven op de uitstaporder sluit alleen dat aantal contracten, hier twee van de vier, terwijl de rest open blijft onder de trailing stop.

Veelvoorkomende fouten en valkuilen

  • CONTRACT stelt de grootte in, niet de richting. Het keyword opent of sluit nooit zelf iets. De omringende instructie, BUY, SELL, SELLSHORT of EXITSHORT, bepaalt de kant van de trade.
  • Vermenigvuldiging van forex lots. Op Forex-instrumenten wordt de hoeveelheid vermenigvuldigd met de lotgrootte, dus BUY 1 CONTRACT handelt één volledig lot, niet één valuta-eenheid. Controleer de lotdefinitie van het instrument voordat je de grootte bepaalt.
  • Niet opgegeven hoeveelheden vallen terug op standaardwaarden. BUY AT MARKET verhandelt stilzwijgend één eenheid en SELL AT MARKET sluit de hele positie. Een ontbrekend getal is geen fout, dus een typefout waardoor de kwantiteit wegvalt verandert de position size zonder waarschuwing.
  • Gebroken aantallen worden afgerond. Een berekende expressie zoals capital / price levert zelden een geheel getal op. Wikkel sizingformules in ROUND, of voeg een expliciet minimum toe, om de gevraagde hoeveelheid bewust te houden.
  • CASH, ordergrootte als geldbedrag.
  • LOT, orderhoeveelheid in lots.
  • SHARES, orderhoeveelheid als aantal aandelen.
  • BUY, opent een long positie of breidt deze uit.
  • SELL, sluit of verkleint een long positie.
  • SELLSHORT, opent een short positie of breidt deze uit.
  • EXITSHORT, sluit of verkleint een short positie.
  • MARKET, onmiddellijke uitvoering tegen de huidige prijs.
  • COUNTOFPOSITION, grootte van de open positie in eenheden.