SHORTONMARKET
SHORTONMARKET dans ProBacktest et ProOrder est vrai tant qu'une position short est ouverte. Utilisez-le pour protéger les entrées et les sorties short, avec des exemples détaillés.
Syntaxe
ShortOnMarketComment ça marche
SHORTONMARKET renvoie true tant que la stratégie détient une position short ouverte et false sinon. Elle se lit comme un simple booléen, de sorte qu'elle s'insère directement dans un IF condition, généralement niée avec NOT pour n'autoriser un nouveau short que lorsqu'aucun n'est ouvert.
Elle ne rend compte que des positions short. Pour les positions long, utilisez LONGONMARKET, et pour tester si une position d'un côté ou de l'autre est ouverte, utilisez ONMARKET. Combiner SHORTONMARKET avec une condition de signal est la façon standard de contrôler quand une entrée short ou une sortie short est autorisée.
Exemples
Exemple 1, Protéger une entrée short (ProBacktest)
// Sell short when MACD crosses below zero, but only if no short is open
myMACD = MACD[12,26,9](close)
short = myMACD CROSSES UNDER 0
IF NOT ShortOnMarket AND short THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIFC'est le modèle issu de la référence officielle. NOT ShortOnMarket empêche la stratégie d'empiler un second short alors qu'un est déjà en cours.
Exemple 2, Gérer une position short ouverte (ProOrder)
DEFPARAM CumulateOrders = false
// Close the short when price reclaims the 20-period average
IF ShortOnMarket AND close CROSSES OVER Average[20](close) THEN
EXITSHORT AT MARKET
ENDIFLe bloc de sortie ne s'exécute que lorsqu'un short est ouvert, donc le CROSSES OVER condition n'est vérifiée que lorsqu'elle est pertinente.
Exemple 3, Un seul côté à la fois (ProOrder)
DEFPARAM CumulateOrders = false
// Allow a long only when neither side is open
IF NOT ShortOnMarket AND NOT LongOnMarket AND close CROSSES OVER Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFTester les deux SHORTONMARKET et LONGONMARKET maintient la stratégie hors marché avant une nouvelle entrée. NOT OnMarket exprime la même protection de façon plus compacte.
Erreurs et pièges courants
- Short uniquement.
SHORTONMARKETignore les positions long. Une stratégie qui trade dans les deux sens a besoin deLONGONMARKETégalement, ouONMARKETpour l'état combiné. - Un état, pas un compteur. Il indique seulement si un short est ouvert, pas sa taille. Pour les quantités d'actions ou de contrats, utilisez
COUNTOFSHORTSHARESouCOUNTOFPOSITION. - Timing sur la même bar. Un short ouvert et fermé à l'intérieur d'un même bar peut ne pas laisser
SHORTONMARKETvrai comme le ferait une position sur plusieurs bars. Pour détecter une exécution sur la bar courante, utilisezShortTriggered. - Oublier la protection. Omettre
NOT ShortOnMarketsur une entrée permet à un signal persistant d'ajouter des shorts répétés, en particulier avecCumulateOrdersactivé.
Instructions liées
LONGONMARKET, vrai tant qu'une position long est ouverte.ONMARKET, vrai tant qu'une position est ouverte.ShortTriggered, vrai sur la bar où un ordre short est exécuté.NOT, inverse l'état pour protéger les entrées.SELLSHORT, ouvre une position short.EXITSHORT, clôture une position short.COUNTOFSHORTSHARES, taille de la position short ouverte.