En este artículo se pretende demostrar la potencia, sencillez y rapidez de R para realizar análisis de activos financieros. Concretamente, calcularemos una matriz de correlaciones de las principales pares de divisas.
Para ello usaremos los siguientes paquetes:
- Quantmod, para descargar los pares de divisas
- Lubridate, para el manejo de fechas
- Corrplot, para representar gráficamente la matriz de correlaciones
Primero:
require(“quantmod”)
require(“lubridate”)
require(“corrplot”)
En nuestro caso usaremos las mismas divisas que tiene oanda en su web: http://www.oanda.com/currency/live-exchange-rates/
names_pairs <- c( “EUR/GBP”,“EUR/CHF”,“USD/AUD”,“EUR/JPY”,“EUR/USD”,
“USD/EUR”,“USD/GBP”,“USD/CAD”,“USD/CHF”,“USD/JPY”,
“EUR/CAD”,“EUR/DKK”,“EUR/NOK”,“EUR/PLN”,“EUR/TRY”,
“EUR/ZAR”,“EUR/AUD”,“EUR/CZK”,“EUR/HUF”,“EUR/NZD”,
“EUR/SEK”,“EUR/SGD”,“USD/CZK”,“USD/HKD”,“USD/INR”,
“USD/NOK”,“USD/SAR”,“USD/SGD”,“USD/TRY”,“USD/ZAR”,
“USD/CNY”,“USD/DKK”,“USD/HUF”,“USD/MXN”,“USD/PLN”,
“USD/SEK”,“USD/THB”,“USD/TWD”,“USD/NZD”,“USD/XAG”,
“USD/XAU”)
Seleccionamos los años:
fechas <- seq(as.Date(“2000-01-01”), as.Date(“2015-01-01”), by=“year”)
pair <- c()
pairs<- c()
pairs_agr<- c()
Necesitamos un bucle para coger todos los pares y años uno por uno:
for (name_pair in names_pairs){
for (i in 1:length(fechas)){
fecha_ini <- fechas[i]
fecha_fin <- fechas[i] + years(1) -1
pair_year <- getSymbols.oanda(name_pair , from =fecha_ini, to = fecha_fin , env = parent.frame(), verbose = F, warning = T, auto.assign = F)
pair <- c(pair_year,pair )
}
pairs<-cbind(pairs,pair)
pairs_agr<-cbind(pairs_agr,pair)
pair <- c()
}
Por último, creamos la matriz y la pintamos:
corr_matrix <- cor(pairs)
corrplot(corr_matrix, method = “color”,type=“upper”, order = “AOE”)
Y ya tendremos nuestra matriz de correlaciones, indicando en cada color el coeficiente de correlación (Azul correlación positiva, Rojo Correlación negativa – blanco sin correlación)
Cualquier duda o comentario, no dudéis en escribirme a eljuancar@hotmail.com (Juan Carlos García Sigüenza).
require("quantmod")
require("lubridate")
require("corrplot")
names_pairs <- c( "EUR/GBP","EUR/CHF","USD/AUD","EUR/JPY","EUR/USD",
"USD/EUR","USD/GBP","USD/CAD","USD/CHF","USD/JPY",
"EUR/CAD","EUR/DKK","EUR/NOK","EUR/PLN","EUR/TRY",
"EUR/ZAR","EUR/AUD","EUR/CZK","EUR/HUF","EUR/NZD",
"EUR/SEK","EUR/SGD","USD/CZK","USD/HKD","USD/INR",
"USD/NOK","USD/SAR","USD/SGD","USD/TRY","USD/ZAR",
"USD/CNY","USD/DKK","USD/HUF","USD/MXN","USD/PLN",
"USD/SEK","USD/THB","USD/TWD","USD/NZD","USD/XAG",
"USD/XAU")
fechas <- seq(as.Date("2000-01-01"), as.Date("2015-01-01"), by="year")
pair <- c()
pairs<- c()
pairs_agr<- c()
for (name_pair in names_pairs){
for (i in 1:length(fechas)){
fecha_ini <- fechas[i]
fecha_fin <- fechas[i] + years(1) -1
pair_year <- getSymbols.oanda(name_pair , from =fecha_ini, to = fecha_fin , env = parent.frame(), verbose = F, warning = T, auto.assign = F)
pair <- c(pair_year,pair )
}
pairs<-cbind(pairs,pair)
pairs_agr<-cbind(pairs_agr,pair)
pair <- c()
}
corr_matrix <- cor(pairs)
corrplot(corr_matrix, method = "color",type="upper", order = "AOE")
Por último, en la página de finanzas cuantitativas puedes aprender diversas aplicaciones de R para finanzas.
Editado por Conney Marulanda López.
¿Te ha parecido útil? ¡Puntúa esta entrada!
¡Haz clic en una estrella para puntuar!
Promedio de puntuación 5 / 5. Recuento de votos: 4
Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.