Únete hoy
ProBacktest/probacktest · proorder

LOSS

LOSS establece un stop loss con SET STOP LOSS x en ProBacktest y ProOrder, cerrando una operación perdedora cuando el precio se mueve x unidades de precio en contra del precio medio de entrada.

Sintaxis

probuilder
SET STOP LOSS x

Parámetros

NombreTipoPor defectoDescripción
xnumériconingunoDistancia desde el precio medio de la posición, expresada en las unidades de precio del instrumento negociado.

Cómo funciona

SET STOP LOSS registra un stop de protección en el motor de ejecución. La distancia x se mide desde el precio medio de la posición, por lo que en una posición long el stop se sitúa en la entrada menos x, y para una posición short en la entrada más x. El mismo valor positivo sirve para ambas direcciones, el motor invierte el lado automáticamente.

La distancia se expresa en unidades de precio brutas. En un instrumento cotizado con cinco decimales, SET STOP LOSS 0.0050 coloca el stop a 50 pips de distancia. En un índice cotizado en puntos enteros, la misma instrucción lo colocaría a medio céntimo de distancia, lo que es casi con certeza erróneo. Para distancias en puntos o pips con independencia de la cotización, SET STOP PLOSS es la variante más segura, y SET STOP %LOSS expresa la distancia como un porcentaje del precio de entrada.

La instrucción es declarativa. Una vez ejecutada, el stop permanece ligado a la posición actual y a las posiciones posteriores hasta que otra SET STOP sentencia la reemplaza o SET STOP LOSS 0 lo cancela. Es habitual colocar la instrucción justo después de la orden de entrada para que ambas estén siempre sincronizadas.

En ProBacktest el stop se evalúa frente a los máximos y mínimos intrabar, en ProOrder en real reside en el bróker y puede ejecutarse con deslizamiento en mercados rápidos.

Ejemplos

Ejemplo 1, Entrada por MACD con un stop de distancia fija (ProOrder)

probuilder
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0

IF NOT LongOnMarket AND long THEN
  BUY 1 CONTRACTS AT MARKET
  // stop placed 0.0050 price units below the average entry price
  SET STOP LOSS 0.0050
ENDIF

Se abre un long cuando la línea MACD cruza por encima de cero, con un stop 0.0050 unidades de precio por debajo de la entrada. El valor es adecuado para un instrumento cotizado con cinco decimales, como un par de divisas principal.

Ejemplo 2, Distancia de stop escalada por volatilidad (ProBacktest)

probuilder
// distance adapts to current volatility
atr = AverageTrueRange[14](close)

IF NOT OnMarket AND close crosses over Average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
  SET STOP LOSS 2 * atr
ENDIF

La distancia del stop es de dos ATR, por lo que se amplía en mercados volátiles y se estrecha en los tranquilos. La expresión se recalcula en cada entrada, manteniendo el riesgo proporcional a las condiciones.

Ejemplo 3, Stop en el lado short (ProOrder)

probuilder
short = close crosses under Average[100](close)

IF NOT ShortOnMarket AND short THEN
  SELLSHORT 1 CONTRACT AT MARKET
  // same positive distance, the engine places it above the short entry
  SET STOP LOSS 0.0080
ENDIF

Para una posición short el motor coloca el stop por encima del precio medio de entrada. La distancia sigue siendo un número positivo, no es necesario cambiar el signo.

Errores y trampas habituales

  • Unidades de precio, no puntos. x es una distancia de precio bruta. SET STOP LOSS 10 en un par de divisas de cinco decimales significa 10.0000 en precio, una distancia enorme. Para un stop de 10 pips escribe SET STOP LOSS 10 * PipSize o usa SET STOP PLOSS 10.
  • Se mide desde la entrada, no desde el precio actual. El nivel del stop está anclado al precio medio de la posición. Volver a llamar a la instrucción más tarde no desplaza el stop desde el último cierre, sino que vuelve a anclar la misma distancia desde la entrada. El trailing requiere $TRAILING, %TRAILING, o TRAILING variantes.
  • El ajuste persiste. A SET STOP LOSS ejecutada una vez sigue aplicándose a todas las posiciones posteriores hasta que se reemplace. Una estrategia que fija un stop ajustado en una rama y olvida restablecerlo en otra arrastra ese stop a operaciones sin relación.
  • Las ejecuciones del backtest son optimistas. ProBacktest supone que el stop se ejecuta exactamente en su nivel. Los stops en real pueden saltarse el nivel en mercados rápidos, por lo que las pérdidas realizadas pueden superar la distancia configurada.
  • %LOSS, stop loss como porcentaje del precio de entrada.
  • $LOSS, stop loss como importe en efectivo.
  • PLOSS, stop loss como distancia en puntos.
  • Set Target Loss, salir de una posición perdedora a una distancia adversa fija.
  • Set Stop Profit, stop que asegura una distancia de beneficio.
  • STOP, órdenes stop pendientes para entradas y salidas.
  • TARGET, equivalente de take profit de la familia de stops.
  • BREAKEVEN, mueve el stop o el objetivo al precio de entrada.
  • TRADEPRICE, el precio de entrada de la posición actual.
  • TRAILING, trailing stop que sigue el movimiento favorable del precio.