Curso de Programación 16.1. El Patrón Hombro-Cabeza-Hombro
Esta semana iniciamos el último tema de nuestro curso de programación dedicándolo a la utilización de patrones chartistas desde el punto de vista del diseño de estrategias.
A través de este artículo, veremos cómo usar herramientas de análisis que nos permitan detectar la formación de dichos patrones, de modo que esa información nos sirva de referencia para el diseño de estrategias.
Antes de empezar, hablaremos brevemente sobre ellos.
Introducción
Estos patrones son figuras que se repiten a lo largo del histórico de un gráfico permitiendo determinar la evolución del precio en base a su aparición con una fiabilidad mayor o menor en función del patrón que aparezca.
Desde el punto de vista del desarrollo de sistemas, diremos que los patrones pueden servir de señal de aviso de un inminente cambio, si bien se recomienda aplicarlos junto con otro tipo de herramientas de análisis técnico.
En función de la información que aporten, los podemos dividir en dos grandes grupos:
Aquellos que predicen cambios de tendencia. Ejemplos:
- Doble techo o doble suelo.
- Suelos redondeados.
- Hombro/cabeza/hombro.
- Formación en taza.
Aquellos que predicen una continuación de la tendencia. Ejemplos:
- Banderas.
- Gallardetes.
- Triángulo simétrico.
Podemos automatizar la detección de estos patrones a través del diseño de indicadores, tal y como veremos a continuación. Cabe destacar que, al hacer esto, la búsqueda de patrones se ve limitada, como consecuencia de la necesidad de establecer una serie de reglas concretas que definan la aparición del patrón en cuestión.
En Visual Chart contamos con varios indicadores de detección de patrones chartistas. Estos indicadores consisten en una serie de líneas que dibujan sobre el gráfico la figura y además, marcan con otras (las denominadas líneas de alerta) la barra donde se ha detectado el patrón. Estas segundas líneas son necesarias para poder diseñar una estrategia.
En el presente curso veremos dos ejemplos: El patrón Hombro/Cabeza/Hombro y el patrón ABC.
A continuación, veremos el primero de estos dos patrones.
El patrón Hombro-Cabeza-Hombro
Este patrón es una figura de cambio de tendencia bajista que aparece durante una fase de crecimiento del precio. Lo interesante de la figura es que cuenta con un alta fiabilidad en cuanto a sus predicciones, si bien puede tardar en aparecer en función de los parámetros que usemos.
Está formado por tres máximos en los que destaca el máximo central, pues debe ser el mayor de los tres (la cabeza), siendo los otros dos máximos de un nivel similar entre ellos (los hombros). Al unir los hombros con la cabeza se forman los dos mínimos que terminan de dar forma al patrón. A su vez, estos dos mínimos permiten trazar una línea de soporte conocida como línea de cuello (neckline).
Cuando el precio rompe a la baja la línea de cuello, el patrón queda confirmado y por tanto se espera a continuación un movimiento bajista. La duración de dicho movimiento bajista queda determinada por la distancia entre el máximo de la cabeza y el valor del cuello en la barra donde se ubica la cabeza.
En la siguiente imagen podemos ver un ejemplo de patrón Hombro-Cabeza-Hombro:
Como decíamos, podemos automatizar la detección de patrones mediante indicadores. El indicador asociado a ésta figura lo podemos descargar desde el siguiente enlace:
Descarga indicador Head & Shoulder Top
Cabe destacar que el indicador dibuja 4 líneas:
Las líneas 1 y 2 sirven para visualizar la figura.
Las líneas 3 y 4 sirven para marcar la detección de un nuevo patrón. Estas líneas se sitúan en dos niveles:
- Nivel de alerta situado en el valor del cuello cuando apareció la cabeza.
A través de este artículo, veremos cómo usar herramientas de análisis que nos permitan detectar la formación de dichos patrones, de modo que esa información nos sirva de referencia para el diseño de estrategias.
Antes de empezar, hablaremos brevemente sobre ellos.
Introducción
Estos patrones son figuras que se repiten a lo largo del histórico de un gráfico permitiendo determinar la evolución del precio en base a su aparición con una fiabilidad mayor o menor en función del patrón que aparezca.
Desde el punto de vista del desarrollo de sistemas, diremos que los patrones pueden servir de señal de aviso de un inminente cambio, si bien se recomienda aplicarlos junto con otro tipo de herramientas de análisis técnico.
En función de la información que aporten, los podemos dividir en dos grandes grupos:
Aquellos que predicen cambios de tendencia. Ejemplos:
- Doble techo o doble suelo.
- Suelos redondeados.
- Hombro/cabeza/hombro.
- Formación en taza.
Aquellos que predicen una continuación de la tendencia. Ejemplos:
- Banderas.
- Gallardetes.
- Triángulo simétrico.
Podemos automatizar la detección de estos patrones a través del diseño de indicadores, tal y como veremos a continuación. Cabe destacar que, al hacer esto, la búsqueda de patrones se ve limitada, como consecuencia de la necesidad de establecer una serie de reglas concretas que definan la aparición del patrón en cuestión.
En Visual Chart contamos con varios indicadores de detección de patrones chartistas. Estos indicadores consisten en una serie de líneas que dibujan sobre el gráfico la figura y además, marcan con otras (las denominadas líneas de alerta) la barra donde se ha detectado el patrón. Estas segundas líneas son necesarias para poder diseñar una estrategia.
En el presente curso veremos dos ejemplos: El patrón Hombro/Cabeza/Hombro y el patrón ABC.
A continuación, veremos el primero de estos dos patrones.
El patrón Hombro-Cabeza-Hombro
Este patrón es una figura de cambio de tendencia bajista que aparece durante una fase de crecimiento del precio. Lo interesante de la figura es que cuenta con un alta fiabilidad en cuanto a sus predicciones, si bien puede tardar en aparecer en función de los parámetros que usemos.
Está formado por tres máximos en los que destaca el máximo central, pues debe ser el mayor de los tres (la cabeza), siendo los otros dos máximos de un nivel similar entre ellos (los hombros). Al unir los hombros con la cabeza se forman los dos mínimos que terminan de dar forma al patrón. A su vez, estos dos mínimos permiten trazar una línea de soporte conocida como línea de cuello (neckline).
Cuando el precio rompe a la baja la línea de cuello, el patrón queda confirmado y por tanto se espera a continuación un movimiento bajista. La duración de dicho movimiento bajista queda determinada por la distancia entre el máximo de la cabeza y el valor del cuello en la barra donde se ubica la cabeza.
En la siguiente imagen podemos ver un ejemplo de patrón Hombro-Cabeza-Hombro:
Como decíamos, podemos automatizar la detección de patrones mediante indicadores. El indicador asociado a ésta figura lo podemos descargar desde el siguiente enlace:
Descarga indicador Head & Shoulder Top
Cabe destacar que el indicador dibuja 4 líneas:
Las líneas 1 y 2 sirven para visualizar la figura.
Las líneas 3 y 4 sirven para marcar la detección de un nuevo patrón. Estas líneas se sitúan en dos niveles:
- Nivel de alerta situado en el valor del cuello cuando apareció la cabeza.
- Nivel de resistencia situado en el máximo de la cabeza.
Con estos dos datos, además, podemos obtener el nivel objetivo a alcanzar, puesto que se trata de la distancia entre ambos niveles.
Desde el punto de vista del diseño de sistemas, las líneas 1 y 2 son despreciables, ya que son líneas que se dibujan en el gráfico a posteriori, por lo que no tiene sentido usarlas. Cuando el indicador dibuje los puntos de las líneas 3 y 4 será el momento en el que se detecta un nuevo patrón y la señal para que nuestro sistema actúe. Veamos a continuación cómo.
Estrategia Ruptura de la línea de Cuello
Esta estrategia nos va a servir de ejemplo para ver cómo usar el indicador presentado anteriormente. Como herramienta de ayuda, vamos a usar una media exponencial que nos permita detectar la tendencia general del precio y así poder descartar patrones a destiempo.
Las reglas que vamos a seguir serán las siguientes:
1) El sistema sólo va a operar a Corto, y siempre buscando un giro de tendencia.
2) El sistema usará una media exponencial de 100 periodos como referencia.
3) Cuando los precios estén por encima de la media exponencial, buscar la formación de un patrón Hombro-Cabeza-Hombro.
4) Si el indicador nos avisa de la aparición de uno, calculamos el nivel objetivo (usando los precios dados por las líneas 3 y 4). Si el precio actual sigue estando por encima de dicho nivel, entramos vendidos a mercado.
5) El sistema deshace posición si alcanza o bien el objetivo, o bien el nivel de resistencia (cabeza) o bien la hora de cierre de sesión.
Código PDV
Código VBA
(NOTA: Recuerden que el código aquí expuesto sólo incluye los métodos OnCalculateBar() yOnInitCalculate(). Tengan esto en cuenta a la hora de copiar el sistema).
Con estos dos datos, además, podemos obtener el nivel objetivo a alcanzar, puesto que se trata de la distancia entre ambos niveles.
Desde el punto de vista del diseño de sistemas, las líneas 1 y 2 son despreciables, ya que son líneas que se dibujan en el gráfico a posteriori, por lo que no tiene sentido usarlas. Cuando el indicador dibuje los puntos de las líneas 3 y 4 será el momento en el que se detecta un nuevo patrón y la señal para que nuestro sistema actúe. Veamos a continuación cómo.
Estrategia Ruptura de la línea de Cuello
Esta estrategia nos va a servir de ejemplo para ver cómo usar el indicador presentado anteriormente. Como herramienta de ayuda, vamos a usar una media exponencial que nos permita detectar la tendencia general del precio y así poder descartar patrones a destiempo.
Las reglas que vamos a seguir serán las siguientes:
1) El sistema sólo va a operar a Corto, y siempre buscando un giro de tendencia.
2) El sistema usará una media exponencial de 100 periodos como referencia.
3) Cuando los precios estén por encima de la media exponencial, buscar la formación de un patrón Hombro-Cabeza-Hombro.
4) Si el indicador nos avisa de la aparición de uno, calculamos el nivel objetivo (usando los precios dados por las líneas 3 y 4). Si el precio actual sigue estando por encima de dicho nivel, entramos vendidos a mercado.
5) El sistema deshace posición si alcanza o bien el objetivo, o bien el nivel de resistencia (cabeza) o bien la hora de cierre de sesión.
El diseño del sistema quedaría así:
Código PDV
Código VBA
(NOTA: Recuerden que el código aquí expuesto sólo incluye los métodos OnCalculateBar() yOnInitCalculate(). Tengan esto en cuenta a la hora de copiar el sistema).
'¡¡ Summary
' Classification: Curso
'Summary !!
'¡¡ Parameters
Dim Contratos As Long '1
Dim HoraIni As Integer '900
Dim HoraFin As Integer '1900
Dim PeriodoMedia As Integer '100
Dim Length As Long '120
Dim DMPeriod As Long '20
Dim ShoulderDistance As Long '10
Dim HeadDistance As Long '20
Dim PriceTop As Price 'PriceHigh
Dim PriceBottom As Price 'PriceLow
'Parameters !!
Dim avdata As DataIdentifier
Dim hchdata As DataIdentifier
Dim hchsignal As Integer
Dim head As Double
Dim ptarget As Double
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
avdata = .GetIndicatorIdentifier(AvExponential, Data, PeriodoMedia, PriceClose)
hchdata = .GetIndicatorIdentifier(HAST, Data, Length, DMPeriod, ShoulderDistance, HeadDistance, PriceTop, PriceBottom)
hchsignal = 0
head = 0
ptarget = 0
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP
If (.Time >= HoraIni And .Time < HoraFin) Then
Dim avact As Double
Dim top As Double
Dim neck As Double
Dim neworder As Boolean
avact = .GetIndicatorValue(avdata)
neck = .GetIndicatorValue(hchdata, 0, 3)
top = .GetIndicatorValue(hchdata, 0, 4)
If (.Close() > avact) Then
'entradas
If (neck <> NullValue And .GetMarketPosition() <> -1) Then
head = top
ptarget = neck - (head - neck)
If (.Close() > ptarget) Then
.Sell AtClose, Contratos
neworder = True
End If
End If
End If
'salidas
If (.GetMarketPosition() = -1 Or neworder) Then
.ExitShort AtLimit, Contratos, ptarget
.ExitShort AtStop, Contratos, head
End If
Else
If (.GetMarketPosition = -1) Then
.ExitShort AtClose, Contratos
End If
End If
End With
End Sub
Comentarios
Publicar un comentario
¡Gracias!