English Русский Deutsch 日本語
preview
Trailing stop en el trading

Trailing stop en el trading

MetaTrader 5Ejemplos | 22 julio 2024, 13:16
43 0
Aleksej Poljakov
Aleksej Poljakov

Introducción

El objetivo principal de un trailing stop es obtener un beneficio garantizado con un riesgo mínimo. La esencia de su funcionamiento es muy simple. El stop loss se desplaza gradualmente detrás del precio si éste se mueve a favor del tráder, y se mantiene en su lugar si el precio ha ido en la dirección opuesta.

Un trailing stop puede representarse esquemáticamente de la forma siguiente. Supongamos que un tráder abre una posición de compra en una tendencia alcista. Cuando el precio suba, el stop loss se moverá automáticamente detrás del precio, y cuando la tendencia cambie de dirección, el tráder podrá fijar el beneficio.

Hay un gran número de opciones de trailing stop. Las opciones de trailing stop están disponibles como parte de la plataforma comercial MetaTrader.

Además, el trailing stop puede automatizarse e incluirse en el código de los asesores comerciales. Por ejemplo, esto puede hacerse con clases de mantenimiento de posiciones abiertas.

La eficacia de un trailing stop depende en gran medida de la volatilidad del precio y de la selección del nivel de stop loss. Para fijar un stop loss pueden usarse diversos métodos. Por ejemplo, en caso de una tendencia pronunciada, podemos utilizar los valores de máximos o mínimos del precio. Además, los parámetros del trailing stop también pueden determinarse usando indicadores técnicos. Este enfoque se describe en el artículo "Cómo crear su propio Trailing Stop". En este artículo veremos la posibilidad de construir un trailing stop basado en datos estadísticos.


Trailing stop simple

La estrategia comercial y el trailing stop son independientes entre sí. La principal diferencia entre ambas es que las estrategias abren y cierran posiciones, mientras que un trailing stop solo sirve para cerrar posiciones.

En primer lugar, veremos las limitaciones que se imponen a un stop loss.

El límite superior del stop loss se establece en las propiedades del símbolo, la diferencia mínima entre el precio de cierre de la posición y el stop loss establecido no podrá ser inferior al margen mínimo en puntos desde el precio de cierre de la posición actual.

SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)

Pero deberemos calcular el límite inferior del stop loss para el trailing stop por nuestra cuenta. El primer requisito para un stop loss mínimo es que deberá encontrarse en la zona de equilibrio (ausencia de pérdidas). A primera vista, todo es de lo más sencillo: el stop loss mínimo no deberá ser peor que el precio de apertura de la posición. ¿Correcto? Pues no, es incorrecto.

Al abrir una posición, el tráder puede tener que pagar una comisión. Además, la posición puede acumular swap a lo largo de su vida. Estos costes adicionales deberán considerarse a la hora de calcular el stop loss mínimo posible. Para ello, deberemos averiguar el coste de un pip en la divisa de depósito.

PointValue=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)*SymbolInfoDouble(_Symbol,SYMBOL_POINT)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)

Ahora podremos calcular cuántos pips deberá pasar el precio para compensar la comisión y el swap. Además, también deberemos considerar el efecto del deslizamiento. A la hora de realizar operaciones, el deslizamiento puede influir tanto negativa como positivamente. Sin embargo, seremos cautos y asumiremos que el deslizamiento siempre actuará en contra del tráder.

Digamos que PriceOpen - es el precio de apertura de la posición, y Lot, su volumen. A continuación, podremos calcular el stop loss mínimo mediante la fórmula:

Los signos superiores se usan para las posiciones Buy, y los inferiores para las posiciones Sell.

El stop loss mínimo se corresponde con el nivel de equilibrio garantizado de la posición. Es decir, si una posición se cierra con el stop loss mínimo, su beneficio total (considerando el beneficio actual, el swap y la comisión) será no negativo.

