馃摬 La cointegraci贸n es un fen贸meno estad铆stico que se da cuando de dos series que no son estacionarias podemos obtener una combinaci贸n lineal entre ellas que s铆 lo sea.

猬嗭笍 Este hecho en s铆 puede tener una aplicaci贸n pr谩ctica en muchos 谩mbitos, pero centr谩ndonos en los mercados, nos puede servir para crear una estrategia de arbitraje para invertir en acciones,forex, materias primas etc.

馃搶La idea es usar esa combinaci贸n lineal que representa una estabilidad a largo plazo entre los activos para aprovechar los desequilibrios puntuales que existan y entrar al mercado con mayor probabilidad de 茅xito. En el gr谩fico de abajo podemos ver la relaci贸n existente entre dos acciones espa帽olas. Bankinter y Santander. Ese spread de cointegraci贸n creado podemos usarlo para entrar al mercado usando el arbitraje.

馃 En este v铆deo hago un ejemplo en R ampliando este concepto y usando el mercado de acciones espa帽olas como base. 馃憞馃徎馃憞馃徎

CODIGO EN R DEL V脥DEO



## CODIGO PARA COINTEGRACION PARA 2 activos ####


## Recordar Cointegracion ser谩 entre dos series NO ESTACIONARIAS

## Obtendremos una Combinaci贸n Lineal que s铆 sea Estacionaria

## Eso nos permitir谩 tener mayor probablidad de 茅xito 

### crear una estrategia de arbitraje

#######################################

####  #######

#install.packages("quantmod")
library(quantmod)
#install.packages("tseries")
library(tseries)
#install.packages("fImport")
library(fImport)



# DESCARGA DE DATOS
# UTILIZAMOS 2 acciones


getSymbols("REP.MC",quote="Close",from ="2018-01-01",periodicity = "daily")
REP= REP.MC[,4]
getSymbols("BBVA.MC",quote="Close",from ="2018-01-01",periodicity = "daily")
BBVA= BBVA.MC[,4]
getSymbols("BKT.MC",quote="Close",from ="2018-01-01",periodicity = "daily")
bkt= BKT.MC[,4]
getSymbols("SAN.MC",quote="Close",from ="2018-01-01",periodicity = "daily")
SAN= SAN.MC[,4]





# CODIGO DE MULTICOINTEGRACION

# 1 Hacemos los logaritmos de las series

y = log(bkt)
x = log(SAN)

plot(y,type="l")
plot(x,type="l")

library(tseries)


## 2. Creaci贸n del modelo 

mod_cointegracion=lm(y~x)         # regresi贸n lineal

# sacamos betas del modelo de regresi贸n

beta=coef(mod_cointegracion) 

beta

#res<-residuals(mod_cointegracion)

#res1<-data.frame(res)
#adf.test(res1$res)

#modelo y la betas

## Creamos el Spread para hacer arbitraje

pendient =x*beta[2]+beta[1]   #se podr铆a poner m谩s solo a帽adiendo betas

quant_spread= pendient - y    ### Es el spread que vamos a operar

plot(quant_spread,type="l",main="BANKINTER-SANTANDER")


# 4. COMPORBACION DE COINTEGRACI脫N CON EL TEST DE DICKEY FULLER

dickey=adf.test(quant_spread)   
dickey            ### Pronto lo podr茅is tener en indicador



plot(quant_spread,type="l")
abline(mean(na.omit(quant_spread)),0,col="orange")
abline(mean(na.omit(quant_spread))+sd(na.omit(quant_spread)),0,col="blue")
abline(mean(na.omit(quant_spread))-sd(na.omit(quant_spread)),0,col="blue")

abline(mean(na.omit(quant_spread))+1.5*sd(na.omit(quant_spread)),0,col="violet")
abline(mean(na.omit(quant_spread))-1.5*sd(na.omit(quant_spread)),0,col="violet")




## comprar de x(santander) y vender y(bankiter)



## beta

cantidad<- beta[2]
cantidad


### Probar con Indices por ejemplo sp500 y dow 
### Incluso probar con EURUSD/Indices o materias primas(brent,crudo)
## maiz,cerdo--- maiz- trigo- soja


Por Victor A.Rico

Diplomado en Ciencias Empresariales y Operador del Mercado Espa帽ol de Futuros y Opciones

6 comentarios en 芦Cointegraci贸n en Acciones禄
  1. Alguna aplicacion en el que se pueda solo incluir los datos por ejemplo num茅ricos dia a dia hist贸ricos, y no haya que programar.

    1. Hola!! Puedes hacer el modelo en excel. Aunque con el c贸digo que yo os he creado en el post ya podr铆as ir actualizando cada d铆a. Si no quieres usar R tendr铆as que hacerlo desde Excel

  2. Tiene alguna implicaci贸n que te cointegren en primeras diferencias pero no te cointegren en niveles?
    te cambia la interpretaci贸n?

    1. Hola! Lo que pasa es que normalmente al hacer la primera diferencia ya las dos series se vuelven estacionarias, de manera que ya no tiene raz贸n de ser la idea de cointegraci贸n porque por l贸gica la relaci贸n lineal que te te salga va a ser estacionaria al usar esas diferencias. AHora, si al hacer las primeras diferencias esas series siguen siendo NO estacionarias necesitar铆an quiz谩 una segunda diferencia para volverse estacionarias. De forma que ser铆an I(2), entonces si tendr铆a sentido la idea. Pero com煤nmente la idea es que de dos series NO estacionarias saques 1 que si lo es. No que de dos series estacionarias saques una estacionaria.

  3. Que tal! De que forma se pueden encontrar pares integrados de entre tantas acciones o divisas?
    Por ejemplo, encontrar integraci贸n en las acciones de un indice…
    He buscado info en internet pero no he encontrado mucho al respecto, ojala me puedas ayudar…
    Saludos!

    1. La 煤nica forma que conozco es probando. Es decir, eliges dos acciones y haces la prueba de dickey fuller como en mis videos. Y luego cambias esas acciones por otras y as铆 sucesivamente.

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada.