Long-Short através de Cointegração – Parte 4

Após uma longa pausa, aqui está o quarto e último post desta série sobre operações de long-short/pares utilizando cointegração.

Recapitulando: no primeiro post da série, introduzi intuitivamente o conceito de cointegração, que permite encontrar pares (ou outras combinações) de ativos que “andam juntos”. No segundo post, expliquei conceitualmente um teste simples de estacionariedade, conhecido como teste de Dickey-Fuller (DF), apresentei sua versão “aumentada”, e introduzi o Método de Engle-Granger, que permite testar se duas séries não-estacionárias são cointegradas. No terceiro post, mostrei um exemplo prático da aplicação deste teste utilizando o Excel e dei uma ideia de como seria uma possível estratégia de operação de pares usando cointegração.

O objetivo deste post é apresentar uma aplicação completa dos conceitos de cointegração para criar um modelo de operações com pares. Para isto, construirei um modelo de pares muito similar aos modelos utilizados na literatura (e na prática), e farei uma simulação (backtest) dos resultados do modelo. Uma ressalva importante é que este post não é exaustivo, no sentido de que muitas variações e refinamentos podem e devem ser feitos à uma estratégia destas antes da produção. O objetivo é simplesmente ilustrar os conceitos. O modelo apresentado aqui é bastante similar ao utilizado no artigo de Caldeira e Moura (2013). Recomendo fortemente ao leitor interessado em se aprofundar no assunto a leitura do artigo e das referências nele citadas.

Em um post anterior, apresentei o conceito de um modelo básico de pares de ações. Naquele post, utilizei o seguinte diagrama:

ModeloPairsTrading

Criação de uma estratégia de operação com pares

Este diagrama será interessante para explicar a estratégia de pares através de cointegração utilizada, pois ele utiliza-se de simulação para escolher os melhores pares dentro da janela de treinamento (período in-sample ou dentro da amostra) para posteriormente operar na janela de operação (fora da amostra), ou seja, existe uma interação entre o modelo de operação e o de seleção de pares, conforme mostrado do diagrama. Vamos à descrição do modelo:

Modelo de Pares via Cointegração

Partimos de um universo com N ativos observados ao longo de T períodos. Os parâmetros do modelo são os seguintes:
1. Janela de treinamento: período no qual serão determinados os pares cointegrados
2. Janela de operação: período no qual os pares são operados com sinais de entrada e saída
3. Número de pares: o modelo utiliza os n melhores pares de acordo com o índice de Sharpe dentro do período de treinamento.
4. Sinal de entrada: valor do z-spread para iniciar um trade, ou seja, o valor no qual assumimos que o spread do par divergiu do seu comportamento histórico.
5. Sinal de saída: valor do z-spread para encerrar um trade, ou seja, o valor no qual assumimos que o spread do par reverteu à sua média.
6. Duração máxima: maior período em que um trade pode ficar aberto.
7. Stop Loss: perda máxima que um trade pode ter. Se um trade apresentar uma perda maior do que o stop loss, ele é encerrado.

Os pares são selecionados na janela de treinamento através de dois critérios. Primeiramente são selecionados os pares que estão cointegrados através da aplicação da metodologia de Engle-Granger. Em seguida, os pares cointegrados são “operados” nesta janela (dentro da amostra) e os pares com melhor índice de Sharpe são selecionados para operação na janela de operação. Os parâmetros do spread (parâmetros da regressão e a média e desvio padrão do spread) na janela de treinamento (dentro da amostra) são utilizados para calcular os z-scores dos pares na janela de operação (fora da amostra). Este procedimento garante que na nossa simulação, estaremos utilizando apenas valores conhecidos em cada momento (ou seja, não estamos incorrendo no look-ahead bias).

Por exemplo, se a janela de treinamento é de 12 meses e de operação é de 1 mês, então os melhores pares nos primeiros 12 meses são operados no mês seguinte. As janelas são então roladas um mês para frente e o processo reinicia, até o final da amostra. A figura abaixo ilustra este procedimento de janelas móveis:

Esquema treinamento operacao.png

