Cointegración en Forex. Webinar en R studio

La Cointegración en Forex consiste en buscar relaciones estadísticas ente los diferentes pares de divisas, con el objetivo de ver si existen desequilibrios entre ellas.

En bolsa se utiliza  para construir sistemas de arbitraje, aunque existen varios problemas en la práctica que hay que tener en cuenta antes de utilizar estas técnicas.

En este Webinar explico como se hace de forma práctica este sistema y doy algunas soluciones para hacerlo más eficiente.Justo debajo del vídeo dejo también el código en R usado 😘😘

Codigo R

# TRADING DE PARES EN R

#install.packages(«quantmod»)
library(quantmod)
#install.packages(«tseries»)
library(tseries)

# Descargamos activos

getFX(«EUR/USD»)
getFX(«EUR/GBP»)
getFX(«GBP/USD»)
getFX(«USD/CHF»)

e= EURUSD
g= GBPUSD

### Modificamos serie con modelo aditivo

cam=e[1]-g[1]
cam

k=function(z)
{z+cam
}

ge=apply(g,1,k) 

comp<-data.frame(e,ge)
comp
plot(comp$ge,type=»l»)
lines(comp$EUR.USD,col=»red»)

################################
##### MÉTODO DE COINTEGRACIÓN ######

#install.packages(«quantmod»)
library(quantmod)
#install.packages(«tseries»)
library(tseries)

getSymbols(«EURUSD=X»,src=»yahoo»,from = «2014-06-04»)
EURUSD= `EURUSD=X`[,4]
EURUSD<-na.omit(data.frame(EURUSD))
EUR<- EURUSD$EURUSD.X.Close
getSymbols(«USDCHF=X»,src=»yahoo»,from = «2014-06-04»)
USDCHF= `USDCHF=X`[,4]
USDCHF= na.omit(data.frame(USDCHF))
CHF= (USDCHF$USDCHF.X.Close)

# 1 series

y = (CHF)
plot(y,type=»l»)
x = (EUR)
plot(x,type=»l»)

library(tseries)

## MODELO DE REGRESIÓN COINTEGRACION PARA 2 ACTIVOS

modelo=lm(y~x) # regresión lineal
beta=coef(modelo) # sacamos betas
beta

# SACAMOS LOS RESIDUOS DEL MODELO

res<-residuals(modelo)
res1<-data.frame(res)
res1

# TEST PARA COMPROBAR ESTACIONARIEDAD

adf.test(res1$res)
#p-value = 0.01

# paso 4 CREAMOS EL SPREAD

pendient =x*beta[2]+beta[1]
spread=pendient-y

plot(spread,type=»l»)

# DIBUJAMOS DESVIACIONES PARA PUNTOS DE ENTRADA

media = mean(spread)
desv = sd(spread)

sd1 = media + desv
sd11 = media – desv
sd2= media + 2*desv
sd22= media- 2*desv

plot(spread,type=»l»)

abline(media,0,col=»blue»)
abline(sd1,0,col=»red»)
abline(sd11,0,col=»red»)
abline(sd2,0,col=»green»)
abline(sd22,0,col=»green»)

beta
-0.2873457

#comprar de x vender y
# vender 1

#de x venderiamos 0.28

Deja un comentario

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

Scroll al inicio