English Русский Deutsch 日本語 Português
preview
Stop Loss y Take Profit amigables para el tráder

Stop Loss y Take Profit amigables para el tráder

MetaTrader 5Trading | 21 mayo 2024, 16:08
433 0
Aleksej Poljakov
Aleksej Poljakov

Introducción

Si el más grande dramaturgo hubiera podido escribir un epígrafe para este artículo, habría dicho así:

¿Ser o no ser? He aquí el dilema:

¿Poner un stop loss contra un mercado frenético?,

¿U obtener todo el beneficio con un take profit?

El Stop Loss y el Take Profit son órdenes stop que cierran una posición cuando el precio alcanza su valor. El stop loss nos permite limitar las pérdidas, mientras que el take profit nos permite fijar los beneficios. La principal ventaja de usar stop loss y take profit es la posibilidad de controlar los riesgos financieros y utilizar la gestión de capital.

Pero algunos tráders prefieren prescindir de las órdenes stop, y su razonamiento es muy sencillo. Según ellos, hay situaciones en las que el precio alcanza un stop loss y luego se invierte, y si no hubiera stop loss, la posición podría haberse cerrado en positivo. El mismo argumento se aplica al take profit. El precio ha alcanzado su nivel, la posición se ha cerrado, pero el precio sigue moviéndose en la misma dirección, y si no se hubiera fijado el take profit, podríamos haber obtenido beneficios adicionales.

Este enfoque tiene más que ver con el juicio subjetivo del tráder, y esa subjetividad puede acarrear grandes problemas. Por ejemplo, si un tráder no fija un stop loss, el bróker lo hará por él. Y para que no haya confusión en los términos, el bróker llamará a su nivel "stop-out". Siempre podrá averiguar el nivel de stop loss del bróker utilizando la función AccountInfoDouble con el identificador ACCOUNT_MARGIN_SO_SO. Lo mismo ocurre con el take profit: ¿quizá el propio tráder ha elegido el nivel equivocado y por eso no obtiene todo el beneficio posible?

Vamos a intentar elegir racionalmente los niveles de stop loss y take profit.


Preparación de los datos

Así pues, le propongo familiarizarse con el tema de nuestro estudio. Primero deberemos averiguar qué niveles puede alcanzar el precio al moverse hacia arriba y hacia abajo. Además, nos interesa saber con qué frecuencia aparece un determinado nivel en la historia.

Usaremos un modelo bastante sencillo. Supongamos que cada posición se abre según el precio de apertura. Asimismo, determinaremos la duración del mantenimiento de la posición en N barras. Nos interesan las desviaciones máximas alcistas y bajistas del precio. Serán sus valores los que recojamos para las estadísticas. Para nuestro ejemplo, hemos usado un tiempo de mantenimiento de la posición de 5 barras, cosa que podemos ver gráficamente así.

Como resultado, obtendremos cuántas veces se ha producido tal o cual desviación del precio en los datos históricos. En otras palabras, hemos obtenido una estimación de la probabilidad de que el precio alcance un nivel concreto. Por ejemplo, estas serán las estadísticas para un movimiento alcista del precio.

Y para un movimiento bajista.

Lo primero que llama la atención son las grandes anomalías: estas son menos frecuentes. El segundo resultado importante es la diferencia entre los movimientos alcistas y bajistas de los precios.

Esta diferencia nos indica que los valores de stop loss y take profit para las posiciones Buy y Sell pueden ser diferentes entre sí.

Ahora deberemos dar un paso más. La condición de activación de stop loss y take profit puede formularse de la siguiente manera: el precio alcanzará un nivel determinado y tal vez vaya más allá.

Para estimar la probabilidad de que un stop loss o un take profit se activen en un nivel determinado, necesitaremos funciones acumulativas adicionales. La esencia de la función acumulativa adicional es muy sencilla: debemos sumar la probabilidad de un nivel determinado con las probabilidades de todos los niveles que le siguen.

En la práctica, podemos encontrar esta función de la siguiente manera. Tomamos la estimación de probabilidad que hemos obtenido al principio. Empezando por el penúltimo nivel, deberemos encontrar las sumas del tipo:

El resultado debería ser una imagen como ésta.

