COUNTOFSHORTSHARES
COUNTOFSHORTSHARES returnerer antall aksjer eller lot holdt short av gjeldende ProBacktest- eller ProOrder-strategi. Syntaks, gjennomgåtte eksempler og vanlige fallgruver.
Syntaks
COUNTOFSHORTSHARESNøkkelordet tar ingen parametere og leses som en variabel inne i betingelser og uttrykk.
Slik fungerer det
Hver gang strategikoden kjører, COUNTOFSHORTSHARES rapporterer fylt short-kvantum på det tidspunktet. I motsetning til COUNTOFPOSITION, som har fortegn, er dette nøkkelordet alltid null eller positivt, så det kan sammenlignes direkte med en øvre grense uten en ABS() wrapper. Når strategien er flat eller long, returnerer den 0.
Det typiske mønsteret kombinerer tre deler: DEFPARAM CumulateOrders = true slik at gjentatte SELLSHORT ordrer hoper seg opp i stedet for å bli ignorert, en inngangsbetingelse som kan utløses mer enn én gang, og en sikring som COUNTOFSHORTSHARES < 5 som hindrer at posisjonen vokser uten grense. Verdien oppdateres etter hvert som fyll skjer, så delvise utganger via EXITSHORT x SHARES reduser antallet tilsvarende.
Ventende ordrer er ikke inkludert. En liggende SELLSHORT ... LIMIT ordre som ikke er utført lar antallet stå uendret til den fylles. Speilbildet av dette nøkkelordet på long-siden er COUNTOFLONGSHARES.
Eksempler
Eksempel 1, Begrense stablede short-innganger til fem lot (ProBacktest)
// MACD used as the short trigger
myMACD = MACD[12,26,9](close)
// Short signal, MACD line falls through zero
short = myMACD crosses under 0
// First short entry only when no short is open
IF NOT ShortOnMarket AND short THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Guard, allow re-entry only below five short contracts
MAXSHARES = COUNTOFSHORTSHARES < 5
// Add to the short after a pullback in the strategy's favor
IF TRADEINDEX(1) > 5 AND TRADEPRICE(1) - Close > 10 AND ShortOnMarket AND MAXSHARES THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Trail the whole position
SET STOP TRAILING 50Vaktvariabelen MAXSHARES blokkerer nye innganger når fem kontrakter er short, og holder eksponeringen begrenset mens tilleggslogikken for trendfølging forblir aktiv.
Eksempel 2, Trappe ned en short i halvdeler (ProOrder)
DEFPARAM CumulateOrders = true
// Take half the short off after 30 points of profit
IF ShortOnMarket AND TRADEPRICE - close >= 30 * pointsize AND COUNTOFSHORTSHARES >= 2 THEN
EXITSHORT COUNTOFSHORTSHARES / 2 SHARES AT MARKET
ENDIFÅ lese den løpende short-størrelsen betyr at den delvise utgangen alltid fjerner halvparten av det som faktisk holdes, uansett hvor mange innganger som ble utført.
Eksempel 3, Blokkere hedgede reinnganger (ProOrder)
DEFPARAM CumulateOrders = true
rsiVal = RSI[14](close)
// Only open or add to a short when RSI is overbought
// and the short book holds fewer than 3 lots
IF rsiVal > 70 AND COUNTOFSHORTSHARES < 3 THEN
SELLSHORT 1 LOT AT MARKET
ENDIF
// Flatten the short when RSI normalises
IF ShortOnMarket AND rsiVal < 50 THEN
EXITSHORT AT MARKET
ENDIFAntallet fungerer både som sjekk for den første inngangen og som pyramideringstak, siden 0 er mindre enn 3 når strategien er uten posisjon.
Vanlige feil og fallgruver
- Ingen stabling uten CumulateOrders. Med standard
DEFPARAM CumulateOrders = false, en annenSELLSHORTnår man allerede er short ignoreres, såCOUNTOFSHORTSHARESforblir på den første inngangsstørrelsen, og påbyggingslogikken utløses aldri. - Å forveksle aksjer med innganger. Nøkkelordet teller aksjer eller lots, ikke antall handler. Én
SELLSHORT 5 CONTRACTSordre gjør antallet 5, det samme som fem separate innganger på én kontrakt. - Ventende ordrer er usynlige. Uutførte limit- eller stopp-inngangsordrer øker ikke tellingen, så en grense skrevet bare mot
COUNTOFSHORTSHARESkan likevel legge mer ventende størrelse i kø enn tiltenkt innenfor én bar. - Forveksling av fortegnede og ufortegnede verdier.
COUNTOFSHORTSHARESer positiv mensCOUNTOFPOSITIONer negativ for samme short-posisjon. Å blande de to konvensjonene i én betingelse er en vanlig kilde til vakter som aldri utløses.
Relaterte instruksjoner
COUNTOFLONGSHARES, antall aksjer holdt long, uten fortegn.COUNTOFPOSITION, størrelsen på den åpne posisjonen med fortegn.CumulateOrders, DEFPARAM-parameter som gjør det mulig å stable innganger i samme retning.SELLSHORT, åpner eller øker en short-posisjon.EXITSHORT, lukker hele eller deler av en short-posisjon.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.