Matriz de correlación de los principales pares de divisas con R

Índice de Contenidos

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")

plot of chunk unnamed-chunk-1

Por último, en la página de finanzas cuantitativas puedes aprender diversas aplicaciones de R para finanzas.

Editado por Conney Marulanda López.

Facebook
Twitter
LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Picture of Conney Marulanda López
Conney Marulanda López
Analista de Mercado. Certificada en el examen de Asesor Financiero de la CNMV por la Universidad Carlos III de Madrid. Apasionada por los mercados financieros, el emprendimiento y las nuevas tecnologías.
Artículos relacionados
Actualizado octubre 5, 2025

Valor en Riesgo (VaR) con R

Actualizado agosto 7, 2019

Análisis y optimización de portafolios con R (II)

Actualizado agosto 6, 2019

Análisis y optimización de portafolios con R (I)

Suscríbete y accede a contenido exclusivo, análisis semanales y oportunidades reales.
Sin spam. Sin humo. Solo lo que te interesa para que tomes mejores decisiones financieras. Te puedes borrar cuando quieras. Tu privacidad es sagrada.

Responsable: Conney Marulanda López. Finalidad de la recogida y tratamiento de los datos personales: 
Gestionar la solicitud que realizas en este formulario de contacto. 
Legitimación: Consentimiento. 
Destinatarios: Los datos personales serán tratados a través de los servidores de esta web, gestionados por un hosting español: Raiola Networks. No se cederá ni comunicará a ningún tercero tus datos, excepto en los casos legalmente previstos o cuando la prestación de un servicio implique la necesidad de una relación contractual con un Encargado de Tratamiento. 
Derechos: Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@finanzaszone.com así como el derecho a presentar una reclamación ante una autoridad de control.
Información adicional: En Política de privacidad de finanzaszone.com, encontrarás información adicional sobre la recopilación y el uso de su información personal, incluida información sobre acceso, conservación, rectificación, eliminación, seguridad, y otros temas.