Recordemos nuevamente. Primero obtendremos la probabilidad de que el precio alcance este nivel concreto y no otro, y ahora tendremos la probabilidad de que el precio alcance este nivel y posiblemente vaya más allá.

Así, ahora podemos pasar a la parte principal de nuestro estudio.


SL y TP independientes

Así, conoceremos las probabilidades de que el precio alcance un nivel determinado. El reto ahora será rentabilizar estos conocimientos. Y empezaremos con... Por cierto, ¿se ha dado cuenta de que en todos sus productos la empresa MetaQuotes le sugiere primero fijar un stop loss, y solo después un take profit? Eso es porque ahí trabajan solo pesimistas. Pero usted y yo somos optimistas, así que empezaremos con el take profit.

A cualquier tráder le interesa que el take profit sea grande. Cuanto mayor sea, mayor será el beneficio. Pero como ya hemos visto, un aumento del take profit conlleva una disminución de la probabilidad de su ejecución. En un enfoque racional, tendremos que encontrar el máximo take profit con la mayor probabilidad posible de que se cumpla:

Veamos si podemos cumplir esta condición.

Sí, tenemos un máximo claramente definido, y este valor de take profit podemos aceptarlo como óptimo.

Ahora podremos empezar a buscar el stop loss óptimo. A primera vista, todo resulta bastante simple: necesitamos un stop loss mínimo con una probabilidad mínima de su ejecución. Pero esta simplicidad es engañosa, de hecho, tendremos que hacer lo contrario.

Cuando recogimos las estadísticas sobre las desviaciones de precio, obtuvimos, entre otras cosas, el valor máximo. Ahora, al evaluar la optimalidad, podremos tomar la diferencia entre este máximo y el valor de stop loss. Cuanto mayor sea esta diferencia, mejor. Haremos lo mismo al estimar la probabilidad de cumplimiento: una pequeña probabilidad de cumplimiento equivaldrá a una gran probabilidad de incumplimiento. Es decir, buscaremos el cumplimiento de esta condición:

Vamos a comprobarlo Sí, ese máximo existe, se habrá encontrado el stop loss óptimo.

Para EURUSD, H1, con una duración de mantenimiento de la posición de 5 barras, hemos obtenido los siguientes valores.


SL / Probability TP / Probability
Buy 622 / 6.90% 210 / 37.28%
Sell 603 / 7.28% 220 / 35.31%

Vamos a comprobar lo óptimos que son estos valores. Usaremos una estrategia simple: las posiciones se abrirán en cada nueva barra si no hay posiciones abiertas. El tipo de posición se seleccionará aleatoriamente. Estamos comprobando tres opciones:

  • órdenes stop óptimas;
  • stop loss reducidos en 10 pips;
  • take profit aumentados en 10 pips.

Este será el aspecto de la curva de balance cuando se utilicen órdenes stop óptimas.

En la tabla le presentamos los resultados de las pruebas de todas las variantes.

Total Net Profit Gross Profit Gross Loss Profit Factor Expected Payoff
303.02 1 870.84 -1 567.82 1.19 0.27
100.79 1 817.04 -1 716.25 1.06 0.09
135.07 1 773.24 -1 638.17 1.08 0.13

Unas palabras sobre la aplicación práctica de este enfoque.

En primer lugar, podrá utilizarlo tal cual y aplicarlo como indicador. Entonces obtendrá una especie de niveles de apoyo y resistencia.

En segundo lugar, supongamos que tenemos una estrategia comercial que genera señales para abrir y cerrar posiciones. Entonces podrá hacer esto. En primer lugar, recopile las estadísticas de las señales Buy y Sell por separado. En este caso, el tiempo de mantenimiento de la posición se contará desde la señal de apertura hasta la señal de cierre.

Obviamente, podrá utilizar solo un take profit, o un solo stop loss. Son independientes entre sí, por lo que resulta perfectamente aceptable utilizarlos por separado.


Esperanza matemática

El concepto de esperanza matemática se conoce desde hace mucho tiempo y se usa ampliamente en el trading. Por ejemplo, el indicador SMA muestra la esperanza matemática del precio. Y en el artículo "Matemáticas de trading. Cómo evaluar los resultados de las transacciones comerciales" se muestra con detalle cómo pueden evaluarse las estrategias comerciales usando la esperanza matemática.

