Únete hoy
ProBacktest/probacktest · proorder

%TRAILING

La instrucción %TRAILING establece un trailing stop como porcentaje del precio de la posición con SET STOP %TRAILING en código de ProRealTime™ ProBacktest y ProOrder.

Sintaxis

probuilder
SET STOP %TRAILING x

Parámetros

NombreTipoPor defectoDescripción
xnumériconingunoDistancia porcentual que se mantiene entre el stop y el precio más favorable alcanzado desde la entrada. Decimales como 1.5 se aceptan.

Cómo funciona

%TRAILING se combina con SET STOP solo. A diferencia del estático SET STOP %LOSS, la variante trailing solo avanza. Para una posición long el stop empieza x por ciento por debajo del precio de la posición y sube cada vez que el precio marca un nuevo máximo desde la entrada, manteniendo siempre el x por ciento de distancia hasta ese máximo. Nunca baja. Para una posición short la lógica se invierte: el stop sigue x por ciento por encima del precio más bajo alcanzado.

Una vez que se ejecuta la instrucción, el ajuste persiste y se aplica a la posición actual y a todas las posiciones futuras hasta que otra SET STOP la llamada lo reemplaza. Un valor de 0 desactiva el trailing stop.

Como la distancia es un porcentaje, la separación absoluta se amplía cuando el precio sube y se reduce cuando baja, lo que mantiene la protección proporcional en instrumentos con rangos de precio amplios. Cuando se alcanza el nivel del trailing, la posición se cierra a mercado como un stop ordinario.

Ejemplos

Ejemplo 1, Entrada en tendencia protegida por un trailing del 1.5 por ciento (ProBacktest)

probuilder
// Long-term and short-term moving averages
i1 = Average[100](close)
i2 = Average[5](close)

// Enter on a pullback inside an uptrend, after three rising lows
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

// Trail the stop 1.5 percent below the highest price since entry
SET STOP %TRAILING 1.5

La estrategia compra retrocesos en una tendencia alcista y sale con la fortaleza. Si la señal de salida nunca se activa, el trailing stop cierra la posición tras un retroceso del 1.5 por ciento desde el mejor precio alcanzado.

Ejemplo 2, Trailing porcentual en una ruptura a la baja en short (ProOrder)

probuilder
support = Lowest[20](low)
IF NOT ShortOnMarket AND close crosses under support[1] THEN
    SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// The stop trails 2 percent above the lowest price since entry
SET STOP %TRAILING 2

En el lado short el stop sigue al precio hacia abajo y solo un rebote del 2 por ciento desde el mínimo cierra la operación.

Ejemplo 3, Primero stop fijo, trailing cuando la operación está en beneficio (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT OnMarket AND RSI[14](close) < 30 THEN
    BUY 1 CONTRACT AT MARKET
    // Static protection while the trade develops
    SET STOP %LOSS 1
ENDIF

// Switch to a tighter trailing stop once price is 1 percent ahead
IF LongOnMarket AND close >= TRADEPRICE * 1.01 THEN
    SET STOP %TRAILING 0.5
ENDIF

Un patrón habitual en dos fases: un stop porcentual fijo limita el riesgo inicial y después uno más ajustado %TRAILING toma el relevo una vez que la posición muestra beneficio. El cambio es de un solo sentido durante el resto de la operación, porque la condición permanece verdadera una vez alcanzada, y cada ejecución mantiene el mismo valor.

Errores y trampas habituales

  • Emparejamiento de SET incorrecto. %TRAILING es una instrucción de stop, por lo que se combina con SET STOP solo. SET TARGET %TRAILING no es una forma válida; los objetivos usan %PROFIT.
  • Una sola ranura de stop. %TRAILING, %LOSS, $TRAILING, PLOSS y BREAKEVEN escriben todas en el mismo stop interno. La más reciente SET STOP llamada prevalece, por lo que mezclar un stop fijo y un trailing stop en la lógica por bar sustituye uno por el otro en lugar de combinarlos.
  • Trailing basado en barras en los backtests. ProBacktest actualiza el nivel del trailing a partir de los datos de la barra, por lo que los picos intrabarra pueden tratarse de forma optimista en comparación con la ejecución real tick a tick. Espera pequeñas diferencias entre las ejecuciones del backtest y las reales.
  • Un porcentaje demasiado ajustado. Un trailing stop por debajo del rango típico de bar del instrumento salta casi de inmediato. Compara x frente a la volatilidad media, por ejemplo un porcentaje derivado de AverageTrueRange, antes de fijar el valor.
  • $TRAILING, trailing stop como importe fijo de dinero.
  • PTRAILING, trailing stop como distancia en puntos.
  • TRAILING, resumen de la familia del trailing stop.
  • %LOSS, stop loss estático como porcentaje del precio de la posición.
  • %PROFIT, take profit como porcentaje del precio de la posición.
  • BREAKEVEN, mueve el stop o el objetivo al precio de entrada.
  • STOP, órdenes stop pendientes y la familia SET STOP.
  • TRADEPRICE, precio de entrada de una operación concreta.
  • LONGONMARKET, verdadero mientras hay una posición long abierta.