A dinâmica de operação é baseada no valor do z-score, que é o spread do par (resultado da cointegração) normalizado, isto é, subtraído da sua média e dividido pelo desvio padrão. Quando o z-score é muito alto e positivo, o par é vendido (abre-se simultaneamente uma posição vendida na primeira ação e comprada na segunda ação). Quando o z-score é muito negativo, a operação oposta é realizada, isto é, o par é comprado. Uma operação é encerrada se pelo menos uma das condições a seguir ocorre: (i) o z-score do par retorna ao patamar pré-definido; (ii) o P&L da operação cai abaixo do valor de stop-loss; (iii) a operação excede a duração máxima definida pelo modelo; (iv) a janela de operação é encerrada.

No final da simulação, temos o resultado simulado de todas operações realizadas, o que permite calcular estatísticas de rentabilidade e risco do modelo no período.

Detalhes da Simulação

Parâmetros do modelo – Os seguintes valores foram utilizados:

Janela de treinamento: 12 meses
Janela de operação: 1 mês
Número de pares: 20
Sinal de entrada: |z-spread| > 1.7
Sinal de saída: |z-spread| < 1.2
Duração máxima: 1 mês (20 dias)
Stop Loss: 7%

Custos operacionais – Foram considerados custos de bid-ask spread de 0.1% para cada operação, de 2% ao ano para o aluguel de ações, e de 0.05% de corretagem. Os trades foram abertos com o mesmo financeiro em cada ação, ou seja, o modelo é financeiro-neutro (a outra possibilidade é operar beta-neutro). Um comentário sobre os valores de entrada e saída do z-score: eu testei os valores considerados por Caldeira e Moura (2013) (abrir trade em 2 e fechar em 0.5/0.75), porém os resultados foram piores.

Universo de ativos – Para realizar a simulação, é preciso primeiramente definir um universo de ativos. Os trabalhos acadêmicos (como por exemplo o artigo mencionado acima) geralmente utilizam as ações que pertencem a um certo índice como o IBOVESPA no Brasil. Na prática, esta restrição não é necessária. Nesta simulação, eu utilizei os dados diários de preço de fechamento e volume de todas as ações, ETFs e FIIs disponíveis no mercado brasileiro de janeiro de 2001 até maio de 2016, incluindo ações que deixaram de existir, o que elimina o viés de sobrevivência. Para evitar ações ilíquidas, em cada janela de treinamento eu utilizei os 70 ativos com maior volume. Isto significa que o número total de ativos considerados será maior do que 70.

Teste de Cointegração – foi utilizada a metodologia de Engle-Granger com teste ADF, descrita nos posts anteriores.

Cálculo de Retornos – calcular o retorno de operações com pares não é algo trivial. Teoricamente, os retornos de operações long-short não são definidos, uma vez que o investimento inicial pode ser igual a zero. Há duas medidas diferentes de reportar o “retorno” de uma operação de pares. A primeira consiste  em adotar a convenção de que o retorno é dado pelo lucro ou prejuízo da operação (P&L) dividido pelo valor inicial investido em cada ponta. Chamaremos isto de retorno líquido. Se usarmos o valor de R$1, o próprio P&L tem a interpretação de retorno. A segunda consiste em considerar como denominador o capital alocado para manter a operação. Por exemplo, se uma operação consiste em comprar R$10,000 da ação A e vender R$10,000 da ação B, o valor necessário para montar esta operação é igual a R$0. Na prática, as corretoras requerem uma quantia em margem que limita a alavancagem. Esta quantia pode ser usada como denominador para definir um retorno sobre o capital. É importante ressaltar que este capital pode ficar investido em outros ativos que geram retornos (por exemplo, títulos do governo), o que tornará a estratégia mais rentável. Como o número máximo de pares em qualquer período de operação é de 20 pares, eu calculo e reporto os retornos considerando 1/20 do capital investido em cada par, ou seja, a alavancagem máxima da carteira é 1 (esta restrição não é necessária). Reportarei tanto os retornos líquidos (ou seja os retornos apenas das operações com pares) como os retornos sobre o capital, considerando que o capital excedente renderia 100% do CDI. Caldeira e Moura (2013) consideram um esquema “fully invested” no qual um certo capital é 100% investido nos pares que estão abertos, e a carteira é rebalanceada para manter 100% do capital investido.