Intentaremos aplicar la esperanza matemática al cálculo de las órdenes stop. Ya tenemos todas las estadísticas necesarias. Lo único que deberemos hacer es averiguar qué y cómo vamos a calcular.

Podemos calcular la esperanza matemática de una posición usando la fórmula:

Donde p será la probabilidad de que la posición se cierre con un Take Profit. Y esa es la probabilidad que deberemos encontrar.

Cualquier posición se cerrará con un take profit o stop loss. No tenemos otras opciones. Por lo tanto, la probabilidad total de estos dos sucesos deberá ser 1. La probabilidad de que una posición se cierre con un Take Profit se compondrá de dos elementos: la probabilidad de que el precio alcance el nivel de Take Profit y la probabilidad de que el precio no alcance el nivel de Stop Loss. Del mismo modo razonaremos sobre el cierre de una posición con un stop loss. Entonces, la fórmula de la esperanza matemática tendrá este aspecto:

Solo deberemos encontrar valores de stop loss y take profit en los que la esperanza matemática sea positiva. Por ejemplo, con estos valores de órdenes stop, podremos alcanzar la máxima esperanza.


SL / Probability TP / Probability Expected value
Buy 4611 / 7.69% 3690 / 92.31% 3051.53
Sell 4071 / 14.29% 3950 / 85.71% 2804.19

En la práctica, la esperanza matemática puede usarse de la siguiente manera. En primer lugar, deberemos seleccionar un valor específico de stop loss o take profit, y luego encontrar el valor óptimo de otra orden stop. Por ejemplo, hemos tomado los valores de stop loss del ejemplo anterior y encontrado los valores de take profit con la mayor esperanza matemática. Hemos obtenido los siguientes valores:


SL / Probability TP / Probability Expected value
Buy 622 / 19.24% 310 / 80.76% 130.68
Sell 603 / 19.25% 300 / 80.75% 126.13

Y así es como se verá el cambio de balance.

Además de la esperanza matemática, podemos utilizar otros criterios. Por ejemplo, el criterio

permite obtener valores de órdenes stop que ofrecerán la relación óptima entre beneficio medio y pérdida media.


Tiempo y beneficio

Todo el mundo ha oído alguna vez el aforismo "el tiempo es dinero", o "el tiempo es oro". Veamos si (y en caso afirmativo, cómo) este aforismo funciona en el trading.

Cualquier tráder racional está interesado en obtener beneficios. Y cuanto mayor sea este beneficio, mejor para el tráder. Le ofrezco la posibilidad de elegir entre 3 estrategias comerciales: la primera aporta 1440 pips de beneficio, la segunda 600 y la tercera 20. ¿Qué estrategia elegiría?

Voy a hacer una pequeña aclaración aquí: la primera estrategia obtiene beneficios en un día, la segunda en una hora y la tercera en un minuto. Obviamente, para evaluar la rentabilidad de estas estrategias, tendremos que llevarlas al mismo marco temporal. Por ejemplo, al marco M1. Entonces, obtendremos los siguientes valores:

  • 1440/1440 = 1;

  • 600/60 = 10;

  • 20/1 = 20.

Es decir, utilizaremos un criterio para evaluar las estrategias:

Probaremos el mismo enfoque para calcular las órdenes stop. Obviamente, a un tráder le interesa obtener el máximo beneficio en el mínimo tiempo. Del mismo modo, buscaremos minimizar las pérdidas y alejar lo más posible el momento en que se produzcan.

Es decir, desde el punto de vista de la elección de las órdenes stop, podemos razonar de la siguiente manera. Digamos que esperamos obtener beneficios durante 5 barras. Entonces, podremos mover el stop loss en el tiempo de ejecución a un tiempo más largo. Por ejemplo, el tiempo de ejecución del stop loss puede fijarse en 7 ó 10 barras. En este caso, el valor del stop loss aumentará, pero la probabilidad de que se ejecute se reducirá.

