SHORTONMARKET
SHORTONMARKET en ProBacktest y ProOrder es verdadero mientras hay una posición short abierta. Úsalo para proteger entradas y salidas short, con ejemplos resueltos.
Sintaxis
ShortOnMarketCómo funciona
SHORTONMARKET devuelve true mientras la estrategia mantiene una posición short abierta y false cuando no. Se lee como un booleano simple, así que encaja directamente en un IF condición, normalmente negada con NOT para permitir un nuevo short solo cuando no hay ninguno abierto.
Informa solo sobre posiciones short. Para posiciones long usa LONGONMARKET, y para comprobar si hay abierta alguna posición de cualquiera de los dos lados usa ONMARKET. Combinar SHORTONMARKET con una condición de señal es la forma estándar de controlar cuándo se permite una entrada short o una salida short.
Ejemplos
Ejemplo 1, Proteger una entrada 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
ENDIFEste es el patrón de la referencia oficial. NOT ShortOnMarket evita que la estrategia acumule un segundo short mientras ya hay uno en marcha.
Ejemplo 2, Gestionar un short abierto (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
ENDIFEl bloque de salida solo se ejecuta mientras un short está abierto, por lo que el CROSSES OVER la condición solo se comprueba cuando es relevante.
Ejemplo 3, Un lado a la vez (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
ENDIFProbar ambos SHORTONMARKET y LONGONMARKET mantiene la estrategia sin posición antes de una nueva entrada. NOT OnMarket expresa la misma protección de forma más compacta.
Errores y trampas habituales
- Solo short.
SHORTONMARKETignora las posiciones long. Una estrategia que opera en ambos lados necesitaLONGONMARKETtambién, oONMARKETpara el estado combinado. - Estado, no un recuento. Solo informa de si hay un short abierto, no de su tamaño. Para cantidades de acciones o contratos usa
COUNTOFSHORTSHARESoCOUNTOFPOSITION. - Sincronización en el mismo bar. Un short abierto y cerrado dentro de un mismo bar puede no dejar
SHORTONMARKETtrue como lo haría una posición de varias bars. Para detectar una ejecución en la bar actual, usaShortTriggered. - Olvidar la protección. Omitir
NOT ShortOnMarketen una entrada permite que una señal persistente añada shorts repetidos, especialmente conCumulateOrdersactivado.
Instrucciones relacionadas
LONGONMARKET, verdadero mientras hay una posición long abierta.ONMARKET, verdadero mientras hay alguna posición abierta.ShortTriggered, verdadero en el bar en que se ejecuta una orden short.NOT, niega el estado para proteger las entradas.SELLSHORT, abre una posición short.EXITSHORT, cierra una posición short.COUNTOFSHORTSHARES, tamaño de la posición short abierta.