Únete hoy
ProBacktest/probacktest · proorder

TRAILING

TRAILING establece un trailing stop en ProBacktest y ProOrder mediante SET STOP TRAILING x, moviendo el stop con el precio a una distancia fija de x puntos del mercado.

Sintaxis

probuilder
SET STOP TRAILING x

Parámetros

NombreTipoPor defectoDescripción
xnumériconingunoDistancia en puntos entre el stop y el precio más favorable alcanzado.

Cómo funciona

Un stop fijo permanece donde se colocó. Un trailing stop sigue a la operación. SET STOP TRAILING x coloca el stop x puntos del precio y después lo va ajustando a medida que la posición gana: en un long el stop sube cuando se marcan nuevos máximos, en un short baja cuando se marcan nuevos mínimos. El stop solo se estrecha: un movimiento adverso nunca lo mueve hacia atrás.

El resultado es una salida integrada que deja correr una operación ganadora mientras limita cuánto beneficio abierto puede devolverse. Una vez que el precio retrocede x puntos desde su mejor nivel, la posición se cierra. No hace falta código manual de gestión del stop, el motor mantiene el nivel barra a barra.

La distancia se expresa en puntos. Las instrucciones hermanas cubren otras unidades, PTRAILING sigue en pips, %TRAILING en porcentaje del precio, y $TRAILING en la divisa de la cuenta. Todos ellos ocupan la misma ranura interna de stop que SET STOP LOSS y BREAKEVEN, así que el más reciente SET STOP instrucción es la que está en vigor.

Ejemplos

Ejemplo 1, Entrada en retroceso protegida por un trailing de 10 puntos (ProOrder)

probuilder
// Trend and pullback filters
i1 = average(close)[100]
i2 = average(close)[5]

// Enter on a pullback inside a longer uptrend, exit on strength
tradeinitiate = Close > i1 AND Close < i2 AND Low[3] > Low[2] AND Low[2] > Low[1] AND Low[1] > Low
tradeclose = Close > Close[1]

IF NOT LongOnMarket AND tradeinitiate THEN
  BUY 1 CONTRACTS AT MARKET
ENDIF

IF LongOnMarket AND tradeclose THEN
  SELL AT MARKET
ENDIF

// Safety net: trail the stop 10 points behind the best price
SET STOP TRAILING 10

La estrategia tiene su propia regla de salida, y el trailing stop actúa como una red de seguridad permanente 10 puntos por detrás del precio más favorable. Esto conserva el ejemplo de referencia para la instrucción.

Ejemplo 2, Distancia de trailing escalada por ATR (ProBacktest)

probuilder
atr = AverageTrueRange[14](close)
// Trail at twice the ATR, converted into points
trailPoints = ROUND(2 * atr / pointsize)

IF NOT onmarket AND close crosses over average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

SET STOP TRAILING trailPoints

La distancia del trailing se adapta a la volatilidad. En mercados tranquilos el stop se ciñe al precio, en mercados volátiles se mantiene lo bastante lejos para evitar que el ruido lo expulse.

Ejemplo 3, Trailing activado solo cuando la operación está en beneficio (ProOrder)

probuilder
IF NOT onmarket AND close > highest[20](high)[1] THEN
  BUY 1 CONTRACT AT MARKET
  SET STOP LOSS 30
ENDIF

// Switch from fixed stop to a tight trail once 20 points in profit
IF longonmarket AND close - tradeprice >= 20 * pointsize THEN
  SET STOP TRAILING 10
ENDIF

La operación comienza con un stop fijo amplio. Una vez que ha ganado 20 puntos, el código lo sustituye por un trailing stop de 10 puntos, asegurando la mayor parte de la ganancia y dejando margen para que corra.

Errores y trampas habituales

  • Puntos, no divisa ni porcentaje. SET STOP TRAILING 10 significa 10 puntos. Para distancias en pips, porcentaje o efectivo usa PTRAILING, %TRAILING, o $TRAILING, confundir las unidades sitúa mal el stop en órdenes de magnitud en algunos instrumentos.
  • Una sola ranura de stop. Trailing stops, SET STOP LOSS, y BREAKEVEN se sobrescriben entre sí, solo la declaración más reciente está activa. El código que emite un stop fijo en cada bar después de la declaración del trailing desactiva el trailing sin avisar.
  • Demasiado ajustado para el marco temporal. Una distancia menor que el ruido normal de barra a barra se toca casi de inmediato. Escala la distancia a la volatilidad, por ejemplo con ATR, en lugar de elegir un número redondo pequeño.
  • Las ejecuciones del backtest son idealizadas. ProBacktest sale exactamente en el nivel del trailing. La ejecución real de ProOrder puede pasarse de ese nivel en mercados rápidos, por lo que los sistemas de trailing stop suelen rendir algo peor en real que en el backtest.
  • PTRAILING, trailing stop expresado en pips.
  • %TRAILING, trailing stop expresado en porcentaje del precio.
  • $TRAILING, trailing stop expresado en la divisa de la cuenta.
  • STOP, configuración de stop loss fijo con SET STOP LOSS.
  • BREAKEVEN, mueve el stop o el objetivo al precio de entrada.
  • TARGET, configuración del take profit para la posición.
  • TRADEPRICE, precio de entrada de la posición actual.
  • LONGONMARKET, verdadero mientras hay una posición long abierta.