Este enfoque puede usarse en estrategias que tienen señales para abrir posiciones y ninguna señal para cerrarlas. Las posiciones solo deberán cerrarse cuando se alcance el stop loss o el take profit.

Para el ejemplo, hemos tomado un tiempo de ejecución del take profit igual a 5 barras, mientras que el tiempo de ejecución del stop loss estará en 5, 10 y 15 barras. Una forma de modificar el balance comercial sería la siguiente.

Los principales resultados de la prueba figuran en la tabla.

Total Net Profit Gross Profit Gross Loss Profit Factor Expected Payoff
-1 462.31 45 593.97 -47 056.28 0.97 -0.13
3 177.61 59 307.98 -56 130.37 1.06 0.28
1 833.58 59 963.97 -58 130.39 1.03 0.16

Como podemos ver, el cambio del tiempo de ejecución del stop loss puede tener un impacto positivo en los resultados de las transacciones.


Conclusión

En la redacción de este artículo hemos utilizado los siguientes programas.

Nombre Tipo Descripción
Lvl SL & TP Script Este script permite calcular el stop loss y el take profit óptimos.
  • Duration establece el tiempo previsto de mantenimiento de la posición en barras. El tamaño de SL y TP dependerá de ello. Los resultados de los cálculos se muestran en la pestaña Expertos
  • Verifiable SLVerifiable TP nos permiten establecer el stop loss o el take profit para los que necesitamos elegir la mejor esperanza matemática. Los resultados de los cálculos se almacenan en la carpeta Files
EA SL&TP Experto Permite comprobar los niveles de stop loss y take profit.
  • Seed - número inicial, influye en la secuencia de las posiciones. Si el valor no es igual a 0, las posiciones se repetirán, y esto ayudará a comparar diferentes stop loss y take profit
  • SLBuy, TPBuy, SLSell, TPSell - Stop Loss y Take Profit para las posiciones. Sus valores se pueden tomar del script Lvl SL & TP
EA TIM Experto Nos permite comprobar hipótesis de un calendario diferente para SL y TP.
  • Seed - número inicial, influye en la secuencia de las posiciones.
  • DurationTP - tiempo previsto de aparición del take profit
  • ShiftSL - cuántas barras más se esperará el stop loss


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

Archivos adjuntos |
Lvl_SL_6_TP.mq5 (21.83 KB)
EA_SLuTP.mq5 (3.56 KB)
EA_TIM.mq5 (7.01 KB)
Aprendiendo MQL5 de principiante a profesional (Parte I): Comenzamos a programar Aprendiendo MQL5 de principiante a profesional (Parte I): Comenzamos a programar
Este artículo supone la introducción a toda una serie de artículos sobre programación. Partimos del supuesto de que el lector no se ha enfrentado nunca a la programación. Así que empezaremos por lo básico. Nivel de conocimientos de programación: principiante absoluto.
Búferes de color en indicadores de periodo y símbolo múltiple Búferes de color en indicadores de periodo y símbolo múltiple
En este artículo revisaremos la estructura de los búferes de los indicadores de periodo y símbolo múltiple y organizaremos la muestra de los búferes de color de estos indicadores en el gráfico.
Python, ONNX y MetaTrader 5: Creamos un modelo RandomForest con preprocesamiento de datos RobustScaler y PolynomialFeatures Python, ONNX y MetaTrader 5: Creamos un modelo RandomForest con preprocesamiento de datos RobustScaler y PolynomialFeatures
En este artículo, crearemos un modelo de bosque aleatorio en Python, entrenaremos el modelo y lo guardaremos como un pipeline ONNX con preprocesamiento de datos. Además, usaremos el modelo en el terminal MetaTrader 5.
Cuantificación en el aprendizaje automático (Parte 2): Preprocesamiento de datos, selección de tablas, entrenamiento del modelo CatBoost Cuantificación en el aprendizaje automático (Parte 2): Preprocesamiento de datos, selección de tablas, entrenamiento del modelo CatBoost
En este artículo, hablaremos de la aplicación práctica de la cuantificación en la construcción de modelos arbóreos. Asimismo, analizaremos los métodos de selección de tablas cuantificadas y el preprocesamiento de datos. El material se presentará sin fórmulas matemáticas complejas, en un lenguaje accesible.