Technical Trading rules pacakge

library(TTR)
## Warning: package 'TTR' was built under R version 3.2.5

Establecemos una semilla

set.seed(1234)

Creamos una serie temporal con una señal de precios sinusoidal

x<- seq(1,1200,12)
y <- 50*sin(2*pi*x/365)
plot(x,y)

Añadimos un ruido normal

y <- 50*sin(2*pi*x/365)+rnorm(n=100, mean=90, sd=15)
plot(x,y)

Calculamos un suavizado mediante regresión local (lowess en rojo) y una media móvil de 5 elementos en naranja, de 10 elementos en azul y de 20 elementos en verde

plot(x,y, type="o",xlab="tiempo", ylab="precio")
lines(lowess(x,y,f=1/15), col="red") #regresión local
mov<-runMean(y,5)
lines(x,mov, col="orange")
mov2<-runMean(y,10)
lines(x,mov2, col="blue")
mov3<-runMean(y,20)
lines(x,mov3, col="green")
title(main="Suavizado mediante media móvil", sub="Un ejemplo para Gestión de la Información")

Nos quedamos con la media móvil de 10 elementos. Los puntos donde la media móvil corta a la serie temporal de abajo a arriba son puntos de inicio de tendencia bajista. Los puntos donde la media móvil corta a la serie temporal de arriba a abajo son puntos de inicio de tendencia alcista. El análisis técnico en general y esta técnica en particular no son ninguna garantía para predecir en los mercados financieros. De hecho, si la hipótesis de eficiencia de los mercados es cierta, la utilidad de todo esto es bastante dudosa. A pesar de todo, es interesante conocer la lógica que los inversores técnicos utilizan con esta herramienta de suavizado.

plot(x,y, type="o",xlab="tiempo", ylab="precio")
lines(lowess(x,y,f=1/15), col="red")
mov2<-runMean(y,10)
lines(x,mov2, col="blue")
title(main="Suavizado mediante media móvil", sub="Un ejemplo para Gestión de la Información")