Curso Programación 15.2. Los Patrones Harami y Piercing Line.
Finalizamos el estudio de patrones de velas japonesas con dos ejemplos de patrones compuestos. El patrón Harami y el patrón Piercing Line.
El Patrón Harami
Este patrón es uno de los más utilizados, debido a su versatilidad y al mayor número de situaciones en el que nos lo podemos encontrar.
El patrón Harami está compuesto por dos velas que tienen la siguiente forma:
1. Una vela grande que normalmente tendrá el mismo color que la tendencia previa.
2. Una vela pequeña que queda dentro del cuerpo real de la primera vela.
Lo más interesante del patrón es la capacidad para detectar tanto cambios de tendencia como continuación de la misma. Esto depende de la posición de la vela pequeña respecto a la primera.
La detección del patrón puede agilizarse utilizando el indicador del mismo nombre que tienen disponible y que pueden descargar accediendo al siguiente enlace:
Indicador Patrón Harami
En este artículo no sólo encontrarán el archivo de descarga del indicador, sino además una completa descripción de cómo se detecta esta figura en el gráfico.
El patrón Piercing Line
En este caso estamos ante un patrón exclusivamente de cambio de tendencia alcista. La figura aparece durante una fase de agotamiento bajista e informa de un contrataque alcista con posibilidad de cambio de tendencia.
El patrón Piercing Line está compuesto por dos velas que tienen la siguiente forma:
1. Una vela negra y grande.
2. Una segunda vela que abre bajo el mínimo de la negra.
3. Segunda vela es blanca y grande, cerrando en al menos la mitad de la vela negra.
Al igual que en el caso del anterior patrón, existe un indicador que permite agilizar la búsqueda del Piercing Line. Pueden descargar este indicador desde el siguiente enlace:
Indicador Piercing Line
En esta página encontrarán tanto una explicación del funcionamiento del patrón como el archivo de descarga del indicador correspondiente.
Tanto en uno como en otro indicador, su valor cambia a dos cuando encuentra una nueva figura. Esta información tan sencilla será la que usemos en la estrategia de ejemplo. Veamos a continuación cómo diseñarla.
Estrategia cruce de medias con Harami y Piercing Line.
La definición de éste sistema sería la siguiente:
Entrada a Largo. Cuando las dos medias crucen al alza nos posicionamos a largo si aparece un patrón previamente a la señal de cruce. Si las medias vuelven a cruzarse a la baja, deshacemos la posición.
Entrada a Corto. Cuando las dos medias crucen a la baja nos posicionamos a corto si aparece un patrón previamente a la señal de cruce. Si las medias vuelven a cruzarse al alza, deshacemos la posición.
Aunque el patrón Harami puede detectar tanto cambios de tendencia como continuaciones de ésta, para éste sistema, nos vamos a quedar sólo con las señales de giro.
El proceso a seguir para desarrollar las reglas de entrada a largo sería el siguiente.
1) Localizar un patrón Harami Alcista o Piercing Line durante una fase bajista.
2) Esperar al cruce alcista para entrar comprados.
Mientras esperamos al cruce alcista de las medias, debe cumplirse que el mínimo del patrón no haya sido superado, puesto que de ese modo su señal permanece vigente. En otro caso se despreciaría la señal dada por la figura y no operaríamos.
Para las reglas de entrada a corto sería similar, con la diferencia de que no nos fijaremos en el patrón Piercing Line, puesto que éste patrón es exclusivamente de tendencia alcista.
El diseño del sistema quedaría de la siguiente manera:
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).
patternsignal = 1
minpattern = .Low()
El Patrón Harami
Este patrón es uno de los más utilizados, debido a su versatilidad y al mayor número de situaciones en el que nos lo podemos encontrar.
El patrón Harami está compuesto por dos velas que tienen la siguiente forma:
1. Una vela grande que normalmente tendrá el mismo color que la tendencia previa.
2. Una vela pequeña que queda dentro del cuerpo real de la primera vela.
Lo más interesante del patrón es la capacidad para detectar tanto cambios de tendencia como continuación de la misma. Esto depende de la posición de la vela pequeña respecto a la primera.
La detección del patrón puede agilizarse utilizando el indicador del mismo nombre que tienen disponible y que pueden descargar accediendo al siguiente enlace:
Indicador Patrón Harami
En este artículo no sólo encontrarán el archivo de descarga del indicador, sino además una completa descripción de cómo se detecta esta figura en el gráfico.
El patrón Piercing Line
En este caso estamos ante un patrón exclusivamente de cambio de tendencia alcista. La figura aparece durante una fase de agotamiento bajista e informa de un contrataque alcista con posibilidad de cambio de tendencia.
El patrón Piercing Line está compuesto por dos velas que tienen la siguiente forma:
1. Una vela negra y grande.
2. Una segunda vela que abre bajo el mínimo de la negra.
3. Segunda vela es blanca y grande, cerrando en al menos la mitad de la vela negra.
Al igual que en el caso del anterior patrón, existe un indicador que permite agilizar la búsqueda del Piercing Line. Pueden descargar este indicador desde el siguiente enlace:
Indicador Piercing Line
En esta página encontrarán tanto una explicación del funcionamiento del patrón como el archivo de descarga del indicador correspondiente.
Tanto en uno como en otro indicador, su valor cambia a dos cuando encuentra una nueva figura. Esta información tan sencilla será la que usemos en la estrategia de ejemplo. Veamos a continuación cómo diseñarla.
Estrategia cruce de medias con Harami y Piercing Line.
La definición de éste sistema sería la siguiente:
Entrada a Largo. Cuando las dos medias crucen al alza nos posicionamos a largo si aparece un patrón previamente a la señal de cruce. Si las medias vuelven a cruzarse a la baja, deshacemos la posición.
Entrada a Corto. Cuando las dos medias crucen a la baja nos posicionamos a corto si aparece un patrón previamente a la señal de cruce. Si las medias vuelven a cruzarse al alza, deshacemos la posición.
Aunque el patrón Harami puede detectar tanto cambios de tendencia como continuaciones de ésta, para éste sistema, nos vamos a quedar sólo con las señales de giro.
El proceso a seguir para desarrollar las reglas de entrada a largo sería el siguiente.
1) Localizar un patrón Harami Alcista o Piercing Line durante una fase bajista.
2) Esperar al cruce alcista para entrar comprados.
Mientras esperamos al cruce alcista de las medias, debe cumplirse que el mínimo del patrón no haya sido superado, puesto que de ese modo su señal permanece vigente. En otro caso se despreciaría la señal dada por la figura y no operaríamos.
Para las reglas de entrada a corto sería similar, con la diferencia de que no nos fijaremos en el patrón Piercing Line, puesto que éste patrón es exclusivamente de tendencia alcista.
El diseño del sistema quedaría de la siguiente manera:
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 TendencyPeriod As Integer '5
Dim LengthFactor As Double '15
Dim PeriodoCorta As Integer '2
Dim PeriodoLarga As Integer '15
'Parameters !!
Dim avcortadata As DataIdentifier
Dim avlargadata As DataIdentifier
Dim hamdata As DataIdentifier
Dim plinedata As DataIdentifier
Dim patternsignal As Integer
Dim minpattern As Double
Dim maxpattern As Double
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
avcortadata = .GetIndicatorIdentifier(AvSimple, Data, PeriodoCorta, PriceClose)
avlargadata = .GetIndicatorIdentifier(AvSimple, Data, PeriodoLarga, PriceClose)
hamdata = .GetIndicatorIdentifier(HAP, Data, TendencyPeriod, 2, -2, 0, 0)
plinedata = .GetIndicatorIdentifier(PIERCINGL, Data, TendencyPeriod, LengthFactor, 0)
patternsignal = 0
minpattern = 0
maxpattern = 0
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP
If (.Time >= HoraIni And .Time < HoraFin) Then
Dim avcortaact As Double
Dim avlargaact As Double
Dim hambull As Double
Dim hambear As Double
Dim plinesignal As Double
avcortaact = .GetIndicatorValue(avcortadata)
avlargaact = .GetIndicatorValue(avlargadata)
hambull = .GetIndicatorValue(hamdata)
hambear = .GetIndicatorValue(hamdata, 0, 2)
plinesignal = .GetIndicatorValue(plinedata)
'tendencia bajista
If (avcortaact < avlargaact) Then
If (.GetMarketPosition() = 1) Then
.ExitLong AtClose, Contratos
End If
If (patternsignal = 1) Then
If (.Low() < minpattern) Then
patternsignal = 0
End If
End If
If (patternsignal = 0) Then
If (hambull = 2) Then
patternsignal = 1
minpattern = .Low(1)
ElseIf
(plinesignal = 2) Thenpatternsignal = 1
minpattern = .Low()
End If
End If
If (patternsignal = -1 And .GetMarketPosition() <> -1) Then
.Sell AtClose, Contratos
patternsignal = 0
End If
'tendencia alcista
ElseIf (avcortaact > avlargaact) Then
If (.GetMarketPosition() = -1) Then
.ExitShort AtClose, Contratos
End If
If (patternsignal = -1) Then
If (.High() > maxpattern) Then
patternsignal = 0
End If
End If
If (patternsignal = 0) Then
If (hambear = -2) Then
patternsignal = -1
maxpattern = .High(1)
End If
End If
If (patternsignal = 1 And .GetMarketPosition() <> 1) Then
.Buy AtClose, Contratos
patternsignal = 0
End If
End If
Else
If (.GetMarketPosition = 1) Then
.ExitLong AtClose, Contratos
ElseIf (.GetMarketPosition = -1) Then
.ExitShort AtClose, Contratos
End If
End If
End With
End Sub
Comentarios
Publicar un comentario