Bli medlem i dag
ProBacktest/probacktest · proorder

COUNTOFSHORTSHARES

COUNTOFSHORTSHARES returnerer antall aksjer eller lot holdt short av gjeldende ProBacktest- eller ProOrder-strategi. Syntaks, gjennomgåtte eksempler og vanlige fallgruver.

Syntaks

probuilder
COUNTOFSHORTSHARES

Nø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)

probuilder
// 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 50

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

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

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

Antallet 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 annen SELLSHORT når man allerede er short ignoreres, så COUNTOFSHORTSHARES forblir 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 CONTRACTS ordre 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 COUNTOFSHORTSHARES kan likevel legge mer ventende størrelse i kø enn tiltenkt innenfor én bar.
  • Forveksling av fortegnede og ufortegnede verdier. COUNTOFSHORTSHARES er positiv mens COUNTOFPOSITION er negativ for samme short-posisjon. Å blande de to konvensjonene i én betingelse er en vanlig kilde til vakter som aldri utløses.
  • 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.