Resultados da Simulação (01/2002 – 05/2016)

O modelo foi simulado de janeiro de 2001 até maio de 2016. Isto significa que o primeiro período de operação foi janeiro de 2002. A tabela abaixo resume os resultados considerando os retornos líquidos das operações. Observação: o P&L abaixo não está normalizado para a duração de cada operação.

Número de ações 162
Número de pares operados 1212
Número de operações 3817
P&L médio por operação (financeiro de R$1,00) 1.12%
Desvio padrão P&L 9.34%
Razão de informação 0.12
% operações ganhadoras 57.20%
% operações perdedoras 42.80%
Pior P&L -58.90%
Melhor P&L 84%
Mediana P&L 1.33%
Duração média (dias) 5.35
Duração mediana (dias) 4

Vemos que a estratégia parece capaz de gerar ganhos financeiros razoáveis, com uma convergência rápida da maioria das operações. O gráfico abaixo mostra o histograma da duração em dias das operações. Mais de 85% das operações encerra em menos de 10 dias. duracao

Resultados com Retornos Líquidos

Os resultados abaixo são baseados nos retornos líquidos da carteira que investe 1/20 do capital em cada par, sem considerar a remuneração do capital. Como mencionei antes, esta estratégia não ficará com 100% do capital alocado nos pares, a não ser que todos os 20 pares estejam abertos simultaneamente. Vemos que a estratégia apresentou um retorno médio de 11.4% com volatilidade de 11.21%, o que não é ruim considerando que a estratégia não toma risco direcional. O drawdown máximo foi de -14.5%. Vemos que, apesar de a estratégia ser financeiro-neutra, o que é confirmado pela exposição média da carteira de 0.35%, ela teve períodos em que chegou as estar quase 10% comprada e quase 16% vendida. O maior valor short foi de -68.66% e o maior long foi de 74.92%, confirmando que não tivemos nenhum período em que todos os 20 pares estavam abertos simultaneamente. Estes resultados são conservadores, pois assumem que o capital fica parado, ou seja, poderia estar sendo investido nos pares que estão abertos. Apesar de a estratégia diferir da de Caldeira e Moura (2013) em vários aspectos, os resultados para o período do artigo (2002 a 2006) são muito similares (não reportados).

Retorno médio 11.40%
Volatilidade 11.21%
Retorno total 327.89%
Índice de Sharpe 1.02
Drawdown máximo -14.50%
Pior mês -7.58%
Melhor mês 19.89%
% dias positivos 45.96%
% meses positivos 61.27%
Exposição média carteira 0.35%
Exposição máxima carteira 9.67%
Exposição mínima carteira -15.98%
Máximo short carteira -68.66%
Máximo long carteira 74.92%

A tabela abaixo mostra os retornos por ano. Notamos que a estratégia foi positiva em todos os anos, com retornos muito altos entre 2008 e 2010. Isto não é surpreendente, já que estratégias long-short tendem a ser muito boas em períodos de volatilidade alta.

Ano Retorno líquido (%)
2002 3.37
2003 6.96
2004 10.25
2005 8.68
2006 10.5
2007 9.22
2008 16.74
2009 37.85
2010 18.9
2011 8.49
2012 5.45
2013 0.43
2014 9.48
2015 4.38
2016 6.53

Finalmente, a figura abaixo mostra a evolução do P&L acumulado.

pnlacumulado.png

Resultados com Remuneração do Capital (2002-2016)

Na prática, uma estratégia de pares requer pouco capital, o que significa que quase 100% do capital poderia ficar investido em títulos (ou qualquer ativo que seja aceito como margem) a maior parte do tempo. Os fundos em geral definem um target  de alavancagem ou volatilidade para a estratégia. Os resultados abaixo consideram que o capital livre é remunerado a 100% do CDI. O investimento nos pares segue a mesma regra de 1/20 do capital, ou seja, a alavancagem nunca é superior a 1.

