COUNTOFLONGSHARES
COUNTOFLONGSHARES geeft het aantal eenheden dat long wordt aangehouden door een ProBacktest- of ProOrder-strategie, gebruikt om de position size te begrenzen bij het accumuleren van meerdere orders.
Syntaxis
COUNTOFLONGSHARESHoe het werkt
De functie leest de open positie en geeft een geheel getal terug: de hoeveelheid eenheden die aan de long kant wordt aangehouden op het moment van evaluatie. Het vereist geen parameters en geen haakjes. Wanneer de strategie flat of short is, geeft het 0.
De telling is uitgedrukt in eenheden, niet in trades. Eén enkele order van 3 contracten en drie gecumuleerde orders van 1 contract geven beide 3. Om over afzonderlijke entries te redeneren, combineer je hem met TRADEINDEX en TRADEPRICE, die orders aanspreken via hun index.
De typische context is een strategie met DEFPARAM CumulateOrders = true, waarbij meerdere entry-orders zich kunnen opbouwen tot één positie. Vergelijken COUNTOFLONGSHARES tegen een plafond voor elke extra BUY houdt de totale exposure binnen een geplande limiet. Het equivalent aan de shortzijde is COUNTOFSHORTSHARES, en COUNTOFPOSITION geeft de grootte met teken van de positie die open staat.
Voorbeelden
Voorbeeld 1, Pyramiding begrensd op drie eenheden (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 50De strategie opent bij een MACD-kruising en voegt daarna één contract per keer toe zolang het lopende aantal op drie of minder blijft, de laatste instap minstens vijf bars oud is en de prijs 10 punten daarvoorbij is bewogen.
Voorbeeld 2, Hard plafond op de exposure vóór elke toevoeging (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 2Elke pullback in een uptrend voegt één eenheid toe, maar de conditie op COUNTOFLONGSHARES garandeert dat de gestapelde positie nooit meer dan vijf eenheden wordt.
Voorbeeld 3, Afbouwen zodra de positie groot is (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 3Het aantal stuurt beide richtingen: het laat nieuwe instappen alleen toe onder vier eenheden en activeert een gedeeltelijke uitstap zodra de positie volledig is opgebouwd en het momentum draait.
Veelvoorkomende fouten en valkuilen
- Eenheden, geen trades. De returnwaarde telt aandelen, contracten of lots, niet het aantal instaporders. Een strategie die 2 contracten per signaal koopt, bereikt een limiet van 6 na drie signalen, niet na zes.
- Zinloos zonder gecumuleerde orders. Met de standaard
CumulateOrders = false, houdt een strategie maximaal één instap tegelijk, dus de functie retourneert altijd alleen de kwantiteit van die ene order of 0. Pyramidinglogica heeftDEFPARAM CumulateOrders = trueuit te maken. - Nul wanneer short of flat. De functie negeert short exposure volledig en geeft 0 terug. Testen
COUNTOFLONGSHARES = 0betekent niet dat de strategie flat is; combineer metONMARKETofCOUNTOFSHORTSHARESvoor het volledige beeld. - Geëvalueerd op bartijd. Het aantal weerspiegelt de uitgevoerde orders op de huidige bar. Een order die deze bar is verzonden maar nog niet is uitgevoerd wordt niet meegerekend, dus opeenvolgende toevoegingen in één bar kunnen een eerder in de code gecontroleerde grens overschrijden.
Gerelateerde instructies
COUNTOFSHORTSHARES, aantal eenheden dat short wordt aangehouden.COUNTOFPOSITION, grootte van de open positie met teken.CumulateOrders, DEFPARAM die het stapelen van meerdere instaporders toestaat.LONGONMARKET, waar zolang er een long positie open is.ONMARKET, waar zolang er een positie open is.TRADEINDEX, barindex van een bepaalde instaporder.TRADEPRICE, instapprijs van een bepaalde order.BUY, opent een long positie of breidt deze uit.