Curso de Programación. 14.1. Ichimoku Kinko Hyo
Durante el siguiente tema de nuestro curso de programación vamos a hablar de uno de los indicadores más demandados en los últimos tiempos: El patrón Ichimoku.
Este instrumento fue desarrollado a principios del siglo XX por Goichi Hosoda, conocido popularmente por su seudónimo Ichimoku Sanjin, de ahí el nombre del indicador.
El indicador Ichimoku, cuya representación es especialmente peculiar, es una herramienta de análisis técnico muy completa que ofrece diferentes aspectos relativos al comportamiento del mercado.
La información fundamental que podemos extraer de él sería la siguiente:
Cabe destacar el uso del indicador como método para predecir la dirección del precio. Esto se debe al modo con el que queda representado, a través de lo que sería una nube de precios posibles (llamada Kumo). Cuando el subyacente se mueve fuera de ésta nube, alerta de un impulso lo bastante relevante como para alejar al valor de la nube de precios esperados. Este dato se considera de especial interés, especialmente porque dicha situación, desde el punto de vista visual, se detecta rápidamente.
1) Cuando la línea Tenkan cruce al alza la línea Kijun, entrar a largo.
Además, vamos a añadir la regla de confirmación siguiente: Cierre actual mayor que cierre de hace 26 barras en el caso alcista, o menor en el caso bajista.
Esta regla de confirmación surge como consecuencia de la interpretación de la línea Chikou. Ésta línea es una proyección hacia atrás del valor actual de cierre, por lo que para la operativa en tiempo real carecería de sentido observar el valor de la línea Chikou en el momento del cruce, ya que en tal caso estaríamos solicitando obtener el valor del cierre a 26 barras en el futuro: En su lugar, se observa si en el momento del cruce el precio se mueve en la misma dirección que dicho cruce con respecto a la situación del precio en el pasado. En la siguiente imagen queda explicado este hecho:
Para el diseño de éste sistema, vamos a usar la versión 2 del indicador, por tomar la última versión como referencia. El Ichimoku 2 pueden descargarlo accediendo al siguiente enlace:
El diseño del sistema quedaría de la siguiente forma:
Diseño PDV
Diseño 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 instrumento fue desarrollado a principios del siglo XX por Goichi Hosoda, conocido popularmente por su seudónimo Ichimoku Sanjin, de ahí el nombre del indicador.
El indicador Ichimoku, cuya representación es especialmente peculiar, es una herramienta de análisis técnico muy completa que ofrece diferentes aspectos relativos al comportamiento del mercado.
La información fundamental que podemos extraer de él sería la siguiente:
- Localización de soportes y resistencias.
- Dirección de la tendencia.
- Posibles puntos de entrada y salida.
- Representación del presente, pasado y futuro.
Cabe destacar el uso del indicador como método para predecir la dirección del precio. Esto se debe al modo con el que queda representado, a través de lo que sería una nube de precios posibles (llamada Kumo). Cuando el subyacente se mueve fuera de ésta nube, alerta de un impulso lo bastante relevante como para alejar al valor de la nube de precios esperados. Este dato se considera de especial interés, especialmente porque dicha situación, desde el punto de vista visual, se detecta rápidamente.
No nos vamos a extender mucho más en el uso del indicador Ichimoku, puesto que ya hemos hablado con anterioridad sobre él en este mismo blog (ver artículo). Por lo que pasaremos directamente a comentar la estrategia a seguir según las señales del indicador.
La definición de ésta estrategia sería la siguiente:
1) Cuando la línea Tenkan cruce al alza la línea Kijun, entrar a largo.
2) Cuando la línea Tenkan cruce a la baja la línea Kijun, entrar cortos.
Además, vamos a añadir la regla de confirmación siguiente: Cierre actual mayor que cierre de hace 26 barras en el caso alcista, o menor en el caso bajista.
Esta regla de confirmación surge como consecuencia de la interpretación de la línea Chikou. Ésta línea es una proyección hacia atrás del valor actual de cierre, por lo que para la operativa en tiempo real carecería de sentido observar el valor de la línea Chikou en el momento del cruce, ya que en tal caso estaríamos solicitando obtener el valor del cierre a 26 barras en el futuro: En su lugar, se observa si en el momento del cruce el precio se mueve en la misma dirección que dicho cruce con respecto a la situación del precio en el pasado. En la siguiente imagen queda explicado este hecho:
Para el diseño de éste sistema, vamos a usar la versión 2 del indicador, por tomar la última versión como referencia. El Ichimoku 2 pueden descargarlo accediendo al siguiente enlace:
El diseño del sistema quedaría de la siguiente forma:
Diseño PDV
Diseño 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).
'¡¡ Summary
' Classification: Curso
'Summary !!
'¡¡ Parameters
Dim Contratos As Long '1
Dim HoraIni As Integer '900
Dim HoraFin As Integer '1900
Dim ChikouPeriod As Integer '26
Dim TenkanSENPeriod As Integer '9
Dim KijunSENPeriod As Integer '26
Dim SenkouSPANProjection As Integer '26
Dim SenkouSPANA As Integer '52
Dim SenkouSPANB As Integer '26
'Parameters !!
Dim ichdata As DataIdentifier
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
ichdata = .GetIndicatorIdentifier(ICHKH2, Data, ChikouPeriod, TenkanSENPeriod, KijunSENPeriod, SenkouSPANProjection, SenkouSPANA, SenkouSPANB, 0)
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP
If (.Time >= HoraIni And .Time < HoraFin) Then
Dim tenkanact As Double
Dim kijunact As Double
Dim tenkanant As Double
Dim kijunant As Double
Dim kumosup As Double
Dim kumoinf As Double
tenkanact = .GetIndicatorValue(ichdata, 0, 2)
kijunact = .GetIndicatorValue(ichdata)
tenkanant = .GetIndicatorValue(ichdata, 1, 2)
kijunant = .GetIndicatorValue(ichdata, 1, 1)
kumosup = .GetIndicatorValue(ichdata, 0, 3)
kumoinf = .GetIndicatorValue(ichdata, 0, 4)
'control valor superior kumo
If (kumoinf > kumosup) Then
kumosup = .GetIndicatorValue(ichdata, 0, 4)
kumoinf = .GetIndicatorValue(ichdata, 0, 3)
End If
'entradas
If (.GetMarketPosition <> 1 And tenkanact > kijunact And tenkanant <= kijunant) Then
If (.Close() > .Close(ChikouPeriod)) Then
.Buy AtClose, Contratos
End If
End If
If (.GetMarketPosition <> -1 And tenkanact < kijunact And tenkanant >= kijunant) Then
If (.Close() < .Close(ChikouPeriod)) Then
.Sell AtClose, Contratos
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
¡Gracias!