Os resultados abaixo mostram a grande contribuição de investir o capital livre. Vemos que o retorno médio, muito mais alto, é uma combinação do retorno da estratégia pura (mostrado anteriormente) com a rentabilidade do CDI. Obviamente, os resultados são bastante aumentados pelo alto valor do CDI, principalmente no início do período. Os resultados por ano (tabela seguinte) corroboram isto. O retorno total é muito alto devido à natureza dos juros compostos, uma vez que a estratégia reinveste os lucros a cada período.

Retorno médio 26.38%
Volatilidade 11.36%
Retorno total 2497.02%
Índice de Sharpe 2.32
Drawdown máximo -14.74%
Pior mês -6.66%
Melhor mês 20.97%
% dias positivos 59.89%
% meses positivos 85.55%
Exposição média carteira 0.35%
Exposição máxima carteira 9.71%
Exposição mínima carteira -16.46%
Máximo short carteira -70.54%
Máximo long carteira 75.21%
Ano Retorno líquido (%)
2002 22.64
2003 31.6
2004 27.88
2005 29.04
2006 27.46
2007 22.65
2008 31.59
2009 51.41
2010 30.62
2011 21.14
2012 14.31
2013 8.53
2014 21.34
2015 18.17
2016 11.21

O gráfico abaixo mostra o retorno acumulado da carteira e do CDI. pnlacumulado-com-capital

Resultados com Remuneração do Capital (2010-2016)

Os resultados acima mostram que a estratégia funciona em um período longo (15 anos), durante a qual houve períodos atípicos (juros muito altos, crise de 2007-2008 etc). Por este motivo, é interessante avaliar o resultado da estratégia em um período mais recente. Para isto rodamos a simulação de 2010 a 2016. Os resultados (tabela e gráfico abaixo) mostram um resultado muito consistente. Tanto a volatilidade como o retorno são mais baixos, reflexo da exclusão do período de alta volatilidade da crise de 2007-2008 e do período de CDI muito alto. O drawdown máximo é cerca de metade do observado no período anterior.

Retorno médio 20.07%
Volatilidade 9.44%
Retorno total 208.97%
Índice de Sharpe 2.13
Drawdown máximo -7.25%
Pior mês -4.10%
Melhor mês 7.79%
% dias positivos 59.13%
% meses positivos 85.71%
Exposição média carteira 0.35%
Exposição máxima carteira 9.06%
Exposição mínima carteira -5.68%
Máximo short carteira -67.73%
Máximo long carteira 74.48%

pnlacumulado-com-capital-2010-2016

Considerações Finais

Este post encerra a série de Long-Short através de cointegração e teve o objetivo de apresentar um exemplo de um modelo completo usando este conceito. O modelo apresentado teve desempenho muito forte ao longo de um período de 15 anos, com uma consistência impressionante. Alguns comentários são importantes:

  • Refinamentos – o modelo apresentado é bastante simplista. Uma implementação deste modelo na vida real requer um estudo mais aprofundado em termos dos parâmetros. Em especial, destacaria os seguintes pontos: a estabilidade da relação de cointegração e testes alternativos de cointegração (como o teste de Johansen); estudo das regras de abertura e fechamento das operações); modelagem do spread através de modelos de séries temporais (ver Tsay 2010) e estimação do z-score.
  • Caveats da simulação – a simulação usando os dados de fechamento é simplista demais. Mesmo que o horizonte do modelo seja dados diários, o ideal seria utilizar os preços da ações em um determinado horário do dia, e capturar o bid-ask observado das ações, que reflete melhor o custo de compra e venda dos ativos de maneira. Além disto, usando dados de alta frequência é possível simular se um par daria sinais de entrada ou saída durante o dia.
  • Operacionalização – fazer a simulação é o primeiro passo, mas implementar uma estratégia destas requer sofisticação no controle da carteira de pares e principalmente habilidade de executar ordens de maneira automática e rápida.
  • Controle de riscos – uma estratégia destas requer controles de riscos ativo, principalmente no que toca à concentração em ativos e setores.

Update – comparação β-neutro vs $-neutro

