Únete hoy
ProBacktest/probacktest · proorder

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

probuilder
ShortOnMarket

Có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)

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

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

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

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

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

Probar 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. SHORTONMARKET ignora las posiciones long. Una estrategia que opera en ambos lados necesita LONGONMARKET también, o ONMARKET para 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 COUNTOFSHORTSHARES o COUNTOFPOSITION.
  • Sincronización en el mismo bar. Un short abierto y cerrado dentro de un mismo bar puede no dejar SHORTONMARKET true como lo haría una posición de varias bars. Para detectar una ejecución en la bar actual, usa ShortTriggered.
  • Olvidar la protección. Omitir NOT ShortOnMarket en una entrada permite que una señal persistente añada shorts repetidos, especialmente con CumulateOrders activado.
  • 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.