Rankia USA Rankia Argentina Rankia Argentina Rankia Chile Rankia Chile Rankia Colombia Rankia Colombia Rankia España Rankia España Rankia México Rankia México Rankia Perú Rankia Perú Rankia Portugal Rankia Portugal
Acceder

En el anterior artículo empezamos a plantear la idea del uso de objetivos dinámicos como método de salida por beneficios. Para ello, presentamos dos ejemplos diferentes que sirvieran como muestra. En el primero de ellos hablamos de un objetivo porcentual cuyo valor iba menguando paralelamente a la caída de la volatilidad, con la intención de estrechar el cerco del negocio ante el posible agotamiento de la tendencia. Hoy dedicaremos nuestro tiempo al segundo de los ejemplos, en este caso, tomando como punto de partida la situación opuesta, es decir, a partir de un porcentaje fijo de beneficios, incrementar dicho valor si se produce un crecimiento de la volatilidad. Veamos cómo.

Objetivo dinámico creciente

Así como el uso del objetivo dinámico decreciente lo consideramos un método conservador puesto que íbamos reduciendo el margen de ganancias, lo que vamos a diseñar ahora sería lo contrario: un método más arriesgado puesto que alejamos el objetivo cuando el precio se le aproxima. ¿Tiene esto sentido?
Conforme vayamos avanzando veremos que sí. Lógicamente, esto no se hará en todos los casos, sólo en aquellos en los que se esté detectando un crecimiento de la actividad: Es decir, vamos a arriesgar más si observamos que estamos dentro de un impulso fuerte con posibilidades de progresar más allá de los niveles de ganancia que nos habíamos marcado. Con esta idea, lo que buscamos es aplicar un porcentaje de ganancia relativamente bajo para los casos de movimientos débiles pero que dicho porcentaje aumente cuando el negocio se encuentre dentro de un movimiento acelerado.

Veamos un ejemplo. En la siguiente imagen, esta estrategia toma posiciones cortas a raíz de un movimiento bajista del mercado:

Estrategia de posiciones cortas

La estrategia tiene marcado un objetivo del 0.5%, que de hecho lo consigue, aunque en realidad podría haber aprovechado en mayor medida el movimiento a favor ya que se trata de una tendencia bajista generada por la ruptura de un importante soporte, lo cual supone un aumento de la volatilidad. Este aumento queda reflejado en un indicador como el Bollinger Volatility Oscillator N (por usar el mismo que en el ejercicio anterior), tal y como remarcamos en la imagen. 

Es decir, que la estrategia tiene a su disposición herramientas que le pueden informar de aquellos casos en los que sucede esto. Así que vamos a aprovechar esta información para desarrollar el objetivo dinámico. El primer paso, por tanto, será determinar con números cuándo se nos está indicando uno de estos casos. Para ello sólo consideraremos como aumentos relevantes de la volatilidad aquellos casos en los que el valor del indicador está por encima del 50%. Por ejemplo, en la siguiente imagen, el oscilador siempre se mantiene por debajo del 50% y por tanto no activaremos la regla del objetivo dinámico:

Ejemplo sobre la regla del objetivo dinámico

Así, si la estrategia abre nuevos negocios en zonas con poco movimiento, mantenemos nuestro objetivo al 0.5%, es decir, no demasiado alejado del precio de entrada.

Hecho esto, lo siguiente será ver si tras alcanzar el nivel de activación, la volatilidad sigue aumentando. En caso de que no lo haga, no moveremos el objetivo, ya que puede tratarse de un caso en el que se ha producido un crecimiento puntual o bien un caso en el que el punto de entrada ha ocurrido justo en la cima del aumento:

Ejemplo de la volatilidad

En ésta imagen, por ejemplo, la entrada a corto sucede cuando el oscilador ya está en el 100%. Es decir, que según el indicador, la volatilidad no va a seguir creciendo, con lo cual desestimaríamos un cambio del objetivo.
En el caso de que el oscilador esté creciendo, lo que haremos será observar en qué proporción crece respecto al momento de entrada, y lo que haremos será aplicar dicha proporción al objetivo de beneficios. 

Volviendo al primero de los ejemplos que vimos (03 de mayo 2016), en el momento de la entrada a corto el valor del oscilador era del 63%. En la barra siguiente, el indicador sube hasta el 78%, es decir, un aumento del 15%. Como se cumplen los dos requisitos (valor por encima del 50% y crecimiento del porcentaje), aplicamos la diferencia al objetivo: Es decir, aplicamos un 15% al 0.5, dándonos un objetivo total del 0.575%. El resultado sería el siguiente:

Ejemplo DAX

Si lo comparamos con la primera de las imágenes que pusimos, vemos que ahora el objetivo está más alejado del precio de entrada. La variación no es excesiva puesto que lo normal es que el incremento desde el 50% hasta el 100% no duré más allá de cuatro o cinco barras, siendo los saltos normalmente de 10% en 10% (aproximadamente).