Os resultados mostrados acima foram obtidos com a abordagem $-neutra, ou seja, as operações são abertas com o mesmo valor financeiro comprado e vendido. Do ponto de vista teórico, existe um argumento a favor de utilizar a abordagem β-neutra, na qual opera-se uma quantidade β de um dos ativos para cada uma quantidade do outro (onde o β é obtido da regressão de cointegração), já que desta maneira, a posição operada (desde que o par seja cointegrado) é estacionária. Na abordagem β-neutra, a exposição líquida da carteira pode variar mais e a carteira pode ficar net comprada ou net vendida, pois o valor financeiro nas pontas não é necessariamente igual. Uma vantagem de manter a carteira $-neutra é que o valor líquido da carteira é mais previsível e não está sujeito ao erro de estimação do beta.

Para comparar as duas abordagens, rodei o modelo β-neutro e o modelo $-neutro para o período 2010-2016, ajustando as exposições dos dois modelos para obter a mesma volatilidade de 12% (um valor arbitrário, mas que garante comparabilidade e alavancagem relativamente baixa). Os resultados obtidos com o modelo β-neutro foram piores do que os do modelo $-neutro. O retorno médio do modelo β-neutro foi de 17.31%, enquanto o do modelo $-neutro foi de 23.70%. Os índices de Sharpe e Sortino também foram piores, apesar de o modelo $-neutro apresentar um drawdown máximo maior.

Outro ponto interessante é a exposição líquida da carteira. Conforme esperado, a carteira $-neutra, por construção, mantém uma alocação líquida próxima de zero, com uma exposição média de 0.46% do capital, máxima de 12.32% e mínima de -5.44%. Ela não fica completamente zerada devido às movimentações dos ativos nas operações abertas, já que uma vez que uma operação é aberta, ela não é rebalanceada. Já a carteira β-neutra fica net vendida 7% do capital, na média, com uma exposição net máxima de 0.62% e mínima net de -56.12%. Isto significa que o custo de aluguel desta operação é maior, pois é preciso carregar uma posição short maior do que a posição long.

β-neutro $-neutro
Retorno médio 17.31% 23.7%
Volatilidade 12% 12%
Retorno total 162.06% 266.58%
Índice de Sharpe 0.57% 1.1%
Drawdown máximo -8.38% -9.83%
Pior mês -5.18% -6.56%
Melhor mês 8.94% 12.88%
% dias positivos 56.94% 58.32%
% meses positivos 72.73% 77.92%
Exposição média carteira -7.00% 0.46%
Exposição máxima carteira 0.62% 12.32%
Exposição mínima carteira -56.12% -5.44%
Máximo short carteira -116.14% -89.01%
Máximo long carteira 79.21% 100.19%

O gráfico abaixo apresenta a comparação do P&L acumulado das duas versões. beta-neutro

Referências

Os artigos abaixo são úteis para aprofundar o estudo deste tipo de modelo. Este post possui links para o download destes artigos.

Caldeira, J. F. e Moura, G.V. (2013), Rev. Bras. Finanças, Vol. 11, No. 1, March 2013, pp. 49–80.

Gatev, E., Goetzmann, W. N., & Rouwenhorst, K. G. (2006). Pairs Trading: Performance of a Relative Value Arbitrage Rule. The Review of Financial Studies, 19, 797–827.

Avellaneda, M., & Lee, J. (2010). Statistical arbitrage in the US equities market. Quantitative Finance, 10, 1–22.

Tsay, R. (2010). Analysis of Financial Time Series. Wiley.

 

 

 

 

Anúncios

Long-Short através de Cointegração – Parte 3

Este post é parte de uma série sobre como fazer operações de arbitragem estatística (long-short) através da técnica de cointegração. No primeiro post da série, introduzi intuitivamente o conceito de cointegração, que permite encontrar pares (ou outras combinações) de ativos que “andam juntos”. No segundo post, expliquei conceitualmente um teste simples de estacionariedade, conhecido como teste de Dickey-Fuller (DF), apresentei sua versão “aumentada”, e introduzi o Método de Engle-Granger, que permite testar se duas séries não-estacionárias são cointegradas.