Ahora podemos formular las reglas básicas del trailing stop:

  • el nuevo stop loss deberá situarse entre los niveles mínimo y máximo;
  • el nuevo stop loss deberá ser mejor que el anterior.

Si se cumplen estos requisitos, el stop loss podrá mejorarse. Pero, antes de introducir la modernización, deberemos realizar una comprobación más: el stop loss antiguo deberá estar fuera del nivel de congelación (para más detalles, consulte el artículo"Qué comprobaciones debe superar un robot comercial antes de ser publicado en el Mercado").

Podemos utilizar diferentes enfoques para determinar un nuevo stop loss. Usaremos los niveles descritos en el artículo "Stop Loss y Take Profit amigables para el tráder".

No obstante, introduciremos un pequeño cambio para calcular el stop loss óptimo. El trailing stop deberá activarse en la barra actual, por lo que el tiempo de mantenimiento de la posición siempre será igual a 1 barra. Además, se recopilarán estadísticas sobre la evolución de los precios según marcos temporales elegidos arbitrariamente. Este enfoque permitirá ajustar la sensibilidad del trailing stop.

Unas palabras sobre el take profit. Aquí puede haber varias opciones.

Supongamos que un tráder usa una estrategia comercial con un take profit determinado. Entonces el take profit puede permanecer fijo, mientras que el trailing stop modifica solo el stop loss. En este caso, el trailing stop llevará la posición al punto de equilibrio.

Si la estrategia comercial no prevé la fijación de un take profit, o existe la posibilidad de aplicar un trailing take profit, el trailing stop podrá controlar tanto los niveles de stop loss como de take profit. En este caso, la rentabilidad comercial puede cambiar, ya que algunas posiciones pueden cerrarse a precios más favorables.

Además, podría darse el caso de que el trailing stop se utilice en modo por ticks. Entonces no tendrá sentido fijar un take profit, ya que el precio nunca alcanzará el take profit. Y la única opción posible para cerrar una posición será únicamente mediante stop loss.

Vamos a comprobar cómo funciona un trailing stop simple con y sin take profit. Al mismo tiempo, introduciremos una condición adicional: el establecimiento y la modificación del take profit solo será posible después de que el trailing stop desplace el stop loss a la zona de equilibrio.

Utilizaremos el símbolo EURUSD, marco temporal H1. El periodo de prueba abarcará del 1 de enero al 31 de diciembre de 2023. Trailing stop, marco temporal M1. La dirección y el volumen de las posiciones se determinan de forma aleatoria. Las posiciones Stop Loss y Take Profit no están fijadas.

El gráfico de la variación del balance tendrá este aspecto.


Algunas posiciones se han cerrado forzosamente al final de las pruebas, lo cual constituye un inconveniente de la estrategia utilizada. Pero, el gráfico nos ofrece una idea de cómo podría funcionar un trailing stop. Veamos los resultados de las pruebas.

PERIOD_M1 Total Net Profit Gross Profit Gross Loss
UseTakeProfit=false 4 758.48 10 689.84 -5 931.36
UseTakeProfit=true 5 483.94 11 297.68 -5 813.74

Como podemos ver, el uso de take profit puede influir en la rentabilidad de las operaciones. Ahora, probaremos con las mismas condiciones, pero estableciendo el marco temporal del trailing stop en M15.

PERIOD_M15 Total Net Profit Gross Profit Gross Loss
UseTakeProfit=false 16 371.11 33 435.31 -17 064.20
UseTakeProfit=true 17 038.63 34 042.13 -17 003.50

El cambio de marco temporal ha tenido un impacto significativo en los resultados de las pruebas. Esto se debe a los cambios en los niveles de stop loss y take profit óptimos. Bueno, podemos concluir que la presencia de pequeños marcos temporales en el trailing resulta adecuada para scalping, mientras que la presencia de marcos temporales grandes resulta adecuada para las estrategias de tendencia.


Expectativa moral y trailing stop

