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