Únete hoy
ProBacktest/probacktest · proorder

EXITSHORT

EXITSHORT cierra una posición short abierta en ProBacktest y ProOrder, a mercado o como orden pendiente. Sintaxis, ejemplos resueltos y trampas habituales.

Sintaxis

probuilder
EXITSHORT AT MARKET
probuilder
EXITSHORT x SHARES AT MARKET

Las variantes pendientes colocan la salida a un precio elegido en lugar de ejecutarse de inmediato:

probuilder
EXITSHORT AT price LIMIT
EXITSHORT AT price STOP

x es el número de acciones, lotes o contratos a recomprar. Omitir la cantidad cierra toda la posición short.

Cómo funciona

Una posición short se abre con SELLSHORT y se cierra recomprando el instrumento. EXITSHORT realiza esa recompra sin abrir nunca un long: si no hay ninguna posición short abierta, la instrucción no tiene nada que cerrar y no se envía ninguna orden. Esto la hace más segura que usar BUY para las salidas, lo que abriría una nueva posición long una vez cerrada la short.

La forma a mercado se ejecuta al siguiente precio disponible. Las formas pendientes quedan en el bróker hasta que el precio alcanza el nivel especificado, LIMIT para salidas a un precio favorable por debajo del actual, STOP para salidas de protección por encima de él. Una cantidad convierte la instrucción en una cobertura parcial, que reduce la posición y deja el resto abierto, que es la forma estándar de ir cerrando por partes un short piramidado.

En ProBacktest la instrucción la ejecuta el motor de simulación con la misma lógica de precios usada para las demás órdenes. En ProOrder en real, la salida se transmite al bróker como cualquier otra orden.

Ejemplos

Ejemplo 1, Entrada y salida short guiadas por el MACD (ProBacktest)

probuilder
myMACD = MACD[12,26,9](close)

// Short when the MACD line falls through zero,
// cover when it climbs back above zero
short = myMACD crosses under 0
exit = myMACD crosses over 0

IF NOT SHORTONMARKET AND short THEN
  SELLSHORT 1 LOT AT MARKET
ENDIF

IF SHORTONMARKET AND exit THEN
  EXITSHORT AT MARKET
ENDIF

El ciclo de ida y vuelta canónico de la referencia oficial. El SHORTONMARKET las comprobaciones garantizan que las entradas y salidas solo se disparen en el estado de posición correcto.

Ejemplo 2, Salida parcial de un short piramidado (ProOrder)

probuilder
DEFPARAM CumulateOrders = true

// Cover 2 lots once the short is 25 points in profit,
// keep the rest running with a trailing stop
IF SHORTONMARKET AND TRADEPRICE - close >= 25 * pointsize AND COUNTOFSHORTSHARES > 2 THEN
  EXITSHORT 2 SHARES AT MARKET
ENDIF

SET STOP TRAILING 40

La forma con cantidad cubre parte del short, asegurando beneficio mientras los lotes restantes siguen expuestos a nuevas caídas.

Ejemplo 3, Salida pendiente con orden limitada en un objetivo de beneficio (ProOrder)

probuilder
// Rest a buy-back order 30 points below the entry price
IF SHORTONMARKET THEN
  EXITSHORT AT TRADEPRICE - 30 * pointsize LIMIT
ENDIF

En lugar de esperar a que reaccione el código de la estrategia, la orden de salida queda en el bróker y se ejecuta en el momento en que el precio baja hasta el nivel objetivo.

Errores y trampas habituales

  • Sin posición, sin orden. EXITSHORT no hace nada cuando la estrategia no está short. La lógica que cuenta con que se dispare sin condiciones, por ejemplo para cerrar todo al final de la sesión, debería comprobar SHORTONMARKET primero o usa DEFPARAM FLATAFTER.
  • Usar BUY para cerrar un short. BUY reduce un short y después sigue comprando hasta entrar en una posición long. Cuando la intención es solo cubrir, EXITSHORT es la instrucción correcta porque nunca puede invertir la posición.
  • Salida parcial mayor que la posición. Solicitar más acciones de las que se mantienen simplemente cierra toda la posición. Dimensiona las salidas parciales a partir de COUNTOFSHORTSHARES para que la aritmética siga siendo correcta.
  • Las salidas pendientes se reevalúan en cada bar. Una orden pendiente EXITSHORT ... LIMIT colocada dentro de una condición se refresca en cada bar en que la condición se cumple y se cancela cuando deja de cumplirse. Mantén la condición verdadera todo el tiempo que la orden deba seguir activa.
  • SELLSHORT, abre o amplía una posición short.
  • SELL, cierra toda o parte de una posición long.
  • BUY, abre o amplía una posición long.
  • MARKET, ejecuta una orden al precio de mercado actual.
  • LIMIT, orden pendiente ejecutada a un precio indicado o mejor.
  • STOP (pending), orden pendiente activada cuando el precio alcanza un nivel.
  • SHORTONMARKET, verdadero mientras hay una posición short abierta.
  • ONMARKET, verdadero mientras hay alguna posición abierta.