Un último ejemplo antes de pasar al diseño del objetivo:

Siestemas de trading


En esta ocasión, la entrada a largo sucede en una zona con poco movimiento. Sin embargo, al cierre del 29 de marzo se produce la ruptura del 50% del oscilador y activa el objetivo dinámico. Como en la entrada  el valor del oscilador era del 37% y el valor actual es del 52%, aplicamos un incremento del 15% del objetivo inicial. En las barras siguientes la diferencia sigue creciendo, lo cual nos permite conseguir algunos puntos más de ganancia. 

Una vez vista la parte teórica, vamos a pasar a continuación a explicar cómo sería el proceso de desarrollo de éste objetivo dinámico.

 

Diseño del Objetivo Dinámico Creciente

Para elaborar la programación de éste objetivo usaremos Visual Chart 6, y además lo realizaremos con los dos lenguajes de programación que hay disponibles.

Comenzaremos por incorporar a nuestra estrategia el indicador Bollinger Volatility Oscillator N. A diferencia del ejercicio anterior, vamos a añadir a la lista de parámetros dos de los parámetros del oscilador, en concreto, la distancia N y la banda de activación. En VB.NET, la forma más rápida para añadir un nuevo parámetro es copiar el código de uno anterior y modificar los campos correspondientes. Recuerden que para que aparezca en la lista de parámetros de entrada, es necesario que vaya acompañado con sus atributos.

En VB.NET:

Sistema de trading


En la Plataforma Visual:

Sistema de trading


En la plataforma visual, cuando seleccionamos parámetros de un indicador para que aparezcan como parámetros de la estrategia, podemos cambiar el nombre que aparece por defecto por otro que queramos, tal y como hemos hecho en este ejemplo.

Por otro lado, añadimos dos variables globales que vamos a usar para hacer el seguimiento del oscilador. Al primero lo llamaremos topbollv y va a representar al valor del oscilador más alto alcanzado desde que se inició el negocio. Mientras que al segundo lo vamos a llamar pcttarget y servirá para almacenar el último valor que le hayamos dado a nuestro objetivo: recordemos que el objetivo inicialmente tomará el valor definido por el parámetro de entrada Objetivo pero conforme se van produciendo incrementos de la volatilidad dicho valor irá en aumento.  

En VB.NET:

Sistema de trading


En la Plataforma Visual:

Sistema de trading


Hecho esto, ya sólo es cuestión de observar si el valor del indicador llega al nivel de filtro (determinado por el parámetro BollVolBnd) y si se produce un incremento del oscilador. Si pasa esto, añade la proporción al objetivo y actualiza el valor más alto alcanzado.

Por tanto, el proceso será el siguiente:

  1. Cuando abramos un nuevo negocio (la función GetBarsSinceEntry valdrá cero), pcttarget será igual al objetivo inicial y topbollv será igual al valor del indicador en ese momento.
  2. Siempre y cuando haya una posición abierta, observamos si el indicador alcanza el valor de BollVBnd.
  3. Cuando esto ocurra, comparamos el valor del indicador con el valor guardado en topbollv. Si es inferior no pasa nada, pero si es superior, aplicamos la diferencia a pcttarget y actualizamos topbollv con el valor del indicador actual.
  4. En la definición de las órdenes de salida por objetivo, el precio de la orden será un porcentaje del precio de entrada determinado por la variable pcttarget.

En VB.NET:

Sistema de trading


En la Plataforma Visual:

Sistema de trading

 

Conclusiones

Una vez más, el estudio aquí presentado es aplicable a cualquier clase de estrategia de trading, ya que su gestión y puesta en marcha es totalmente independiente de las reglas de entrada de la estrategia. Esto quiere decir que podemos implementar el código aquí presentado a cualquier idea desarrollada en Visual Chart 6.

A pesar de que conceptualmente es una idea más agresiva que la del objetivo decreciente, en realidad, los incrementos son tan leves que no supone ni un aumento considerable del número de operaciones fallidas ni tampoco de las garantías. De hecho, se puede conseguir reducir el Drawndown de la estrategia al mejorar los puntos de mayor rendimiento. Como muestra, en el siguiente gráfico podemos ver una comparativa entre la ganancia de la estrategia de ejemplo sin objetivo dinámico y con objetivo dinámico (periodo de 2 años).

Sin Objetivo Dinámico:

Sistema de trading sin objetivo dinámico


Con Objetivo Dinámico:

Sistema de trading con objetivo dinámico


Como vemos, no sólo aumenta la ganancia de la estrategia sino que además reduce las zonas de mayor pérdida, tal y como se demuestra en la zona remarcada.

 

¡Sé el primero en comentar!
Comentar