COUNTOFPOSITION
COUNTOFPOSITION returnerer den fortegnede størrelsen på den åpne posisjonen i ProBacktest og ProOrder, positiv for long og negativ for short. Syntaks og eksempler.
Syntaks
COUNTOFPOSITIONNøkkelordet tar ingen parametere og brukes som en skrivebeskyttet variabel inne i uttrykk.
Slik fungerer det
På hver bar, COUNTOFPOSITION gjenspeiler antallet strategien holder akkurat nå. Fortegnet angir retning: en strategi som er long 3 kontrakter viser 3, en strategi som er short 3 kontrakter leser -3, og en flat strategi leser 0. Verdien oppdateres etter hvert som ordrer fylles, så etter en delvis utgang viser den gjenstående kvantitet, ikke den opprinnelige inngangsstørrelsen.
Fortegnskonvensjonen gjør nøkkelordet nyttig i to situasjoner. Først retningssjekker: COUNTOFPOSITION > 0 er ekvivalent med LONGONMARKET, og COUNTOFPOSITION < 0 til SHORTONMARKET. For det andre, eksponeringsgrenser: ABS(COUNTOFPOSITION) gir total størrelse uavhengig av retning, som er den vanlige måten å begrense pyramidering når DEFPARAM CumulateOrders = true tillater gjentatte innganger i samme retning.
Bare utført kvantum telles. Ventende limit- eller stoppordrer som ikke er utført, endrer ikke verdien. For fortegnsløse opptellinger per retning, COUNTOFLONGSHARES og COUNTOFSHORTSHARES rapporterer long- og short-antallet separat.
Eksempler
Eksempel 1, Sette tak på en pyramidert short-posisjon (ProBacktest)
myMACD = MACD[12,26,9](close)
short = myMACD crosses under 0
// First short entry when flat on the short side
IF NOT ShortOnMarket AND short THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Allow re-entries only while total size stays at or below 10 contracts
MAXSHARES = abs(COUNTOFPOSITION) <= 10
IF TRADEINDEX(1) > 5 AND TRADEPRICE(1) - Close > 10 * pointsize AND ShortOnMarket AND MAXSHARES THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
SET STOP TRAILING 50Strategien skalerer inn i en short mens prisen faller. Fordi COUNTOFPOSITION er negativ når man er short, ABS() konverterer den til en total størrelse før den sammenlignes mot taket på 10.
Eksempel 2, Retningssjekk uten ONMARKET-nøkkelord (ProOrder)
DEFPARAM CumulateOrders = false
fastMA = Average[20](close)
slowMA = Average[50](close)
// Enter long on a bullish crossover when flat
IF COUNTOFPOSITION = 0 AND fastMA crosses over slowMA THEN
BUY 2 CONTRACTS AT MARKET
ENDIF
// Close the long on a bearish crossover
IF COUNTOFPOSITION > 0 AND fastMA crosses under slowMA THEN
SELL AT MARKET
ENDIFCOUNTOFPOSITION = 0 oppdager en flat strategi og COUNTOFPOSITION > 0 oppdager en åpen long, og speiler ONMARKET og LONGONMARKET med ett enkelt nøkkelord.
Eksempel 3, Dimensjonere en delvis utgang ut fra den løpende posisjonen (ProOrder)
DEFPARAM CumulateOrders = true
// Scale into a long, then bank half once the trade is 20 points onside
IF LongOnMarket AND close - TRADEPRICE >= 20 * pointsize AND COUNTOFPOSITION >= 4 THEN
// Exit half of whatever is currently held
SELL COUNTOFPOSITION / 2 CONTRACTS AT MARKET
ENDIFÅ lese den løpende størrelsen lar utgangen tilpasse seg hvor mange innganger som faktisk ble utført, i stedet for å hardkode en mengde.
Vanlige feil og fallgruver
- Å glemme fortegnet på shorts. Mens short,
COUNTOFPOSITIONer negativ, så en sikring somCOUNTOFPOSITION <= 10er alltid sann og begrenser aldri noe. SammenlignABS(COUNTOFPOSITION)når hensikten er total størrelse. - Å forvente at ventende ordrer teller med. Verdien gjenspeiler bare utført kvantum. En liggende limitordre som ikke er utført, lar
COUNTOFPOSITIONuendret, så eksponeringsgrenser basert på den tar ikke hensyn til ordrer som venter hos megleren. - Ingen akkumulering uten CumulateOrders. Med standard
DEFPARAM CumulateOrders = false, stables ikke flere ordrer i samme retning, såCOUNTOFPOSITIONvokser aldri forbi den første inngangen, og pyramideringslogikk gjør stille ingenting. - Å bruke det utenfor strategier. Nøkkelordet finnes ikke i ProBuilder-indikatorer eller ProScreener. Posisjonsbevisst logikk må ligge i selve ProBacktest- eller ProOrder-koden.
Relaterte instruksjoner
COUNTOFLONGSHARES, antall aksjer holdt long, uten fortegn.COUNTOFSHORTSHARES, antall aksjer holdt short, uten fortegn.CumulateOrders, DEFPARAM-parameter som gjør det mulig å stable innganger i samme retning.ONMARKET, sann så lenge en posisjon er åpen.LONGONMARKET, sann så lenge en long-posisjon er åpen.SHORTONMARKET, sann så lenge en short-posisjon er åpen.TRADEINDEX, barindeksen for utførelsen av en tidligere handel.TRADEPRICE, inngangsprisen for gjeldende eller en tidligere handel.