Curso de Programación. 6.2. Bandas de Bollinger
Abordamos durante este artículo el segundo bloque dedicado al estudio de las Bandas de Bollinger.
Durante el mismo, vamos a analizar un segundo método de entrada que, en esta ocasión, tratará de aprovechar las señales de agotamiento ofrecidas por el indicador.
Les recuerdo que pueden encontrar e nuestro blog un ejercicio asociado al tema: Ejercicio BOLLINGER.
6.4. Niveles de sobrecompra/sobreventa
Como ya comentamos en el primer bloque, cuando los precios aparecen fuera del canal determinado por las bandas de Bollinger, se considera que el activo ha abandonado el rango normal esperado, pudiendo interpretarse esta información como momentos de sobrecompra y sobreventa.
Sin embargo, cabe destacar que cuando se inicia un nuevo impulso, por lo general, el movimiento comenzará fuera de la zona de influencia del canal, como consecuencia de un cambio en la volatilidad del activo. Si nada más empezar el rallie ya estamos considerando que se encuentra en las zonas de agotamiento, ¿no estaremos siendo demasiado exigentes?
Una buena técnica para exigir cierta madurez en el impulso antes de considerar la llegada de las zonas de debilitamiento, consiste en analizar no sólo la posición del precio con respecto al valor de las bandas del canal, sino también un cambio en la amplitud del canal. Dicho de otro modo, vamos a esperar a que se produzca un incremento de la volatilidad que nos confirme que ya se ha iniciado el proceso de distribución:
6.5. Estrategia Antitendencia
Una vez hemos aclarado cómo vamos a detectar la aparición de las zonas de agotamiento, vamos a proceder a diseñar una estrategia que utilice ésta información. Hemos llamado a la estrategia antitendencia debido a que realmente vamos a tratar de adelantarnos al cambio de dirección del precio. Para ello, colocaremos sendas órdenes de stop en los niveles determinados por las bandas siguiendo los siguientes criterios:
1) Cuando detectemos la zona de sobrecompra, colocaremos una orden a corto x puntos por debajo de la banda superior de Bollinger.
2) Cuando detectemos la zona de sobreventa, colocaremos una orden a largo x puntos por encima de la banda inferior de Bollinger.
Mediante estas órdenes, trataremos de aprovechar los movimientos de retroceso generados por la salida de las zonas de agotamiento.
Cubriremos pérdidas con un stop loss a una distancia igual a la amplitud entre las bandas y la media. Como objetivo, nos marcaremos alcanzar la banda contraria.
Veamos a continuación cómo quedaría el sistema:
Diseño PDV
Diseño VBA
Durante el mismo, vamos a analizar un segundo método de entrada que, en esta ocasión, tratará de aprovechar las señales de agotamiento ofrecidas por el indicador.
Les recuerdo que pueden encontrar e nuestro blog un ejercicio asociado al tema: Ejercicio BOLLINGER.
6.4. Niveles de sobrecompra/sobreventa
Como ya comentamos en el primer bloque, cuando los precios aparecen fuera del canal determinado por las bandas de Bollinger, se considera que el activo ha abandonado el rango normal esperado, pudiendo interpretarse esta información como momentos de sobrecompra y sobreventa.
Sin embargo, cabe destacar que cuando se inicia un nuevo impulso, por lo general, el movimiento comenzará fuera de la zona de influencia del canal, como consecuencia de un cambio en la volatilidad del activo. Si nada más empezar el rallie ya estamos considerando que se encuentra en las zonas de agotamiento, ¿no estaremos siendo demasiado exigentes?
Una buena técnica para exigir cierta madurez en el impulso antes de considerar la llegada de las zonas de debilitamiento, consiste en analizar no sólo la posición del precio con respecto al valor de las bandas del canal, sino también un cambio en la amplitud del canal. Dicho de otro modo, vamos a esperar a que se produzca un incremento de la volatilidad que nos confirme que ya se ha iniciado el proceso de distribución:
6.5. Estrategia Antitendencia
Una vez hemos aclarado cómo vamos a detectar la aparición de las zonas de agotamiento, vamos a proceder a diseñar una estrategia que utilice ésta información. Hemos llamado a la estrategia antitendencia debido a que realmente vamos a tratar de adelantarnos al cambio de dirección del precio. Para ello, colocaremos sendas órdenes de stop en los niveles determinados por las bandas siguiendo los siguientes criterios:
1) Cuando detectemos la zona de sobrecompra, colocaremos una orden a corto x puntos por debajo de la banda superior de Bollinger.
2) Cuando detectemos la zona de sobreventa, colocaremos una orden a largo x puntos por encima de la banda inferior de Bollinger.
Mediante estas órdenes, trataremos de aprovechar los movimientos de retroceso generados por la salida de las zonas de agotamiento.
Cubriremos pérdidas con un stop loss a una distancia igual a la amplitud entre las bandas y la media. Como objetivo, nos marcaremos alcanzar la banda contraria.
Veamos a continuación cómo quedaría el sistema:
Diseño PDV
Diseño VBA
'¡¡ Parameters
Dim Contratos As Long '1
Dim Periodo As Integer '25
Dim Coeficiente As Double '2
Dim MargenVol As Double '100
Dim filtro As Double '2
'Parameters !!
Dim BollData As DataIdentifier
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
BollData = .GetIndicatorIdentifier(BollingerBands, Data, Periodo, Coeficiente, PriceClose, AvgSimple)
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP
Dim BollSup As Double
Dim BollInf As Double
Dim BollMed As Double
Dim gmp As Integer
Dim gep As Double
BollMed = .GetIndicatorValue(BollData, 0, 1)
BollSup = .GetIndicatorValue(BollData, 0, 2)
BollInf = .GetIndicatorValue(BollData, 0, 3)
gmp = .GetMarketPosition
gep = .GetEntryPrice
'-- Ordenes de salida
If gmp = 1 Then
'¿alcanza banda superior?
If (.Close >= BollSup) Then
.ExitLong AtClose, Contratos
Else
.ExitLong AtStop, Contratos, gep - (BollMed - BollInf)
End If
ElseIf gmp = -1 Then
'¿alcanza banda inferior?
If (.Close <= BollInf) Then
.ExitShort AtClose, Contratos
Else
.ExitShort AtStop, Contratos, gep + (BollSup - BollMed)
End If
End If
'-- Control cumple regla aumenta la volatilidad
If (BollSup - BollInf) >= MargenVol Then
If gmp <> -1 Then
'-- Vender sólo si supera el nivel superior
If (.Close > BollSup) Then
.Sell AtStop, Contratos, BollSup - filtro
End If
End If
If gmp <> 1 Then
'-- Comprar sólo si supera el nivel inferior
If (.Close < BollInf) Then
.Buy AtStop, Contratos, BollInf + filtro
End If
End If
End If
End With
End Sub
Comentarios
Publicar un comentario