COUNTOFLONGSHARES
COUNTOFLONGSHARES returnerer antall enheter holdt long av en ProBacktest- eller ProOrder-strategi, brukt til å sette et tak på position size når flere ordrer akkumuleres.
Syntaks
COUNTOFLONGSHARESSlik fungerer det
Funksjonen leser den åpne posisjonen og returnerer et heltall: antall enheter holdt på long-siden i evalueringsøyeblikket. Den krever ingen parametere og ingen parenteser. Når strategien er uten posisjon eller short, returnerer den 0.
Tellingen uttrykkes i enheter, ikke i handler. Én enkelt ordre på 3 kontrakter og tre kumulerte ordrer på 1 kontrakt returnerer begge 3. For å resonnere om enkeltinnganger, kombiner den med TRADEINDEX og TRADEPRICE, som adresserer ordrer etter indeksen deres.
Den typiske konteksten er en strategi med DEFPARAM CumulateOrders = true, der flere inngangsordrer kan stables til én posisjon. Å sammenligne COUNTOFLONGSHARES mot et tak før hver ytterligere BUY holder total eksponering innenfor en planlagt grense. Tilsvarende på short-siden er COUNTOFSHORTSHARES, og COUNTOFPOSITION rapporterer den fortegnsatte størrelsen på posisjonen som er åpen.
Eksempler
Eksempel 1, Pyramidering med tak på tre enheter (ProBacktest)
DEFPARAM CumulateOrders = true
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0
// First entry when flat
IF NOT LongOnMarket AND long THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Allow additions only while holding three units or fewer
MAXSHARES = COUNTOFLONGSHARES <= 3
// Add a unit if the last entry is seasoned and in profit
IF TRADEINDEX(1) > 5 AND Close - TRADEPRICE(1) > 10 AND LongOnMarket AND MAXSHARES THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
SET STOP TRAILING 50Strategien åpner på et MACD-kryss, og legger deretter til én kontrakt om gangen så lenge det løpende antallet holder seg på tre eller lavere, den siste inngangen er minst fem barer gammel, og prisen har beveget seg 10 punkter forbi den.
Eksempel 2, Hardt eksponeringstak før hvert påfyll (ProOrder)
DEFPARAM CumulateOrders = true
trendUp = close > Average[100](close)
pullback = RSI[7](close) < 35
// Never hold more than 5 units long
IF trendUp AND pullback AND COUNTOFLONGSHARES < 5 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
SET STOP %TRAILING 2Hver pullback i en opptrend legger til én enhet, men betingelsen på COUNTOFLONGSHARES garanterer at den stablede posisjonen aldri overstiger fem enheter.
Eksempel 3, Nedtrapping når posisjonen er stor (ProOrder)
DEFPARAM CumulateOrders = true
IF close crosses over Average[50](close) AND COUNTOFLONGSHARES < 4 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// When fully loaded and momentum fades, shed one unit
IF COUNTOFLONGSHARES >= 4 AND RSI[14](close) crosses under 70 THEN
SELL 1 CONTRACT AT MARKET
ENDIF
SET STOP %LOSS 3Antallet styrer begge retninger: det slipper bare gjennom nye innganger under fire enheter og utløser en delvis utgang når posisjonen er fullt oppbygd og momentum snur.
Vanlige feil og fallgruver
- Enheter, ikke handler. Returverdien teller aksjer, kontrakter eller lots, ikke antall inngangsordrer. En strategi som kjøper 2 kontrakter per signal når en grense på 6 etter tre signaler, ikke etter seks.
- Meningsløst uten kumulerte ordrer. Med standard
CumulateOrders = false, holder en strategi maksimalt én inngang om gangen, så funksjonen returnerer aldri annet enn den ene ordrens kvantum eller 0. Pyramideringslogikk kreverDEFPARAM CumulateOrders = trueå ha betydning. - Null når short eller uten posisjon. Funksjonen ignorerer short-eksponering fullstendig og returnerer 0. Å teste
COUNTOFLONGSHARES = 0betyr ikke at strategien er flat; kombiner medONMARKETellerCOUNTOFSHORTSHARESfor hele bildet. - Evalueres på bartidspunktet. Antallet gjenspeiler utførte ordrer per gjeldende bar. En ordre sendt denne baren, men ennå ikke utført, regnes ikke med, så påfyll rett etter hverandre i samme bar kan overskride et tak som er sjekket tidligere i koden.
Relaterte instruksjoner
COUNTOFSHORTSHARES, antall enheter holdt short.COUNTOFPOSITION, størrelsen på den åpne posisjonen med fortegn.CumulateOrders, DEFPARAM som gjør det mulig å stable flere inngangsordrer.LONGONMARKET, sann så lenge en long-posisjon er åpen.ONMARKET, sann så lenge en posisjon er åpen.TRADEINDEX, barindeks for en gitt inngangsordre.TRADEPRICE, inngangspris for en gitt ordre.BUY, åpner eller øker en long-posisjon.