La expectativa moral es una valoración del riesgo que introdujo por primera vez Daniel Bernoulli en 1732. La expectativa moral nos permite evaluar la utilidad de un juego. Tiene en cuenta el capital del jugador, así como las posibles ganancias y pérdidas y sus probabilidades.

Veamos el proceso comercial de una forma un poco distinta. Imagine que cada posición es un jugador distinto. Entonces la posición tendrá capital: el rendimiento total de la posición. Este capital podrá aumentar si la posición se cierra con take profit, o disminuir si la posición se cierra con stop loss.

Digamos que ProfitPoint es el beneficio de la posición en pips, mientras que p es la probabilidad de que la posición se cierre con take profit. Entonces la expectativa moral de la posición se podrá encontrar de la siguiente manera:

Obviamente, los tráders deberán elegir un stop-loss y un take-profit en los que la expectativa moral sea máxima. Veamos las características del mantenimiento de la posición usando la expectativa moral.

El stop loss deberá ser estrictamente inferior al beneficio. Solo entonces la expectativa moral podrá ser positiva. Pero esta condición no resulta suficiente. Supongamos que hemos encontrado el stop loss y el take profit óptimos. Estos niveles son perfectos para un mercado perfecto, pero el mercado real puede deparar sorpresas.

Supongamos que un trailing stop ha fijado un stop loss óptimo, pero debido a un deslizamiento, la posición puede cerrarse a un precio peor. En este caso, el stop loss real podría ser superior al beneficio de la posición, y eso no puede permitirse. Es decir, al stop loss se le impone una limitación:

Al calcular la expectativa moral, utilizaremos el valor de take profit, pero su uso no será obligatorio. En esta cuestión, los detalles de la estrategia comercial resultan más importantes.

Dichos resultados se muestran usando un trailing stop sobre la expectativa moral.

PERIOD_M1 Total Net Profit Gross Profit Gross Loss
UseTakeProfit=false 4 482.35 8 175.37 -3 693.02
UseTakeProfit=true 4 747.94 8 434.11 -3 686.17

Los resultados han sido ligeramente peores que los de un simple trailing stop. Esto se debe al hecho de que cuando las posiciones van acompañadas de una expectativa moral, la posición se mueve hasta el punto de equilibrio antes que con un simple trailing stop. Por lo tanto, este tipo de trailing stop se usará mejor en estrategias de scalping.

Otra gran desventaja es el gran número de transacciones necesarias. Los cálculos pueden optimizarse, pero incluso en este caso, el marco temporal del trailing stop debería ser pequeño según las expectativas morales.


Trailing stop para varias posiciones

Hasta ahora, hemos aplicado un trailing stop a cada posición por separado. ¿Puede aplicarse a varias posiciones a la vez? Vamos a analizar también esta posibilidad. Para ello, supondremos que las posiciones pueden ser de diferentes tipos y con distintos volúmenes al mismo tiempo.

En primer lugar, deberemos determinar qué tipo de posición tiene el predominio. Para ello, buscaremos la suma de los volúmenes de las posiciones de compra y le restaremos la suma de los volúmenes de las posiciones de venta.

El resultado mostrará qué tipo de posición es más fuerte. Un número positivo indicará una posición Buy más fuerte, un número negativo indicará una posición Sell más fuerte. Si el resultado es cero, las posiciones tendrán la misma fuerza.

A continuación, tendremos que encontrar los precios de cierre mínimos posibles para cada posición. Se calcularán del mismo modo que el stop loss mínimo, pero sin tener en cuenta el deslizamiento.

Ahora tendremos que convertir estos precios de cierre en precios Ask/Bid y hallar su media ponderada. Los volúmenes de los artículos servirán como pesos.

Estos dos valores serán más cómodos para llegar al valor Bid óptimo, que será necesario para el mantenimiento de la posición en el futuro.

