Artículo de Visual Chart Publicado en la Revista TRADERS´ - Noviembre
En análisis técnico, el uso de los canales de
regresión nos permite evaluar la evolución de los precios durante una fase de crecimiento
o decrecimiento. Su principal función radica en la búsqueda de la ruptura de
dichos canales, con el fin de localizar cambios en la tendencia del mercado. El
estadístico R-Cuadrado aporta una información similar a través de un gráfico
oscilatorio, facilitando la labor de análisis.
La Recta de Regresión
En
análisis técnico, la recta de regresión se utiliza como método para modelar un
periodo concreto del activo, a fin de poder establecer la dirección de
tendencia gobernante.
Además
de permitirnos conocer la tendencia general, la principal aportación del
estudio de las rectas de regresión consiste en poder trazar un canal de precios
que permita generar los niveles de soporte y resistencia a batir.
No cabe
duda por tanto de la valía de este tipo de herramientas. Por tanto, el uso de
indicadores derivados también tendrá un importante interés. Entre este grupo de
indicadores, tenemos el Coeficiente de Determinación, denominado en
estadística R- Cuadrado,
del cual hablaremos en
este artículo.
El Coeficiente de
Determinación R-Cuadrado
En
estadística, el principal propósito del coeficiente consiste en medir la
calidad de predicción de un modelo, o dicho de otro modo, la capacidad que
tiene el modelo para replicar los resultados.
¿Qué
relación tiene este estadístico con la recta de regresión? Sin entrar en
demasiados detalles técnicos, el coeficiente viene a representar la dispersión
de los datos de la muestra a estudiar, precisamente, con respecto a la recta de
regresión.
Si
los datos de la muestra distan mucho de la línea de regresión, querrá decir que
el modelo es poco significativo, y por tanto, el valor del coeficiente tenderá
a disminuir. Mientras que si los datos se mantienen cerca de la recta,
estaremos en el caso contrario y el coeficiente en tal caso tomará valores más
altos.
En
términos numéricos, el valor del estadístico oscila entre 0 y 1, donde un R-Cuadrado igual a cero estará informando que no hay relación entre los datos de la muestra y un R-Cuadrado igual
a uno indicará una perfecta relación entre los datos.
Representación
Desde
el punto de vista financiero, podemos estudiar el coeficiente de determinación
aplicándolo a los precios de un valor y que actúe para un determinado periodo
de barras, pudiendo ver su evolución a lo largo del tiempo a través de un
indicador.
En este
artículo veremos la representación gráfica del coeficiente para Visual Chart,
aportando además el código de programación del indicador correspondiente.
El resultado
será un oscilador que se moverá desde cero hasta uno, si bien para facilitar la
detección de tendencias estadísticamente significativas, el indicador tomará
como referencia un valor crítico extraido de una tabla que a continuación
mostraremos.
Este valor
representa el punto a partir del cual se considera que el nivel de confianza
del modelo es de al menos el 95% . El valor crítico variará en función del
periodo de la muestra.
Periodo
|
Valor Crítico
(95% confianza)
|
<=5
|
0.77
|
10
|
0.40
|
14
|
0.27
|
20
|
0.20
|
25
|
0.16
|
30
|
0.13
|
50
|
0.08
|
60
|
0.06
|
>=120
|
0.03
|
En el
gráfico 1 podemos ver cómo se mostraría el R-Squared
para Visual Chart 5.
En
lo relativo a la representación, el indicador calculará de forma automática el
nivel crítico según le corresponda, por lo que esta constante no tiene que ser
calculada por el usario.
El
indicador oscila alrededor del nivel crítico, haciendo coincidir los momentos
de mayor confianza con las fases de distribución y los de menor confianza con
las fases de acumulación. La lógica de este comportamiento es clara: Durante
los periodos de incertidumbre, la dispersión de los precios aumenta, lo que se
traduce en valor más bajos del R-Cuadrado.
Interpretación de señales
Como
decíamos al principio, el comportamiento del oscilador puede ser utilizado para
detectar la ruptura de las líneas de tendencia.
Se
pueden establecer los siguientes criterios como señales de alerta de cambio:
Final
o agotamiento de las tendencias
Si
durante una tendencia alcista o bajista fuertemente prolongada, el valor
del R-Cuadrado comienza a decrecer, el indicador nos está
avisando de un posible agotamiento del impulso.
Inicio
de un nuevo impulso
Si el R-Cuadrado cruza el umbral crítico e inicia un proceso de
crecimiento, el indicador nos está avisando de un posible inicio de tendencia.
En
el gráfico 2 podemos ver cómo actúan cada una de éstas alertas en función del
estado del coeficiente. Cabe destacar el uso combinado de un segundo indicador
(en este caso, el RegLineSlope) para
determinar la dirección de la tendencia, puesto que éste dato no lo aporta el
estadístico.
Siguiendo
con el ejemplo, en el punto 1, detectamos la superación del nivel crítico por
parte del coeficiente. Como el RegLineSlope
es positivo, tenemos una alerta alcista. En el punto 2 el valor del coeficiente
comienza a decrecer, señal de que los precios comienzan a dispersarse. En el
punto 3 se vuelve a detectar la señal de cruce con el nivel crítico, si bien en
esta ocasión el indicador de dirección nos avisa de que la pendiente es
bajista, por lo que tendríamos la señal opuesta. Por último, en el punto 4 se
produce una nueva señal de agotamiento.
Conclusiones
La
finalidad por tanto de este estadístico es la permitirnos evaluar, de una forma
objetiva, la fuerza de los movimientos del precio en cada momento, eliminando
el factor humano de la ecuación.
Gracias
a esto, podemos elaborar herramientas de operativa regidas por criterios
puramente cuantitativos, hecho de vital importancia para poder ser más precisos
a la hora de la toma de decisiones.
Por
último, cabe destacar que el oscilador necesita del apoyo de otras herramientas
de análisis tal y como hemos visto en el ejemplo, en especial aquellas que
permitan detectar la dirección de la tendencia en cada momento.
G1) Aplicación del R-Cuadrado en EURO FX FUTURE CONT.
Cuanto más dispersos estén
los datos respecto a su recta de regresión, menor será el resultado del
coeficiente. En los puntos 1 y 2, los precios se mantienen próximos a la recta,
de ahí que el indicador alcance las cotas más altas. Por otro lado, los puntos
3 y 4 son los más bajos debido a que los últimos precios han variado mucho
(zonas de agotamiento o incertidumbre).
Fuente:
Visual Chart
G2) Señales de alerta del R-Cuadrado en EURO BUND FUT.
DEC 2013
Los puntos 1 y 3 marcan las
señales de alerta de nueva tendencia, mientras que los puntos 3 y 4 las señales
de agotamiento. Respecto a estos dos últimos, cuanto mayor sea el valor del
R-Cuadrado (por encima de 0.8), más significativa será la señal de agotamiento.
Fuente:
Visual Chart
Código de programación
CODIGO DE PROGRAMACION DEL
R-SQUARED PARA VISUAL CHART 5.
'¡¡ Summary
' Classification: Volatility
'Summary !!
'¡¡ Parameters
Dim RSQPeriod As Integer '10
'Parameters !!
Option Explicit
Public APP As OscUserApp
Implements Indicator
Public Sub
Indicator_OnInitCalculate()
With APP
.SetLineName 1, "R-SQR"
.SetLineName 2, "R-SQR Critical"
End With
End Sub
Public Sub
Indicator_OnCalculateBar(ByVal Bar As Long)
With APP
Dim RSQ As Double
Dim RSQCritical As Double
Dim ipPosition As IndicatorPosition
RSQ = Calc_RSquared(RSQPeriod)
RSQCritical = calcLevel(RSQPeriod)
ipPosition = ipNeutral
If RSQ > RSQCritical Then ipPosition =
ipBull
If RSQ < RSQCritical Then ipPosition =
ipBear
.SetIndicatorValue RSQ, 1, 0, ipPosition
.SetIndicatorValue RSQCritical, 2
.SetBarRepresentation 0, 1, irHistogram
.SetHistogramBand 2, 1
End With
End Sub
Private Function
Calc_RSquared(per As Integer) As Double
Dim i As Integer
Dim x#, y#, div#
Dim Ex#, Ey#, Exy#, Ex2#, Ey2#
Dim Ex22#, Ey22#
Dim r#
For i = 1 To per
x = i ''x axis value
y = APP.Close(i) ''y axis value
Ex
= Ex + x
Ey = Ey + y
Exy = Exy + x * y
Ex2 = Ex2 + x ^ 2
Ey2 = Ey2 + y ^ 2
Next i
Ex22 = Ex ^ 2
Ey22 = Ey ^ 2
If (per * Ex2 - Ex22) * (per * Ey2 - Ey22)
> 0 Then
div = Math.Sqr((per * Ex2 - Ex22) *
(per * Ey2 - Ey22))
If (div = 0) Then
Calc_RSquared = 0
Else
r = (per * Exy - Ex * Ey) / div
Calc_RSquared = r ^ 2
End If
Else
Calc_RSquared = 0
End If
End Function
Private Function calcLevel(per
As Integer) As Double
Dim per1#, lev1#, lenper#, levdif#
If (per <= 5) Then
calcLevel = 0.77
ElseIf (per > 120) Then
calcLevel = 0.03
Else
If ((per > 5) And (per <= 10))
Then
per1 = 5: lev1 = 0.77: lenper = 5:
levdif = 0.37
ElseIf ((per > 10) And (per <=
14)) Then
per1 = 10: lev1 = 0.4: lenper = 4:
levdif = 0.13
ElseIf ((per > 14) And (per <=
20)) Then
per1 = 14: lev1 = 0.27: lenper = 6:
levdif = 0.07
ElseIf ((per > 20) And (per <=
25)) Then
per1 = 20: lev1 = 0.2: lenper = 5:
levdif = 0.04
ElseIf ((per > 25) And (per <=
30)) Then
per1 = 25: lev1 = 0.16: lenper = 5:
levdif = 0.03
ElseIf ((per > 30) And (per <=
50)) Then
per1 = 30: lev1 = 0.13: lenper =
20: levdif = 0.05
ElseIf ((per > 50) And (per <=
60)) Then
per1 = 50: lev1 = 0.08: lenper =
10: levdif = 0.02
ElseIf ((per > 60) And (per <=
120)) Then
per1 = 60: lev1 = 0.06: lenper =
60: levdif = 0.03
End If
If lenper <> 0 Then
calcLevel = (lev1 - (per - per1) *
(levdif / lenper))
Else
calcLevel = 0
End If
End If
End Function
SubEnd Sub
No hay comentarios:
Publicar un comentario