2 votos

Cómo trazar series temporales de datos bursátiles con R

Tenemos un conjunto de datos que tiene valores de apertura, alta, baja y cierre. Hemos normalizado los datos y tratamos de trazar los valores abiertos normalizados contra la fecha.

El conjunto de datos puede encontrarse en http://finance.yahoo.com/quote/ORCL/history?period1=1323475200&period2=1481328000&interval=1d&filter=history&frequency=1d

Intentamos reproducir los gráficos de https://stats.stackexchange.com/questions/39279/how-to-plot-20-years-of-daily-data-in-time-series

El resultado no es el esperado.

Código:

oracle$date <- as.Date(oracle$Date,"%y-%m-%d")
print(oracle$date)

Problema 1: Imprime las fechas hasta 2027 aunque tenga valores de 2011 a 2016.

oracle$week <-(as.integer(oracle$date) + 3) %/% 7
print (oracle$week)
oracle$week <- as.Date(oracle$week * 7 - 3, as.Date("2011-12-12", "%Y-%m-%d"))
print(oracle$week)
par(mfrow=c(1,2))
plot(as.factor(unclass(oracle$Date[1:1259])), oracle$NO[1:1259], type="l",
     main="Original Plot: Inset", xlab="Factor code")
plot(oracle$Date[1:1259], oracle$NO[1:1259], type="n", ylab="Price", 
     main="Oracle Opening Prices")

Los gráficos no se muestran como se indica en la respuesta (8) de https://stats.stackexchange.com/questions/39279/how-to-plot-20-years-of-daily-data-in-time-series

Es como se muestra a continuación: enter image description here

tmp <- by(oracle[1:1259,], oracle$week[1:1259], function(x) lines(x$Date, x$NO, lwd=2))
print(tmp)
par(mfrow=c(1,1))
colors <- terrain.colors(52)
plot(oracle$Date, oracle$NO, type="n", main="Oracle Opening Prices")
tmp <- by(oracle, oracle$week, 
function(x) lines(x$date, x$Open, col=colors[x$week %% 52 + 1]))
print(tmp)

2voto

Asaf Puntos 218

Esto se hace comúnmente en R usando el paquete Quantmod y la envoltura getSymbols. Una buena configuración de gráficos integrada es la del paquete PerformanceAnalytics.

require(quantmod)
require(PerformanceAnalytics)
getSymbols("ORCL", from = "1996-01-01")
chart.TimeSeries(ORCL[,1], main = "Oracle Opening Prices")

Sin embargo, como no estoy del todo seguro de lo que significa la respuesta (8) (¿la que tiene 8 upvotes?), no puedo determinar exactamente qué parcela quieres.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X