Neste post, darei um exemplo prático da aplicação deste teste utilizando o Excel. É necessário ter o pacote de Análise de Dados instalado.

Relembrando, o processo para testar se duas séries são cointegradas consiste em primeiro testar se elas são não-estacionárias. Caso ambas sejam, é feita uma regressão entre as séries de preços, e utiliza-se o teste DF (ou o teste DF Aumentado) para testar a estacionariedade dos resíduos. Se os resíduos forem estacionários, a série é cointegrada.

Escolhi as ações QUAL3 (QualiCorp SA, uma empresa do ramo de seguro-saúde) e RENT3 (Localiza Rent a Car SA, uma locadora de automóveis) para o exercício. Os dados compreendem o período entre outubro de 2012 e outubro de 2014. Estas duas ações são cointegradas ao nível de 1% de significância neste período, o que é um tanto contra-intuitivo, considerando que são de setores totalmente diferentes. Todos os cálculos mencionados estão demonstrados e explicados na planilha que acompanha o post, disponível no link abaixo:

Download-Button_1700x1000_zpsce011000

 

 

Ressalto que esta escolha foi arbitrária e ilustrativa, e não quer dizer que seja possível operar este par de maneira lucrativa.

Comecemos por analisar as séries de preços das duas ações. Conforme podemos ver no gráfico abaixo, os preços das duas ações parecem se comportar, à primeira vista, de maneira similar:

Precos QUAL3 RENT3

 

Passo 1 – Testar se cada série é não-estacionária

Vamos começar. O primeiro passo é testar se cada uma das séries é não-estacionária, aplicando o teste DF em cada série de preços. A hipótese nula do teste DF é que a série é não-estacionária, portanto neste primeiro teste queremos que a hipótese nula não seja rejeitada.

Para aplicar o teste DF, precisamos primeiro calcular os valores defasados (lags) de cada série e o delta (diferença entre o preço do dia e o preço do dia anterior), e após isto fazer regressão do delta no lag. Por exemplo, para QUAL3 esta regressão seria:

\Delta P_t^{QUAL3}= a + b P_{t-1}^{QUAL3} + e_t^{QUAL3}

onde P_t^{QUAL3} representa o preço de QUAL3 no dia t e \Delta P_t^{QUAL3} = P_t^{QUAL3} - P_{t-1}^{QUAL3} é o delta do preço de QUAL3.

Ao estimar esta regressão (aba “Teste Estac. QUAL3”), obtemos a seguinte equação:

\Delta P_t^{QUAL3}= 21.37 -0.45 \times P_{t-1}^{QUAL3}

e o valor da estatística t para o coeficiente b é -1.29. O valor crítico do teste DF (ver tabela no segundo post da série) é de -2.87. Portanto concluímos com base no teste DF que a série é não-estacionária (não rejeitamos a hipótese nula pois a estatística do teste é menor do que o valor crítico).

O teste para RENT3 chega à mesma conclusão (ver aba “Teste Estac. RENT3”). Podemos então seguir para o próximo passo.

Passo 2 – Aplicar Metodologia de Engle-Granger

No segundo passo temos duas etapas: primeiro estimaremos uma regressão dos preços de QUAL3 em RENT3 e salvaremos os resíduos desta regressão. A seguir, aplicaremos o teste DF nestes resíduos. Neste teste queremos que a hipótese nula de não-estacionariedade seja rejeitada, o que implicará que uma combinação linear dos preços das ações é estacionária e portanto elas são cointegradas.

Estes passos estão detalhados na aba “Regressão Engle-Granger”. Primeiramente é feita a regressão dos preços de QUAL3 em RENT3:

P_t^{QUAL3}=\alpha P_t^{RENT3}+u_t

Os resíduos \hat{u}_t (também chamados de spread do par) são salvos para a segunda etapa, que consiste em estimar a regressão:

\Delta u_t=a +b u_{t-1}+v_t

A estimação desta segunda regressão resulta em uma estatística t de -4.60 para o coeficiente b. Como o valor crítico é -2.87 a 5% de significância, e -3.44 a 1% de significância, podemos rejeitar a hipótese nula de não-estacionariedade ao nível de 1% de significância, concluindo portanto que as duas séries são cointegradas.

