Momento R do Dia – Cointegração e Finanças: tão óbvio, né?

Como sabemos, nove entre dez alunos dizem que econometria não serve para nada. Também sabemos que são os mesmos nove alunos que não mexem uma palha para pesquisar antes de falar bobagens. No post anterior, falei do livro de Chan (2009).

Aliás, ele é citado em um exemplo mais simples sobre a importância da cointegração em finanças disponível nesta página. Trabalhei no código que o autor fez para adaptá-lo ao meu exemplo. Por que? Porque o autor não faz a regressão considerando os vetores como séries de tempo, o que impede o uso do teste de Engle-Granger sobre os resíduos. Assim, tive que alterar o seu código (e o leitor fica com o dever de casa de comparar ambos os códigos).

Mas eu falava de cointegração e finanças, certo? Bem, Chan (2009) cita a cointegração como um ponto importante na estratégia dos traders. Diz ele:

If a price series (of a stock, a pair of stocks, or, in general, a portfolio of stocks) is stationary, then a mean-reverting strategy is guaranteed to be profitable, as long as the stationarity persists into the future (which is by no means guaranteed). However, the converse is not true. You don’t necessarily need a stationary price series in order to have a successful mean-reverting strategy. Even a nonstationary price series can have many short-term reversal opportunities that one can exploit, as many traders have discovered. [Chan(2009), p.131]

Ah, então esta história de reversão à médiaestacionaridade, que a gente estuda tem algo a ver, né? Pois é. Chan tem um blog e nem preciso dizer que o livro dele está lá, anunciado. Mas então, veja você, uma estratégia de reversão à média é lucrativa caso a estacionaridade persista. Um par de preços?

Vejamos os dados de fechamento ajustados do Yahoo Finance para duas séries. Você poderia fazer o download das mesmas manualmente, caso saiba os códigos. Vamos usar a Toyota e a Honda no exemplo. Mas, ao invés de usar o pacote quantmod, como no post anterior, vou trazer os dados diretamente do site para o R. Note que, sim, sei os códigos. Para a Toyota é TW e para a Honda, HMC. Dê uma olhada no gráfico das séries (o azul é o TW).

honda_toyota

library(zoo)
library(tseries)

# Veja como eu fiz:
tw <-read.csv("http://ichart.finance.yahoo.com/table.csv?s=TW&ignore=.csv", stringsAsFactors=F)
hmc<-read.csv("http://ichart.finance.yahoo.com/table.csv?s=HMC&ignore=.csv", stringsAsFactors=F)

# veja a cara de um deles.

head(tw)

# agora, note que vou pegar a data e o preço ajustado (última coluna) da Toyota (tw) e da Honda (HMC)
tw <-zoo(tw[,7], as.Date(tw[,1]))
hmc <-zoo(hmc[,7], as.Date(hmc[,1]))

# vou fundir as duas.

jap.zoo <-merge(tw, hmc, all=FALSE)

# qual o período?

cat("Date range is", format(start(jap.zoo)), "to", format(end(jap.zoo)), "\n")

# verifique que o período é: 11 de outubro de 2000 a 01 de junho de 2015.

# Agora vou fazer manualmente a regressão, sem intercepto (por isso o "+ 0").
# Em seguida, pego o coeficiente (o único) e construo o spread.

library(dynlm)
j1 <-dynlm(tw~hmc+0, data=jap.zoo)
summary(j1)

sprd <- jap.zoo$tw - beta*jap.zoo$hmc  # serie menos a serie estimada

# outra forma de fazer isso é simplesmente dizer que:
# sprd <- j$residuals

Repare que o spread é construído como o resíduo da regressão que chamei de “j”. Podemos visualmente perceber que o spread não é estacionário (use o comando plot(sprd)). Um teste de raiz unitária sobre ele mostrará que ele não é estacionário.

Isto foi feito neste post, quando, em meio ao exercício, fiz o teste de raiz unitária de Engle-Granger sobre os resíduos (veja lá). Só para exemplificar, eis duas especificações da equação do teste, com 4 e 12 defasagens (o número de defasagens, aqui, arbitrariamente escolhido, por pura preguiça).

y1<-j1$residuals
summary(dynlm(d(y1)~L(y1,1)+L(d(y1),c(1,2,3,4))))
summary(dynlm(d(y1)~L(y1,1)+L(d(y1),c(1,2,3,4,5,6,7,8,9,10,11,12))))

O restante fica a seu cargo. Lembre-se que este teste tem tabela com valores próprios (o livro-texto de Gujarati & Porter, aquele que você provavelmente usa ou já viu na biblioteca, tem esta tabela).

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s