Ahora tendremos tres opciones:

  • Si los volúmenes de las posiciones Buy y Sell son iguales entre sí, el valor óptimo de Bid se corresponderá con la pérdida mínima. Es decir, un tráder podrá cerrar todas las posiciones si el precio Bid real coincide con el óptimo.
  • Si los volúmenes de las posiciones Buy son mayores, BidOpt deberá incrementarse en la magnitud del deslizamiento. Este será el stop loss mínimo para todas las posiciones.
  • Si hay más posiciones Sell, el valor de BidOpt deberá reducirse en la magnitud del deslizamiento.

Las posiciones se mantendrán del mismo modo que con un trailing stop simple. Se calcularán nuevos niveles de stop loss y se ajustarán al precio. La única diferencia reside en que este stop loss será virtual. Por lo tanto, tendremos que monitorear el cambio de precio en cada tick.

Hemos implementado el mantenimiento de varias posiciones usando como principio un trailing stop simple. Así cambiará el gráfico de equilibrio al aplicarlo.


Debemos recordar que el mantenimiento de todas las posiciones y de cada una por separado no entran en conflicto. Por ejemplo, un trailing stop simple + el trailing stop de todas las posiciones dará estos resultados.


Total Net Profit Gross Profit Gross Loss
PERIOD_M1 4 907.90 10 425.52 -5 517.62
PERIOD_M15 16 524.44 32 304.01 -15 779.57

En general, el trailing stop supone una herramienta útil. Sin embargo, el tráder deberá recordar que su aplicación no garantizará una operación de equilibrio, ni tampoco mejorará una estrategia comercial poco desarrollada.


Conclusión

Para redactar el artículo, hemos utilizado el siguiente programa.

Nombre Tipo Particularidades
Trailing stop experto
  • TFTS - marco temporal del trailing stop
  • Seed - número inicial de una serie de números aleatorios. Si no es 0, se repetirá la secuencia de posiciones y sus volúmenes
  • Slippage - deslizamiento
  • TypeTS - seleccionar el tipo de trailing stop
  • UseTakeProfit - usar take profit
  • MultiTS - trailing stop de todas las posiciones abiertas

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/14167

Archivos adjuntos |
Trailing_stop.mq5 (32.67 KB)
Utilizando redes neuronales en MetaTrader Utilizando redes neuronales en MetaTrader
En el artículo se muestra la aplicación de las redes neuronales en los programas de MQL, usando la biblioteca de libre difusión FANN. Usando como ejemplo una estrategia que utiliza el indicador MACD se ha construido un experto que usa el filtrado con red neuronal de las operaciones. Dicho filtrado ha mejorado las características del sistema comercial.
Ciencia de datos y aprendizaje automático (Parte 18): La batalla de dominar la complejidad del mercado, SVD truncado frente a NMF Ciencia de datos y aprendizaje automático (Parte 18): La batalla de dominar la complejidad del mercado, SVD truncado frente a NMF
La descomposición del valor singular truncado (SVD, Singular Value Decomposition) y la factorización de matrices no negativas (NMF, Non-Negative Matrix Factorization) son técnicas de reducción de la dimensionalidad. Ambos desempeñan un papel importante en la elaboración de estrategias de negociación basadas en datos. Descubra el arte de reducir la dimensionalidad, desentrañar ideas y optimizar los análisis cuantitativos para obtener un enfoque informado que le permita navegar por las complejidades de los mercados financieros.
Particularidades del trabajo con números del tipo double en MQL4 Particularidades del trabajo con números del tipo double en MQL4
En estos apuntes hemos reunido consejos para resolver los errores más frecuentes al trabajar con números del tipo double en los programas en MQL4.
Implementación en MQL5 de la prueba de Augmented Dickey-Fuller (ADF) Implementación en MQL5 de la prueba de Augmented Dickey-Fuller (ADF)
En este artículo demostramos la implementación de la prueba Dickey-Fuller aumentada (ADF, por sus siglas en inglés), y la aplicamos para realizar pruebas de cointegración utilizando el método Engle-Granger.