En el presente post, se utilizará una vez más la librería “quantmod”, la cual emplearemos para descargar desde Oanda el precio tanto del oro (XAU) como de la plata (XAG) expresados en dólares norteamericanos.
Descarga de datos con quantmod
Las series que se obtienen van desde 01 de enero de 2012 hasta la fecha.
library(quantmod)
getMetals("XAU",
from = "2012-01-01",
base.currency="USD",
env = .GlobalEnv,
verbose = FALSE,
warning = TRUE,
auto.assign = TRUE,
return.class='zoo')
## [1] "XAUUSD"
getMetals("XAG",
from = "2012-01-01",
base.currency="USD",
env = .GlobalEnv,
verbose = FALSE,
warning = TRUE,
auto.assign = TRUE,
return.class='zoo')
## [1] "XAGUSD"
Gráficos con chartseries
A continuación con “chartseries” se graficará la evolución de dichos commodities y se le añadirá un promedio móvil simple de 20 (TA=“addSMA(20)):
chartSeries(XAUUSD, show.grid = TRUE,name = "Evolucion del precio del Oro", theme = chartTheme("white"), TA="addSMA(20)")
chartSeries(XAGUSD, show.grid = TRUE,name = "Evolucion del precio de la Plata", theme = chartTheme("white"), TA="addSMA(20)")
Si queremos conocer los valores máximos y mínimos:
ValorminXAUUSD <- min(XAUUSD)
ValorminXAGUSD <- min(XAGUSD)
ValormaxXAUUSD <- max(XAUUSD)
ValormaxXAGUSD <- max(XAGUSD)
Valormin = c(ValorminXAUUSD,ValorminXAGUSD)
valormax = c(ValormaxXAUUSD,ValormaxXAGUSD)
Tabla1= data.frame (rbind(Valormin,valormax))
colnames(Tabla1)<- c("Oro","Plata")
Tabla1
## Oro Plata ## Valormin 1054.685 13.7377 ## valormax 1788.240 36.5895
Rendimiento promedio y volatilidad
Por último, si queremos hallar el rendimiento promedio y la volatilidad (diaria):
Rendimiento promedio diario: se calcula la diferencia logarítmica de los precios o rentabilidad logarítmica, a la cual se le extrae la media.
Volatilidad diaria: se calcula la desviación estándar del rendimiento o retorno.
Para expresarlo en porcentajes se multiplica por 100 (Tabla2*100):
RetornoXAUUSD<-diff(log(XAUUSD))
RetornoXAGUSD<-diff(log(XAGUSD))
RendimientoPromedio = c(mean(RetornoXAUUSD),mean(RetornoXAGUSD))
Volatilidad= c(sd(RetornoXAUUSD),sd(RetornoXAGUSD))
Tabla2 = data.frame (rbind(RendimientoPromedio,Volatilidad))
colnames(Tabla2)<- c("Oro","Plata")
Tabla2*100
## Oro Plata ## RendimientoPromedio -0.01615706 -0.03898427 ## Volatilidad 0.67564574 1.07198044
Por último, en la página de finanzas cuantitativas, puedes encontrar más aplicaciones de R para finanzas y economía.
¿Te ha parecido útil? ¡Puntúa esta entrada!
¡Haz clic en una estrella para puntuar!
Promedio de puntuación 5 / 5. Recuento de votos: 2
Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.
2 comentarios en “Evolución del precio de Commodities: Descarga y análisis con R”
Excelente, se lo puede manejar con proyecciones?
Hola Andrés, muchas gracias! sí, se podría manejar con proyecciones estimando algún modelo, lo cual es el tema central de uno de mis siguientes post!
Saludos,