O teste de cointegração em si está concluído, porém isto não implica que o par possa ser operado com sucesso. Para isto é necessário avaliar se o comportamento do spread é adequado e realizar algum tipo de simulação (backtest). Idealmente queremos que o spread apresente o seguinte comportamento:

  • Relação de cointegração estável ao longo do tempo
  • Reversão frequente do spread à média
  • Variabilidade razoavelmente grande nas divergências

Com relação ao primeiro ponto, podemos nos questionar se a relação de cointegração entre duas ações de setores tão diferentes será estável ao longo do tempo; pode ser que seja um resultado espúrio, afinal estamos falando de um teste estatístico que possui uma probabilidade de erro. É importante ressaltar que relações de cointegração podem “quebrar” a qualquer momento. Um resultado positivo em um teste de cointegração é um indício de que o par pode ser operável, mas não garante resultado futuro. É preciso reavaliar periodicamente a relação de cointegração para detectar possíveis mudanças no comportamento das séries.

O gráfico abaixo apresenta a evolução do spread ao longo do tempo, com duas bandas representando -2 e 2 vezes o desvio padrão dos resíduos. Vemos que, apesar de os resíduos apresentarem certa persistência, comportam-se de maneira aparentemente desejável: flutuam razoavelmente ao redor da média, visitando-a com certa frequência. Uma regra possível de operação consistiria em vender o par quando o resíduo estiver acima da banda, e comprar o par quando estiver abaixo da banda. O trade pode ser encerrado quando o par voltar a média ou a um percentual qualquer da média. A simulação do resultado deste tipo de estratégia pode ser feita de maneira muito similar à que introduzi neste post.

spread

 

Automatização

Conforme o leitor deve ter percebido, o processo de teste de cointegração de 1 par utilizando o Excel é complicado e possui vários passos. Na prática, um modelo para operar pares precisa avaliar milhares de combinações possíveis e torna-se inviável ou pouco prático fazer isto no Excel. O número de pares possíveis com N ações é N(N-1)/2, ou seja, com 100 ações (uma estimativa razoável do número de ações líquidas no mercado brasileiro) temos 4950 pares possíveis. Neste caso é recomendável utilizar alguma plataforma matemática como o R ou o Matlab. No R pode-se utilizar por exemplo o pacote tseries, que possui a função adf.test para fazer o teste DF. No Matlab há o toolbox de Econometria, que possui a função similar adftest.

No próximo post, falarei em linhas gerais sobre como montar um modelo geral para operar pares cointegrados, e potencialmente dar alguns exemplos em Matlab.

Long-Short através de Cointegração – Parte 2

No primeiro post desta série, introduzi de maneira intuitiva o conceito de cointegração, que permite encontrar pares de ativos que “andam juntos”. Estes pares são bons candidatos para se construir um modelo de operação com pares.

Neste post, explicarei como realizar um teste simples, mas amplamente utilizado, de cointegração*. Aviso: usarei alguns conceitos de Estatística como regressão linear e teste de hipótese. No próximo post, o teste será demonstrado com exemplos reais no Excel e também comentarei como realizá-lo em programas como R e Matlab.

Teste de Estacionariedade (teste de Dickey-Fuller)

Como podemos testar a estacionariedade de uma série? Podemos começar considerando  um modelo simples de séries temporais, o modelo autoregressivo de ordem 1, ou AR(1). Este modelo tem a seguinte forma:

y_t = a + b y_{t-1} + e_t

onde y_t é o valor da série temporal no instante t, e e_t é um choque aleatório. A equação acima mostra que no modelo AR(1), o valor presente da série depende do valor anterior, multiplicado por uma constante b, mais um choque aleatório.

O modelo AR(1) é importante porque ele pode ser estacionário ou não, dependendo do valor de b. Se b<1, o modelo é estacionário, enquanto se b=1 o modelo é não-estacionário (dizemos que possui uma raiz unitária). Se subtrairmos y_{t-1} dos dois lados da equação acima, temos:

