COUNTOFSHORTSHARES
COUNTOFSHORTSHARES gibt die Anzahl der von der aktuellen ProBacktest- oder ProOrder-Strategie short gehaltenen Aktien oder Lots zurück. Syntax, ausgearbeitete Beispiele und häufige Stolperfallen.
Syntax
COUNTOFSHORTSHARESDas Schlüsselwort nimmt keine Parameter und wird innerhalb von Bedingungen und Ausdrücken wie eine Variable gelesen.
So funktioniert es
Jedes Mal, wenn der Strategiecode läuft, COUNTOFSHORTSHARES meldet die zu diesem Zeitpunkt gefüllte Short-Menge. Anders als COUNTOFPOSITION, das ein Vorzeichen trägt, ist dieses Schlüsselwort immer null oder positiv, sodass es direkt mit einer Obergrenze verglichen werden kann, ohne ein ABS() Wrapper. Wenn die Strategie flat oder long ist, gibt sie 0 zurück.
Das typische Muster kombiniert drei Bestandteile: DEFPARAM CumulateOrders = true damit wiederholte SELLSHORT Orders stapeln sich, statt ignoriert zu werden, eine Einstiegsbedingung, die mehr als einmal auslösen kann, und eine Absicherung wie COUNTOFSHORTSHARES < 5 das verhindert, dass die Position unbegrenzt wächst. Der Wert aktualisiert sich, sobald Ausführungen erfolgen, sodass Teilausstiege über EXITSHORT x SHARES reduzieren die Anzahl entsprechend.
Pending-Orders werden nicht berücksichtigt. Eine ruhende SELLSHORT ... LIMIT Order, die nicht ausgeführt wurde, lässt die Zählung unverändert, bis sie gefüllt wird. Das Gegenstück dieses Schlüsselworts auf der Long-Seite ist COUNTOFLONGSHARES.
Beispiele
Beispiel 1, Begrenzung gestapelter Short-Einstiege auf fünf Lots (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 50Die Schutzvariable MAXSHARES blockiert neue Einstiege, sobald fünf Kontrakte short sind, und hält das Exposure begrenzt, während die trendfolgende Add-on-Logik aktiv bleibt.
Beispiel 2, Abbau einer Short-Position in Hälften (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
ENDIFDas Auslesen der laufenden Short-Größe bedeutet, dass der Teilausstieg immer die Hälfte des tatsächlich Gehaltenen abbaut, unabhängig davon, wie viele Einstiege ausgeführt wurden.
Beispiel 3, Blockieren gehedgter Wiedereinstiege (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
ENDIFDie Anzahl dient sowohl als Prüfung für den Ersteinstieg als auch als Obergrenze für das Pyramidisieren, da 0 kleiner als 3 ist, wenn die Strategie flat ist.
Häufige Fehler und Stolperfallen
- Kein Stapeln ohne CumulateOrders. Mit dem Standard
DEFPARAM CumulateOrders = false, ein zweitesSELLSHORTwährend einer bestehenden Short-Position wird ignoriert, daherCOUNTOFSHORTSHARESbleibt bei der ersten Einstiegsgröße und die Aufstockungslogik löst nie aus. - Verwechslung von Aktien mit Einstiegen. Das Schlüsselwort zählt Aktien oder Lots, nicht die Anzahl der Trades. Ein
SELLSHORT 5 CONTRACTSOrder ergibt eine Anzahl von 5, genauso wie fünf separate Einstiege mit je einem Kontrakt. - Ausstehende Orders sind unsichtbar. Nicht ausgeführte Limit- oder Stop-Einstiegsorders erhöhen den Zähler nicht, daher greift eine Obergrenze, die nur gegen
COUNTOFSHORTSHARESkann innerhalb eines Bars dennoch mehr offene Größe einreihen als beabsichtigt. - Verwechslung von vorzeichenbehaftet und vorzeichenlos.
COUNTOFSHORTSHARESist positiv, währendCOUNTOFPOSITIONist für dieselbe Short-Position negativ. Das Vermischen der beiden Konventionen in einer Bedingung ist eine häufige Ursache für Absicherungen, die niemals auslösen.
Verwandte Befehle
COUNTOFLONGSHARES, vorzeichenlose Anzahl der long gehaltenen Aktien.COUNTOFPOSITION, vorzeichenbehaftete Größe der offenen Position.CumulateOrders, DEFPARAM-Parameter, der das Stapeln von Einstiegen in dieselbe Richtung ermöglicht.SELLSHORT, eröffnet eine Short-Position oder baut sie aus.EXITSHORT, schließt eine Short-Position ganz oder teilweise.SHORTONMARKET, wahr, solange eine Short-Position offen ist.TRADEINDEX, Bar-Index der Ausführung eines vorherigen Trades.TRADEPRICE, Einstiegskurs des aktuellen oder eines vorherigen Trades.