En anteriores artículos, poníamos el acento sobre ciertas herramientas
de análisis técnico que nos proporcionan información relativa al ciclo de vida
de los impulsos. Entre ellas, encontrábamos el oscilador de Tasa de Cambio, así como el oscilador
Momentum. La información que nos proporcionan estas herramientas es
especialmente interesante cuando se trata de estudiar la evolución del precio,
destacando los momentos de máxima
amplitud. Localizar dichos puntos es sumamente interesante, puesto que
suponen el punto de partida (o fin) de un ciclo. En el presente artículo, presentamos
una nueva herramienta para el estudio de la amplitud, sobre la cual
destacaremos su capacidad para normalizar los resultados, independientemente de
la compresión temporal o del producto financiero sobre el que la apliquemos.
El origen del indicador
El
origen de éste indicador lo
encontramos en el artículo de Glenn A.
Barlis Signal Processing Basics, Part
3(Stocks & Commodities, Junio 2010). En dicho artículo, el autor
nos proponía buscar los puntos de giro del precio mediante osciladores. Entre
ellos, destacaba el indicador Momentum,
puesto que es una buena herramienta para marcar los puntos de máxima diferencia
(si bien éste indicador aporta la misma información que el indicador de Tasa de Cambio o ROC, por lo que cualquiera de los dos nos sería válido).
La
aportación del Momentum consiste en
marcar la diferencia entre los precios dentro de un periodo de tiempo
determinado. El resultado es un oscilador que traza picos y valles sobre los
puntos de mayor variación.
Glenn
A. Barlis proponía aplicarle un par de medias móviles con el fin de suavizar la
señal dada, y de éste modo, tratar de eliminar el mayor ruido posible. Es
decir, tratamos de filtrar los picos y valles facilitados por el Momentum quedándonos tan solo con los
más representativos. Obviamente, al calcular las medias, se retrasa el momento
de detección, pero es un riesgo asumible a cambio de mejorar la fiabilidad del
indicador.
El periodo
de tiempo utilizado para el cálculo de dichas medias se obtiene en base al
propio periodo de estudio del Momentum.
En concreto, la primera media tendrá un periodo igual al doble del periodo
aplicado al Momentum (2N). En cuanto
a la segunda media, su periodo siempre debe ser un valor mayor al de la
primera, puesto que se trata de una media más lenta y por tanto a más largo
plazo. Un buen valor que se puede aplicar es el de 3 veces el periodo del Momentum (2 ×
N = 3N).
A
diferencia del estudio sobre el Momentum,
en el cual observábamos los picos y valles generados por el propio indicador,
en este caso nos fijaremos en el
movimiento generado por la diferencia entre las medias. Por tanto, el valor
a representar será la variación entre la media de menor periodo y la de mayor
periodo.
Si
nos fijamos, por su similitud, lo que vamos a obtener es un indicador Moving Average Convergence/Divergence (o
MACD) aplicado sobre el Momentum.
Siguiendo
con ésta idea, el autor consideraba la posibilidad de crear un segundo juego de
medias de mayor periodo con las que obtener un nuevo indicador de tipo MACD. Este nuevo indicador suavizaría,
si cabe más, los puntos de giro del Momentum.
En realidad, lo que buscaremos con éste MACD
de mayor periodo es usarlo como señal de alerta frente a los resultados del
primer MACD.
La
combinación de ambos indicadores de tipo MACD
aplicados al Momentum es a lo que
hemos pasado a denominar como MACD
Momentum. El cual quedaría así:
Fast MACD Momentum = MACD(Momentum, 2N, (2N) X 1.5, 1,
Cierre, 0)
Slow
MACD Momentum = MACD(Momentum, 4N, (4N) X 1.5 , 1, Cierre, 0)
Donde N = Periodo del indicador de momentos.
Llamaremos Fast
MACD Momentum al indicador MACD que se mueve más rápido y Slow MACD Momentum al que se mueve con
mayor lentitud (más suavizado).
Como vemos, el Slow
MACD Momentum se calcularía aplicando cuatro veces el periodo N, mientras
que la segunda media del Slow sería
de 6 veces el periodo N.
Una vez hemos explicado el cálculo de la herramienta,
pasemos a ver cómo es su funcionamiento.
Estudio de la señales del MACD Momentum.
Los puntos de giro que trataremos de detectar usando el MACD Momentum se basarán en los picos y
valles generados por el Slow MACD.
Cuando el Slow MACD
traza un pico sobre la línea cero, pone de manifiesto el fin del impulso
alcista y un movimiento posterior a la baja.
Cuando el Slow MACD
traza un valle bajo la línea cero, informa del fin del impulso bajista y un
movimiento posterior al alza.
El cruce del Slow
MACD sobre el Fast MACD sirve de señal de confirmación.
Un ejemplo de ello lo vemos en el gráfico 1. En dicho
gráfico, observamos cómo en el punto E se genera la formación de un nuevo pico,
lo cual tomaríamos como señal inequívoca de giro bajista. Sin embargo, el 29 de
octubre se genera un gap alcista que impulsa nuevamente a los precios al alza,
generando una situación de incertidumbre. Al usar el cruce de las dos líneas
como punto de confirmación, en este caso habríamos esperado al punto F antes de
tomar cualquier decisión.
El principal problema de éste (o de cualquier otro
indicador) se presenta en las zonas de incertidumbre, periodos durante los
cuales el oscilador puede alternar picos y valles de forma consecutiva. Lo
interesante de ésta herramienta es que al mostrar datos especialmente
suavizados, disminuye el número de ocasiones en el que puede darse esta
circunstancia. No obstante, el problema sigue existiendo.
Un ejemplo lo podemos encontrar en el gráfico 2. El valle
del punto B implicaría un nuevo giro al alza, si bien vemos que no es así y se
inicia un proceso de congestión.
En realidad, el movimiento oscilatorio es el mismo
independientemente de la amplitud del mismo, de ahí que puedan aparecer este
tipo de situaciones en caso de que el movimiento lateral se alargue en el
tiempo.
Una buena idea que podemos aplicar para despreciar los
picos y valles poco relevantes, es establecer
ciertos niveles de distancia mínima, de modo que si se genera un nuevo pico
o valle, pero éste no supera dicha distancia, entonces no lo consideramos y
esperamos al siguiente movimiento.
El MACD Momentum tiene un rango de valores en torno a +1
y -1. Podemos considerar como un buen punto de corte una distancia mínima de
+0.5 y -0.5 como para dar por bueno un nuevo pico o valle.
Esta regla en la mayoría de los casos puede ser
considerada como aceptable. No obstante, si analizamos el comportamiento del
oscilador en diferentes escenarios, veremos que en ciertas ocasiones el rango
de amplitud del MACD Momentum varía en base a los incrementos de volatilidad
dados previamente. Así, puede ocurrir que tras un fuerte movimiento de subida
que haya podido alcanzar los +1.5 puntos, seguidamente se produzcan varios
picos y valles mayores de +0.5 y -0.5 asociados a un movimiento lateral, pero
que tienen esta amplitud como consecuencia del movimiento previo. Para este caso,
la distancia establecida no nos es válida, ya que debería ser mayor. Sin
embargo, si cambiásemos el sesgo y pusiéramos una distancia mínima mayor (por
ejemplo, entre +0.8 y -0.8), estaríamos dejando fuera demasiados giros
potencialmente interesantes… ¿Qué hacer en tal caso?
La propuesta que vamos a hacer en éste artículo es generar
una variación del MACD Momentum consistente en normalizar los resultados obtenidos. Llamaremos a éste nuevo
indicador MACD Momentum Ratio.
Normalización de los niveles de distancia del MACD Momentum.
Con el MACD
Momentum Ratio, como decimos, buscamos establecer que el rango de la
distancia entre el Slow MACD y el Fast MACD sea siempre relativo a la
amplitud obtenida en el periodo más próximo.
Para empezar, el dato que mostrará este MACD Momentum Ratio será la diferencia
entre los MACD, ya que en última instancia ésta es la información que nos
interesa (recordemos que esperábamos al filtro de cruce para confirmar un nuevo
pico o valle). Como consecuencia, el
valor devuelto oscilará en torno a cero en base a la separación entre ambas
medias: Un resultado positivo indicará que el Slow MACD está por encima del Fast
MACD y que por tanto confirma una dirección alcista. Un resultado negativo,
indicará un Slow MACD menor que el Fast MACD y por tanto dirección bajista.
El siguiente paso consistirá en devolver los resultados en base al rango más alto dado dentro
de un determinado intervalo de tiempo. Lo que conseguimos con esto es
normalizar las distancias según lo acontecido recientemente. Así, si los rangos
de separación están siendo altos en un determinado momento, el resultado será
el mismo que si sucede lo contrario (rangos muy bajos dentro de un intervalo de
tiempo), ya que el valor que mostrará el indicador irá siempre respecto al
valor más alto de cada periodo, y además, siempre oscilando en torno al mismo
intervalo de puntos (+1 y -1).
Los datos dados por el MACD Momentum Ratio se calcularán en tanto por uno y la ecuación
que los representa sería la siguiente:
MACDMom
Ratio = S x (Abs(SlowMACD-FastMACD)) / MAX(Abs(SlowMACD-FastMACD), N)
De donde:
S = Signo de la diferencia entre SlowMACD y FastMACD
N = Periodo de tiempo durante el cual buscamos la
diferencia mayor (en valor absoluto).
En el gráfico 3 podemos ver dibujado el MACD Momentum Ratio aplicado sobre el
gráfico de 20 minutos de GDF Suez. Asimismo, vemos también dibujado el MACD Momentum. De éste gráfico
destacamos dos puntos:
Primero, que sobre compresiones temporales menores, vemos
cómo el intervalo de distancia del MACD
Momentum es diferente, oscilando entre +0.2 y -0.2, mientras que el MACD Momentum Ratio mantiene su
intervalo fijo en torno a +1/-1.
Y segundo, que el MACD
Momentum Ratio se adapta a cada situación. Si nos fijamos, los picos dados en
el punto D y en el punto E tienen la misma amplitud real, tal y como se muestra
en el MACD Momentum. Sin embargo, el
otro indicador los dibuja con una amplitud menor, puesto que en términos
relativos, se trata de movimientos de menor fuerza. En el punto G tendríamos un
ejemplo similar. Esto permite filtrar mejor las típicas zonas laterales que
aparecen tras procesos fuertes de distribución.
Generación de señales en base al MACD Momentum Ratio.
A continuación, vamos a plantear una serie de reglas a
través de las cuales estableceremos criterios de tendencia en base al
indicador.
Como lo que nos interesa es aprovechar los giros de
tendencia generados por picos y valles que hayan sido relevantes, la estrategia
a seguir sería la siguiente:
Establecemos como nivel de distancia mínima un +/-0.5
(recordemos, en tanto por uno).
Cada vez que se genere un tope que supere los +0.5
puntos, tomamos como señal vendedora el posterior cruce bajista.
En el lado opuesto, cada vez que se sobrepase los -0.5
puntos, tomamos como señal compradora el posterior cruce alcista.
En el gráfico 3 podemos ver un ejemplo de la aplicación
de éstas señales. El pico del punto A llega a alcanzar el +1, por lo que damos
por bueno este punto de giro, de modo que cuando se produce el cruce con la
línea cero (recordemos, esto implica el cruce del Fast MACD con el Slow MACD)
tendríamos una señal bajista. La señal de compra posterior al punto B termina
siendo falsa, debido a que tras la señal bajista se produce un proceso de congestión.
Tras el giro del punto D, tendríamos una nueva señal bajista (la cual podríamos
también considerar como falsa). Por último, el valle del punto F genera la
señal alcista siguiente.
Conclusiones.
Si bien es cierto que en el ejemplo del gráfico 3 algunas
de las señales no son válidas, también lo es que el criterio utilizado permite
filtrar notablemente las zonas laterales.
También cabe destacar que, una vez establezcamos los
parámetros más acordes con los que obtener el mayor número de señales acertadas,
podemos exportar dicho conjunto de parámetros a otros activos y a otras
compresiones temporales, gracias a la normalización de los resultados.
El MACD Momentum Ratio permite, por tanto, aprovechar la
información relativa a los ciclos propios del Ratio de Cambio, la suavización
de señales del MACD y por último, la normalización de los datos típica de
osciladores como el RSI.
G1) Indicador MACD Momentum en Volkswagen Diario.
En éste gráfico de Volkswagen
a 1 día, hemos aplicado el indicador MACD Momentum(5,2,1.5,4,1.5). El punto A
marca un nuevo pico lo suficientemente separado de cero como para considerarlo
relevante. El punto B establece la señal de confirmación al cruzarse las dos
líneas del indicador. No obstante, la señal resulta falsa, el precio retrocede
y se inicia un periodo lateral. El punto C marca un nuevo valle confirmado en
el punto D. En esta ocasión, la señal sí implica un punto de giro. E n el punto
E se refleja la importancia de esperar a la confirmación del cruce, el cual
aparece en el punto F.
Fuente:
Visual Chart
G2) Indicador MACD Momentum en Telefónica Diario.
En éste gráfico de Telefónica
Diario, queda reflejado el problema de las etapas laterales. El pico generado
en el punto A marca correctamente la zona de giro, pero seguidamente se inicia
un proceso con poco movimiento que genera los picos y valles desde el punto B
hasta el punto F. Los puntos C y D quedan filtrados por la regla del cruce de medias,
pero el resto de puntos sí están confirmados.
Fuente:
Visual Chart
G3) Señales del MACD Momentum Ratio en GDF Suez a 20
minutos.
El siguiente gráfico vemos
aplicado tanto el MACD Momentum como el MACD Momentum Ratio. El pico del punto
A genera la señal de venta siguiente (una vez cruzan las medias), ya que lo
consideramos un punto de giro relevante. El valle del punto B genera la señal
de compra siguiente. El punto C marca un nuevo pico, si bien la señal no se
confirma con el cruce de las medias y es el
pico del punto D el que genera la señal. El pico del punto G no genera
una nueva señal de venta porque no cumple la distancia mínima exigida (situada
en +0.5 puntos).
Fuente:
Visual Chart
Código de programación
MACD MOMENTUM RATIO PARA
VISUAL CHART 5.
'¡¡ Parameters
Dim MomPeriod As Integer '5
Dim MACD1_N1 As Integer '2
Dim MACD1_N2 As Double '1.5
Dim MACD2_N1 As Integer '6
Dim MACD2_N2 As Double '1.25
Dim N As Integer '100
'Parameters !!
Dim momdata As DataIdentifier
Dim macd1data As DataIdentifier
Dim macd2data As DataIdentifier
Dim dif() As Double
Dim dif2() As Double
Dim lastbar As Long
Option Explicit
Public APP As OscUserApp
Implements Indicator
Public Sub
Indicator_OnInitCalculate()
With APP
momdata = .GII(Momentum, Data, MomPeriod,
PriceClose, 100)
macd1data = .GII(MACD, momdata, MACD1_N1 *
MomPeriod, (MACD1_N1 * MomPeriod) * MACD1_N2, 1, PriceClose, 0)
macd2data = .GII(MACD, momdata, MACD2_N1 *
MomPeriod, (MACD2_N1 * MomPeriod) * MACD2_N2, 1, PriceClose, 0)
ReDim dif(N - 1)
lastbar = -1
.SetLineName 1, "macdmom_r"
End With
End Sub
Public Sub
Indicator_OnCalculateBar(ByVal Bar As Long)
With APP
Dim curmacd2 As Double
Dim curmacd1 As Double
curmacd2 = .GIV(macd2data)
curmacd1 = .GIV(macd1data)
If (curmacd2 <> NullValue) Then
If lastbar <> Bar Then
dif2 = dif
Else
dif = dif2
End If
Dim i As Integer
For i = N - 1 To 1 Step -1
dif(i) = dif(i - 1)
Next i
Dim ippos As IndicatorPosition
Dim signal As Integer
If (curmacd1 > curmacd2) Then
ippos = ipBull
signal = 1
Else
ippos = ipBear
signal = -1
End If
dif(0) = Math.Abs((curmacd1 -
curmacd2))
Dim ratio As Double
Dim maxdif As Double
maxdif = GetMaxDif()
If maxdif <> 0 Then
ratio = dif(0) / maxdif
.SetIndicatorValue signal * ratio,
Position:=ippos
.SetBarRepresentation 0, 1,
irVolume
End If
End If
lastbar = Bar
End With
End Sub
Public Sub
Indicator_OnSetParameters(ParamArray ParamList() As Variant)
'¡¡ Parameters initialization
'Parameters initialization !!
End Sub
Public Sub
Indicator_OnCalculateRange(ByVal StartBar As Long, ByVal FinalBar As Long)
Dim i As Long
i = APP.StartBar
If StartBar > i Then
i = StartBar
End If
While Not APP.ShouldTerminate And i <=
FinalBar
APP.CurrentBar = i
Indicator_OnCalculateBar i
i = i + 1
Wend
End Sub
Private Sub
OscUserAppInstance_OnConnection(ByVal Application As OscUserApp, ByVal MTDllInst
As Object, Custom() As Variant)
Set APP = Application
End Sub
Private Function GetMaxDif() As
Double
Dim max As Double
Dim i As Integer
max = dif(0)
For i = 1 To N - 1
If dif(i) > max Then
max = dif(i)
End If
Next i
GetMaxDif = max
End Function

.gif)
.gif)
No hay comentarios:
Publicar un comentario