y_t -t_{t-1}= a + (b-1) y_{t-1} + e_t

\Delta y_t = a + b^* y_{t-1} + e_t

onde \Delta y_t = y_t -y_{t-1} e b^*=b-1. Agora podemos realizar um teste de estacionariedade com as seguintes hipóteses:

H_0: b^*=0\quad\textrm{(a s\'erie \'e n\~ao-estacion\'aria) VS}\quad H_1: b^*<0\quad\textrm{(a s\'erie \'e estacion\'aria)}

Caso o leitor ainda esteja acordado, este teste pode ser feito de maneira muito simples, fazendo uma regressão linear de \Delta y_t em y_{t-1}. Este teste é conhecido como teste de Dickey-Fuller**. A estatística do teste é simplesmente a estatística-t para o coeficiente b^* acima, porém os valores críticos não são os mesmos de um teste t normal (ver tabela no final do post).

Como este teste nos ajudará a encontrar pares de ações cointegradas? Simples. Em primeiro lugar, para que o par seja cointegrado, ambas as séries de preços precisam ser não-estacionárias, pois lembre-se que a cointegração é uma relação entre duas séries integradas. Após utilizarmos o teste acima para verificar que os preços das duas ações são não-estacionários, aplicaremos um segundo teste para verificar se o spread entre as duas séries é estacionário. Este segundo passo é conhecido como metodologia de Engle-Granger.

Teste de Cointegração (metodologia de Engle-Granger)

No post anterior, definimos cointegração da seguinte maneira: dizemos que duas séries temporais (não-estacionárias) X e Y são cointegradas se existe um número \alpha tal que a série Z=X-\alpha Y  é estacionária. Ou seja, dadas duas séries não-estacionárias, se uma combinação linear delas for estacionária, elas são cointegradas.

A metodologia de Engle-Granger consiste em dois passos: primeiro fazemos uma regressão linear de uma série temporal contra a outra. Em seguida, aplicamos um teste de estacionariedade (como por exemplo o teste de Dickey-Fuller) nos resíduos desta regressão. Se os resíduos forem estacionários, isto significa que encontramos a combinação linear tal que as duas séries são cointegradas

O processo completo para fazer um teste de cointegração entre duas séries de preços (vamos chamá-las de X_t e Y_t) segue portanto os seguintes passos:

1. Usar um teste de estacionariedade para verificar se X_t e Y_t são não-estacionárias. Para haver cointegração, ambas devem ser não-estacionárias.

2. Usando dados das duas séries temporais, rodar uma regressão com a forma abaixo:

Y_t=\alpha X_t+u_t

e calcular os resíduos \hat{u} = Y_t - \hat{\alpha} X_t

3. Testar a estacionariedade dos resíduos \hat{u_t} desta regressão. Caso eles sejam estacionários, as séries são cointegradas.

No próximo post veremos alguns exemplos de aplicação destes testes a pares de ações brasileiras. É importante ressaltar que esta é apenas uma das metodologias de cointegração existentes. Existem outros tipos de testes, como por exemplo a metodologia de Johansen.

———————————————————————————-

Tabela de valores críticos do teste Dickey-Fuller:

Níve de significância
Tamanho amostral 1% 5% 10%
25 -3,75 -3,00 -2,62
50 -3,58 -2,93 -2,60
100 -3,51 -2,89 -2,58
250 -3,46 -2,88 -2,57
500 -3,44 -2,87 -2,57
∞∞ -3,43 -2,86 -2,57
Fonte: Market Risk Analysis, Vol II, Carol Alexander.

* O objetivo deste post é introduzir o leitor aos conceitos básicos de cointegração.Há inúmeros detalhes técnicos que devem ser considerados para aplicar os testes corretamente. Algumas referências técnicas com mais detalhes: o segundo volume da série Market Risk Analysis daCarol Alexander ou o livro Analysis of Financial Time Series deTsay.

** Uma versão mais sofisticada do teste possui o infeliz nome de Teste de Dickey-Fuller Aumentado. A diferença entre este teste e o teste de Dickey-Fuller normal é que ele inclui mais lags da série temporal na regressão.