Curso de Programación 16.2. El Patrón ABC (123 High/123 Low)
Finalizamos el tema dedicado a otros patrones chartistas viendo un nuevo patrón de cambio de tendencia, el Patrón ABC o Patrón 123.
Este patrón fue ideado por Joe Ross como parte de la estrategia explicada en su libro The Ross Hook. El patrón vendría a ser una variación de la formación clásica de doble techo o suelo. La figura está formada por tres niveles específicos que son los que le dan nombre al conjunto. Por un lado, tendríamos dos puntos de soporte o resistencia (niveles 1 y 3) y por otro, el punto de unión de ambos (nivel 2).
Una vez formado el patrón, la ruptura de éste punto intermedio implica una pérdida del control previo al no poder sobrepasar los valores anteriores, dando lugar a un cambio de dirección del precio, tal y como vemos en la siguiente imagen.
En función de si estamos ante un doble techo o un doble suelo, la figura se conoce como 123-High o bien 123-Low.Veamos cada uno de los casos.
123 High
Esta figura es un patrón de cambio bajista. Está formado por los siguientes niveles:
Nivel 1 = Primer techo no sobrepasado.
Nivel 2 = Punto de retroceso (soporte).
Nivel 3 = Segundo techo no sobrepasado.
Como decíamos, la ruptura del soporte implica señal de cambio bajista. Cabe destacar que la señal tiene validez mientras el precio no retroceda por encima del segundo techo (nivel 3).
1-2-3 Low
Figura de cambio alcista. Está formada por los siguientes niveles:
Nivel 1 = Primer suelo no sobrepasado.
Nivel 2 = Punto de retroceso (resistencia).
Nivel 3 = Segundo suelo no sobrepasado.
La ruptura de la resistencia implica señal de cambio alcista. En este caso, la señal tiene validez mientras el precio no retroceda por debajo del segundo suelo (nivel 3).
Indicadores 123 High y 123 Low
Para una detección automática de cada una de las figuras anteriores, Visual Chart cuenta con un par de indicadores que realizan ésta tarea. Estos indicadores, del mismo nombre que los patrones que estudian, representan sobre el gráfico las figuras y además marcan el momento de detección para poder desarrollar estrategias basadas en estos datos.
Pueden descargar los dos indicadores desde los siguientes enlaces:
Descargar indicador 123 High
Descargar indicador 123 Low
Como decimos, un patrón ABC se detecta algunas barras a la derecha de la aparición del patrón. Esto lo podemos ver a través de las marcas que dejan los indicadores 123 High y Low. En realidad, los indicadores marcan dos puntos cuando encuentran un nuevo patrón:
El Nivel 2 del patrón. Puesto que es el punto de ruptura que confirma la figura.
El Nivel 3 del patrón. Puesto que es el punto de soporte o resistencia de validez o nivel de cancelación.
Resumiendo. Los indicadores 123 High y Low dibujan las correspondientes figuras sobre el gráfico, si bien esta información no es aplicable desde el punto de vista del diseño de un sistema. Por ello, el indicador, además, marca sobre la barra de detección los niveles 2 y 3 del patrón, información que sí puede ser utilizada desde un sistema.
Estrategia Ruptura del Nivel 2
Esta estrategia va a utilizar la información dada por los dos anteriores indicadores para diseñar unas reglas de trading. Como herramienta de apoyo, utilizará además una media simple de 50 periodos. Las reglas a seguir serán las siguientes:
Entradas a LARGO.
1) El precio está en tendencia bajista (media de 50).
2) Aparece un patrón 123 Low.
3) El precio rompe el nivel 2 al alza.
4) StopLoss = Nivel de soporte (nivel 3).
5) Objetivo = Doble de la distancia entre el nivel 2 y el nivel 3.
Entradas a CORTO.
1) El precio está en tendencia alcista (media de 50).
2) Aparece un patrón 123 High.
3) El precio rompe el nivel 2 a la baja.
4)StopLoss = Nivel de resistencia (nivel 3).
5) Objetivo = Doble de la distancia entre el nivel 2 y el nivel 3.
Para calcular el objetivo, tomaremos de referencia el precio de entrada de cada operación y seguidamente le aplicaremos la distancia entre ambos niveles multiplicado por dos.
Por último, cabe mencionar que los niveles 2 y 3 se corresponden con las líneas 3 y 4 (respectivamente) de los dos indicadores.
El diseño del sistema sería el siguiente:
Código PDV
Código VBA
(NOTA: Recuerden que el código aquí expuesto sólo incluye los métodos OnCalculateBar() y OnInitCalculate(). Tengan esto en cuenta a la hora de copiar el sistema).
Este patrón fue ideado por Joe Ross como parte de la estrategia explicada en su libro The Ross Hook. El patrón vendría a ser una variación de la formación clásica de doble techo o suelo. La figura está formada por tres niveles específicos que son los que le dan nombre al conjunto. Por un lado, tendríamos dos puntos de soporte o resistencia (niveles 1 y 3) y por otro, el punto de unión de ambos (nivel 2).
Una vez formado el patrón, la ruptura de éste punto intermedio implica una pérdida del control previo al no poder sobrepasar los valores anteriores, dando lugar a un cambio de dirección del precio, tal y como vemos en la siguiente imagen.
En función de si estamos ante un doble techo o un doble suelo, la figura se conoce como 123-High o bien 123-Low.Veamos cada uno de los casos.
123 High
Esta figura es un patrón de cambio bajista. Está formado por los siguientes niveles:
Nivel 1 = Primer techo no sobrepasado.
Nivel 2 = Punto de retroceso (soporte).
Nivel 3 = Segundo techo no sobrepasado.
Como decíamos, la ruptura del soporte implica señal de cambio bajista. Cabe destacar que la señal tiene validez mientras el precio no retroceda por encima del segundo techo (nivel 3).
1-2-3 Low
Figura de cambio alcista. Está formada por los siguientes niveles:
Nivel 1 = Primer suelo no sobrepasado.
Nivel 2 = Punto de retroceso (resistencia).
Nivel 3 = Segundo suelo no sobrepasado.
La ruptura de la resistencia implica señal de cambio alcista. En este caso, la señal tiene validez mientras el precio no retroceda por debajo del segundo suelo (nivel 3).
Indicadores 123 High y 123 Low
Para una detección automática de cada una de las figuras anteriores, Visual Chart cuenta con un par de indicadores que realizan ésta tarea. Estos indicadores, del mismo nombre que los patrones que estudian, representan sobre el gráfico las figuras y además marcan el momento de detección para poder desarrollar estrategias basadas en estos datos.
Pueden descargar los dos indicadores desde los siguientes enlaces:
Descargar indicador 123 High
Descargar indicador 123 Low
Como decimos, un patrón ABC se detecta algunas barras a la derecha de la aparición del patrón. Esto lo podemos ver a través de las marcas que dejan los indicadores 123 High y Low. En realidad, los indicadores marcan dos puntos cuando encuentran un nuevo patrón:
El Nivel 2 del patrón. Puesto que es el punto de ruptura que confirma la figura.
El Nivel 3 del patrón. Puesto que es el punto de soporte o resistencia de validez o nivel de cancelación.
Resumiendo. Los indicadores 123 High y Low dibujan las correspondientes figuras sobre el gráfico, si bien esta información no es aplicable desde el punto de vista del diseño de un sistema. Por ello, el indicador, además, marca sobre la barra de detección los niveles 2 y 3 del patrón, información que sí puede ser utilizada desde un sistema.
Estrategia Ruptura del Nivel 2
Esta estrategia va a utilizar la información dada por los dos anteriores indicadores para diseñar unas reglas de trading. Como herramienta de apoyo, utilizará además una media simple de 50 periodos. Las reglas a seguir serán las siguientes:
Entradas a LARGO.
1) El precio está en tendencia bajista (media de 50).
2) Aparece un patrón 123 Low.
3) El precio rompe el nivel 2 al alza.
4) StopLoss = Nivel de soporte (nivel 3).
5) Objetivo = Doble de la distancia entre el nivel 2 y el nivel 3.
Entradas a CORTO.
1) El precio está en tendencia alcista (media de 50).
2) Aparece un patrón 123 High.
3) El precio rompe el nivel 2 a la baja.
4)StopLoss = Nivel de resistencia (nivel 3).
5) Objetivo = Doble de la distancia entre el nivel 2 y el nivel 3.
Para calcular el objetivo, tomaremos de referencia el precio de entrada de cada operación y seguidamente le aplicaremos la distancia entre ambos niveles multiplicado por dos.
Por último, cabe mencionar que los niveles 2 y 3 se corresponden con las líneas 3 y 4 (respectivamente) de los dos indicadores.
El diseño del sistema sería el siguiente:
Código PDV
Código VBA
(NOTA: Recuerden que el código aquí expuesto sólo incluye los métodos OnCalculateBar() y OnInitCalculate(). Tengan esto en cuenta a la hora de copiar el sistema).
'¡¡ Parameters
Dim Contratos As Long '1
Dim HoraIni As Integer '900
Dim HoraFin As Integer '1900
Dim PeriodoMedia As Integer '50
Dim ObservationPeriod As Integer '10
Dim StrengthPivot As Integer '1
Dim NuMaxBHL2 As Integer '3
Dim NumaxBHL3 As Integer '2
'Parameters !!
Dim avdata As DataIdentifier
Dim h123data As DataIdentifier
Dim l123data As DataIdentifier
Dim signal As Integer
Dim top As Double
Dim bottom As Double
Dim hprice As Double
Dim lprice As Double
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
avdata = .GetIndicatorIdentifier(AvSimple, Data, PeriodoMedia, PriceClose)
h123data = .GetIndicatorIdentifier(HIGH123, Data, ObservationPeriod, StrengthPivot, NuMaxBHL2, NumaxBHL3)
l123data = .GetIndicatorIdentifier(LOW123, Data, ObservationPeriod, StrengthPivot, NuMaxBHL2, NumaxBHL3)
signal = 0
top = 0
bottom = 0
hprice = 0
lprice = 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 h2 As Double
Dim h3 As Double
Dim l2 As Double
Dim l3 As Double
Dim newsell As Boolean
Dim newbuy As Boolean
Dim gep As Double
gep = .GetEntryPrice()
avact = .GetIndicatorValue(avdata)
h2 = .GetIndicatorValue(h123data, 0, 3)
h3 = .GetIndicatorValue(h123data, 0, 4)
l2 = .GetIndicatorValue(l123data, 0, 3)
l3 = .GetIndicatorValue(l123data, 0, 4)
'tendencia alcista
If (.Close() > avact) Then
If (signal = 1) Then
signal = 0
End If
If (.GetMarketPosition() <> -1) Then
If (h2 <> NullValue) Then
signal = -1
hprice = h2
top = h3
End If
If (signal = -1) Then
If (.High() > top) Then
signal = 0
ElseIf (.Low() <= hprice) Then
.Sell AtClose, Contratos
newsell = True
gep = .Close()
signal = 0
End If
End If
End If
'tendencia bajista
ElseIf (.Close() < avact) Then
If (signal = -1) Then
signal = 0
End If
If (.GetMarketPosition() <> 1) Then
If (l2 <> NullValue) Then
signal = 1
lprice = l2
bottom = l3
End If
If (signal = 1) Then
If (.Low() < bottom) Then
signal = 0
ElseIf (.High() >= lprice) Then
.Buy AtClose, Contratos
newbuy = True
gep = .Close()
signal = 0
End If
End If
End If
End If
'salidas
If (.GetMarketPosition() = -1 Or newsell) Then
.ExitShort AtStop, Contratos, top
.ExitShort AtLimit, Contratos, gep - 2 * (top - hprice)
ElseIf (.GetMarketPosition() = 1 Or newbuy) Then
.ExitLong AtStop, Contratos, bottom
.ExitLong AtLimit, Contratos, gep + 2 * (lprice - bottom)
End If
Else
If (.GetMarketPosition() = -1) Then
.ExitShort AtClose, Contratos
ElseIf (.GetMarketPosition() = 1) Then
.ExitLong AtClose, Contratos
End If
End If
End With
End Sub
Comentarios
Publicar un comentario