Dentro de las herramientas de análisis técnico, los osciladores se
presentan como un interesante método para detectar zonas de debilitamiento de
tendencias. Al tratarse de herramientas cíclicas, el momento de aparición de
dichas zonas viene dado por la ruptura de los puntos más extremos de cada
oscilador, esto es, lo que comúnmente se conoce como zonas de sobrecompra y
sobreventa. No obstante, existe otro método de búsqueda de cambios de
tendencia: la aparición de divergencias entre el subyacente y el propio
oscilador. En el presente artículo analizaremos esta técnica usando como
ejemplo uno de los osciladores más habituales del mercado: el Relative Strength
Index o RSI.
Introducción al RSI
El RSI (Indicador de Fuerza
Relativa) calcula
la fuerza interna de un solo valor en términos porcentuales, de ahí que su
valor oscile entre cero y cien. Este
indicador realiza una serie de cálculos sobre los cierres de las últimas X
sesiones (normalmente 14 sesiones) y muestra la fuerza del movimiento
de la cotización. La interpretación básica es que cuanto más suba el precio,
mayor será el valor del RSI, y cuanto más baje, menor será su valor.
Lo
que plantea este indicador es que las subidas y bajadas tienen un periodo determinado de duración, a
partir del cual se estabiliza el precio e inicia una nueva fase. Generalmente, se considera que si una subida
alcanza un 70% u 80% de la fuerza relativa, entonces existe una alta
probabilidad de que dicho movimiento
empiece a debilitarse. En el caso de las bajadas, el porcentaje de
debilitamiento se sitúa entre un 30% o 20%. Estos niveles son los considerados
como zonas de sobrecompra y sobreventa.
El error de las zonas
de sobrecompra y sobreventa
El problema principal que supone hacer un seguimiento de
éste oscilador (así como de otro tipo de osciladores) es que la entrada en las
zonas de debilitamiento da buenos resultados en mercados laterales pero malos resultados en mercados en
tendencia.
Las señales pierden fiabilidad cuando el mercado está en
tendencia debido a que los ciclos de subida y bajada del precio tienen una
mayor duración. Este fenómeno (el de la prolongación de las tendencias) no es
detectado por el oscilador hasta que no sucede, por lo que su poder de
anticipación queda deteriorado.
En el gráfico 1 podemos encontrar un ejemplo de ello.
Entre 2011 y 2012, el RSI marca tres zonas de agotamiento, las cuales confirman
correctamente el cambio de inercia del activo. Sin embargo, a partir de 2013 se
inicia una fase alcista que da lugar al error en el oscilador. Esto sucede
porque en comparación con los últimos precios dados, la fuerza del movimiento
de subida supera con creces el rango que se ha estipulado para marcar los
niveles de sobrecompra.
Debido a esto, muchos pueden pensar que la aplicación del
RSI como método de estudio implica un riesgo demasiado alto. No obstante, hay
dos maneras de aprovechar la información dada por el indicador disminuyendo el
error:
1) Aplicar un
filtro de volatilidad utilizando una herramienta de detección de la
volatilidad (como por ejemplo el ADX). Este indicador va a permitir distinguir
entre las zonas laterales y las zonas tendenciales, de modo que puede servir de
filtro para las señales dadas por el propio RSI.
2) Seguir las
divergencias del RSI con el precio. Es decir, que en lugar de estudiar las
zonas de sobrecompra y sobreventa, se realizará un seguimiento de las
divergencias.
De las dos, la segunda opción se considera como el método
más fiable para marcar el final de una tendencia, de modo que nos centraremos
en esta idea.
Las divergencias en el
RSI.
J. Welles Wilder,
creador del original RSI, llevó a cabo en su libro New Concepts in Technical Trading Systems la definición de las
divergencias.
Según indicó Welles Wilder, las señales de divergencias indican un punto potencial de
giro en el comportamiento de los precios de cualquier activo porque el
impulso direccional no acompaña al precio.
En lo que respecta al RSI, el autor determinó dos tipos
de divergencias en función de la señal de cambio de tendencia que va a
pronosticar:
1) Una divergencia
alcista ocurre cuando el precio marca un mínimo decreciente mientras que el
indicador marca un nuevo mínimo creciente. Es decir, que lo que nos informa el
RSI es que aunque los precios prolongan el movimiento previo de caída, el
indicador de fuerza nos avisa de que ese último mínimo posee una menor fuerza
bajista que el mínimo anterior, lo cual es un claro síntoma de debilidad
bajista.
2) Una divergencia
bajista ocurre cuando el precio marca un máximo creciente mientras que el
indicador marca un nuevo máximo decreciente. La situación es igual que la
indicada anteriormente pero en el polo opuesto.
Cabe destacar que estas divergencias sólo deben
considerarse cuando aparecen tras un impulso en el sentido opuesto: por tanto,
la divergencia alcista siempre debe ir precedida de un impulso bajista,
mientras que la divergencia bajista debe ir precedida de un impulso alcista.
La manera en la que Wilder interpretaba una correcta
aparición de divergencia venía determinada por el momento en el que se
encontraba inmerso el RSI:
1) La divergencia
alcista debía aparecer estando el RSI en zona de sobreventa.
2) La divergencia
bajista debía aparecer estando el RSI en zona de sobrecompra.
No obstante, podemos encontrar otro tipo de señales de
divergencia en lo que podríamos llamar como divergencias de continuación de tendencia. Este tipo de
divergencias fueron explicadas por Andrew
Cardwell, a las que denominó como Positive/Negative
Reversal, y denotan ciertas diferencias respecto a las ideas planteadas por
Wilder:
1) La divergencia
positive reversal es una divergencia que aparece cuando el RSI marca un
nuevo mínimo decreciente y es el activo el que marca un nuevo mínimo creciente.
2) La divergencia
negative reversal es una divergencia que aparece cuando el RSI marca un
nuevo máximo creciente y es el activo el que marca un nuevo máximo decreciente.
Otro aspecto característico de las reversals de Cardwell
es que éstas deben aparecer durante los niveles medios del RSI:
1) La divergencia
positive reversal aparece estando el RSI entre 50 y la
zona de sobreventa (30).
2) La divergencia
negative reversal aparece estando el RSI entre 50 y la
zona sobrecompra (70).
En el gráfico 2 podemos ver algunos de los tipos de
divergencias especificadas.
Vista la parte teórica del estudio de las divergencias,
lo especialmente importante es analizar el nivel de fiabilidad de las mismas.
Para ello, el mejor recurso es poder diseñar herramientas capaces de calcularlas,
de modo que pueda cuantificarse la tasa de acierto y fallo de dicho método.
En el siguiente punto de éste artículo vamos a resolver
esta tarea utilizando como plataforma de referencia Visual Chart 5.
Automatización de las divergencias del RSI en Visual Chart.
Una buena manera de estudiar las divergencias es diseñar un indicador que las detecte,
de manera que podamos visualizar sobre el gráfico los puntos de aparición de
divergencias.
A la hora de automatizar la búsqueda de divergencias, el
indicador deberá seguir una serie de estrictos pasos que definirán las reglas
de detección:
Paso 1. Posición
del RSI.
El indicador sólo buscará divergencias alcistas cuando el
RSI esté POR DEBAJO DE 50.
El indicador sólo buscará divergencias bajistas cuando el
RSI esté POR ENCIMA DE 50.
Paso 2. Detección
de los swings del RSI.
El indicador buscará dos topes del RSI seguidos.
Consideraremos como tope(o swing) a aquellos máximos y mínimos relevantes que
aparezcan en el activo.
En Visual Chart, los topes se extraen a través de las
funciones Swing High y Swing Low aplicadas sobre el Relative
Strength Index.
Paso 3. Comparación
con el Subyacente.
Si aparecen dos topes mínimos seguidos estando el RSI por
debajo de 50.
Con la referencia de dichos mínimos, observamos los
mínimos del precio en esa misma altura. Hecho esto, puede pasar lo siguiente:
a) Si los mínimos del precio son decrecientes y los del
RSI son crecientes, damos señal de divergencia alcista (siempre y cuando el RSI
esté en sobreventa).
b) Si los mínimos del precio son crecientes y los del RSI
son decrecientes, damos señal de divergencia alcista del tipo positive
reversal (siempre y cuando el RSI no
esté en sobreventa).
Paso 4. Repetir el
paso 3 con los máximos.
El proceso sería el mismo para el caso bajista.
En este mismo artículo podemos encontrar el código de
programación del indicador para Visual Chart 5. Esta herramienta pinta una
línea cero que sólo cambia cuando aparece una divergencia. Para distinguir
entre las divergencias de Wilder y las divergencias de Cardwell, el indicador
marca 1 o -1 cuando se trata de las divergencias de tipo reversal y 2 o -2
cuando se trata de las divergencias de Wilder.
En el gráfico 2 podemos ver cómo cambia el indicador ante
la aparición de cada una de las divergencias. En el punto A, aparece una
divergencia negative reversal, de ahí que el valor del indicador pase a -1. En
los puntos B y C aparecen divergencias de Wilder, de ahí que los valores dados
sean 2 y -2.
En el gráfico 3 vemos otro ejemplo de aplicación de éste
indicador. El punto A marca una divergencia bajista de Wilder (marca un -2),
puesto que se produce en la zona de sobrecompra, el RSI marca máximos
decrecientes y el precio máximos crecientes. En este caso, vemos que
efectivamente se cumple el debilitamiento del movimiento alcista. El punto B se
trata de un caso de divergencia alcista de Wilder (marca un 2), puesto que,
como vemos, ocurre con el RSI en sobreventa y marcando nuevos mínimos
crecientes.
Conclusiones.
El estudio de las divergencias del RSI está muy extendido,
si bien se suele realizar de forma manual, puesto que permite una mayor
flexibilidad que la automatización de dichas señales. No obstante, el
seguimiento de éstas mediante herramientas mecánicas ofrece una mayor
fiabilidad al eliminar la carga subjetiva, lo cual se traduce en un número
menor de señales. Por último, debemos considerar el uso de otro tipo de
indicadores como el ADX (indicadores de volatilidad) como filtro de
confirmación para aumentar la efectividad de la herramienta.
G1) Indicador RSI en Activision Blizzard Diario.
En éste gráfico de Activision
a 1 día, hemos aplicado el indicador RSI(14). En los puntos A, B y C, vemos que
detecta correctamente el agotamiento de la tendencia previa. El punto D marca
como zona sobrecompra, si bien vemos que se inicia un movimiento ascendente de
larga duración. Posteriormente, vuelve a tocar un par de veces la zona de
sobrecompra, con idéntico resultado. Este error es común en zonas tendenciales.
Fuente:
Visual Chart
G2) Divergencias del RSI en AUD/JPY 1 minuto.
En éste gráfico FOREX de
AUD/JPY a 1 minuto, podemos algunos
ejemplos de divergencias. En el punto A, el RSI se sitúa bajo 50 pero por
encima de la zona de sobreventa. El RSI marca máximos crecientes, mientras que
el precio marca máximos decrecientes, por tanto, se trata de un negative
reversal divergence, lo que indica que el precio continuará descendiendo. Los
casos B y C, correspondientes a las divergencias de Wilder, se producen en las
zonas de agotamiento y marcan cambio de tendencia.
Fuente:
Visual Chart
G3) Divergencias del RSI en AEX-25 FUT. CONT. 10 minutos.
El siguiente gráfico del
futuro continuo del AEX-25 incluye el RSI y el indicador de divergencias del
RSI. En el punto A vemos como el indicador de divergencias marca un -2,
avisando de una divergencia bajista de Wilder. Si nos fijamos en el gráfico,
efectivamente confirmamos que se generan nuevos máximos crecientes mientras que
el RSI marca máximos decrecientes. En el punto B podemos ver la situación
opuesta.
Fuente:
Visual Chart
Código de programación
RSI DIVERGENCES INDEX PARA
VISUAL CHART 5.
'¡¡ Parameters
Dim Period As Integer '14
Dim UpperBand As Double '70
Dim CenterBand As Double '50
Dim LowerBand As Double '30
Dim Strength As Long '5
'Parameters !!
Option Explicit
Dim RSIData As Long
Private Type TipoZona
Cross As Integer
PSwing1 As Double
PSwing2 As Double
BarSwing1 As Long
ThereIsSwing1 As Boolean
End Type
Dim Zones() As TipoZona
Dim Zones2() As TipoZona
Dim LastBar As Long
Public APP As OscUserApp
Implements Indicator
Public Sub
Indicator_OnInitCalculate()
With APP
RSIData = .GII(RSI, Data, Period, 70, 30)
ReDim Zones(1)
LastBar = -1
.SetLineName 1, "Div_Signal"
.StartBar = 0
End With
End Sub
Public Sub
Indicator_OnCalculateBar(ByVal Bar As Long)
With APP
Dim RSIact As Double: Dim RSIant As Double
Dim BPUP As Double: Dim BPDOWN As Double: Dim DivSignal As Integer
Dim Max1 As Double: Dim Max2 As Double: Dim
BMaxAux As Double
Dim Min1 As Double: Dim Min2 As Double: Dim
BMinAux As Double
'real time control
If LastBar <> Bar Then Zones2 = Zones
If LastBar = Bar Then Zones = Zones2
RSIact = Math.Round(.GIV(RSIData), 3)
RSIant = Math.Round(.GIV(RSIData, 1, 1), 3)
BPUP = .GetSwingHighBar(RSIData, 1,
PriceClose, Strength, Strength * 10)
BPDOWN = .GetSwingLowBar(RSIData, 1,
PriceClose, Strength, Strength * 10)
If (RSIant <= CenterBand And RSIact >
CenterBand) Then
Zones(1).Cross = 1
Zones(0).Cross = 1
Zones(0).ThereIsSwing1 = False
ElseIf (RSIant >= CenterBand And RSIact
< CenterBand) Then
Zones(0).Cross = -1
Zones(1).Cross = -1
Zones(1).ThereIsSwing1 = False
End If
'bearish divergences
If (Zones(0).Cross = 1) Or (Zones(0).Cross
= -1 And Zones(0).ThereIsSwing1) Then
If BPUP = Strength Then
If Zones(0).ThereIsSwing1 Then
If Zones(0).BarSwing1 < Bar
- Strength Then
'check divergence
Zones(0).PSwing2 =
Math.Round(.GIV(RSIData, Strength), 3)
Max1 = .High(Bar -
Zones(0).BarSwing1)
Max2 = .High(Strength)
BMaxAux =
.GetHighestBar(Data, PriceHigh, Bar - Zones(0).BarSwing1)
If ((Bar -
Zones(0).BarSwing1) - BMaxAux) <= (BMaxAux - Strength) Then
If (.High(BMaxAux) >
Max1) Then Max1 = .High(BMaxAux)
Else
Max2 = .High(BMaxAux)
End If
'wilder's bearish
divergence
If (Zones(0).PSwing2 <
Zones(0).PSwing1) And (Zones(0).PSwing2 >= UpperBand) Then
If Max2 >= Max1 Then
DivSignal = -2
End If
'negative reversal
divergence
ElseIf (Zones(0).PSwing2
> Zones(0).PSwing1) And (Zones(0).PSwing2 < UpperBand) Then
If Max2 <= Max1 Then
DivSignal = -1
End If
End If
End If
Else
Zones(0).BarSwing1 = Bar -
Strength
Zones(0).PSwing1 =
Math.Round(.GIV(RSIData, Strength), 3)
Zones(0).ThereIsSwing1 = True
End If
End If
If Zones(0).Cross = -1 Then
Zones(0).Cross = 0
End If
'bullish divergences
If Zones(1).Cross = -1 Or (Zones(1).Cross =
1 And Zones(1).ThereIsSwing1) Then
If BPDOWN = Strength Then
If Zones(1).ThereIsSwing1 Then
If Zones(1).BarSwing1 < Bar
- Strength Then
'check divergence
Zones(1).PSwing2 =
Math.Round(.GIV(RSIData, Strength), 3)
Min1 = .Low(Bar -
Zones(1).BarSwing1)
Min2 = .Low(Strength)
BMinAux =
.GetLowestBar(Data, PriceLow, Bar - Zones(1).BarSwing1)
If ((Bar -
Zones(1).BarSwing1) - BMinAux) <= Math.Abs(BMinAux - Strength) Then
If (.Low(BMinAux) <
Min1) Then Min1 = .Low(BMinAux)
Else
Min2 = .Low(BMinAux)
End If
'wilder's bullish
divergence
If (Zones(1).PSwing2 >
Zones(1).PSwing1) And (Zones(1).PSwing2 <= LowerBand) Then
If Min2 <= Min1 Then
DivSignal = 2
End If
'positive reversal
divergence
ElseIf (Zones(1).PSwing2
< Zones(1).PSwing1) And (Zones(1).PSwing2 > LowerBand) Then
If Min2 >= Min1 Then
DivSignal = 1
End If
End If
End If
Else
Zones(1).BarSwing1 = Bar -
Strength
Zones(1).PSwing1 =
Math.Round(.GIV(RSIData, Strength), 3)
Zones(1).ThereIsSwing1 = True
End If
End If
If Zones(1).Cross = 1 Then
Zones(1).Cross = 0
End If
'Paint signal
.SetIndicatorValue DivSignal, 1
LastBar = Bar
End With
End Sub




No hay comentarios:
Publicar un comentario