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.

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

Em alguns posts anteriores, falei em linhas gerais sobre arbitragem estatística (aqui e aqui) e descrevi um modelo genérico para operar pares de ações, com uma aplicação usando o modelo de bandas de Bollinger. Nesta sequência de posts, explicarei um modelo mais sofisticado de arbitragem estatística, através do conceito de cointegração.

Estratégias de arbitragem estatística são baseadas em encontrar uma série temporal que possua a característica de estacionariedade ou reversão à média. Isto significa que é possível identificar situações em que a série divergiu de seu comportamento histórico, e prever com alguma segurança que a série convergirá ou reverterá para um comportamento “médio”. O conceito de cointegração formaliza matematicamente este comportamento e permite a realização de testes estatísticos para detectar séries com este comportamento. No contexto de operações com pares de ativos (pairs trading), a existência de uma relação de cointegração entre as séries de preços de dois ativos significa que pode ser possível realizar operações lucrativas de arbitragem. Por outro lado, se o par não for cointegrado, será impossível encontrar uma relação consistente para operar o par.

A Metáfora do Bêbado e seu Cachorro

Antes de definirmos matematicamente a cointegração, convém explicarmos com uma metáfora. Imagine que um bêbado está passeando pelo parque, andando a esmo. Sua direção é imprevisível: às vezes ele vira para a direita, às vezes ele vira para a esquerda. A trajetória do bêbado é chamada, na Estatística, de passeio aleatório: é um processo imprevisível*. Supondo que o bêbado continuará andando indefinidamente, é impossível prever onde ele estará após um certo tempo, e a melhor previsão da sua posição é o último lugar em que ele foi visto.

Se representarmos graficamente a posição do bêbado ao longo do tempo (distância entre o bêbado e um ponto qualquer de referência), o resultado será algo parecido com isto:

Este gráfico mostra a posição de um bêbado andando aleatoriamente (passeio aleatório Gaussiano)

Este gráfico mostra a posição de um bêbado andando aleatoriamente (passeio aleatório Gaussiano)

Agora imaginemos que o bêbado possui um cachorro, que o acompanha onde quer que ele vá. O cachorro não possui coleira e tende a se afastar do dono, atraído pelos diferentes cheiros e estímulos que sente ao andar pelo parque. Porém o bêbado, sempre que percebe que o cachorro não está por perto, o chama, e o cachorro retorna. O gráfico com a posição do bêbado e do cachorro será algo assim:

Este gráfico mostra as posições de um bêbado e seu cachorro (passeio aleatório Gaussiano e processo cointegrado)

Este gráfico mostra as posições de um bêbado e seu cachorro (passeio aleatório Gaussiano e processo cointegrado)

Podemos ver que, apesar de a posição do bêbado no parque ser imprevisível, a posição do cachorro em relação ao bêbado é relativamente previsível: o cachorro nunca está muito longe do dono. Podemos ir um passo adiante e quantificar isto, medindo a distância entre os dois, ou seja, a diferença entre as duas séries temporais do gráfico acima. O gráfico abaixo apresenta esta diferença e duas “bandas”, que representam pontos extremos na distribuição desta distância.

Distância entre o bêbado e o cachorro e bandas de confiança

Distância entre o bêbado e o cachorro e bandas de confiança

Podemos ver que, na média, o cachorro está sempre próximo do bêbado. Além disto, quando a distância se aproxima de +1 ou -1, há uma probabilidade muito grande de que no próximo instante a distância reverterá para sua média próxima de zero. Isto sugere que é possível apostar, com alta chance de ganhar, que o cachorro estará junto ao dono logo após se distanciar acima das bandas  mostradas. As bandas podem ser estimadas, por exemplo, através de uma medida de dispersão como o desvio padrão. No gráfico acima, as bandas representam um intervalo de +2 ou -2 desvios-padrão da média da distância. Este conceito é o mesmo utilizado no modelo de bandas de Bollinger.

Voltando ao mundo financeiro…

Talvez você esteja se perguntando porque estou falando de bêbados e cachorros em um blog sobre mercado financeiro. Transferindo a analogia acima para o mercado de ações, suponha que seja possível encontrar um par de ações que possui um comportamento similar, ou seja, que “andam juntas”. Se as séries de preços das ações forem cointegradas, ou seja, se uma das empresas for o bêbado e a outra, o cachorro, então será possível quantificar quanto a distância entre os preços das ações, que chamamos de spread, varia ao longo do tempo, e explorar situações nas quais esta distância divergiu de seu comportamento histórico.

É importante lembrar que o número de pares possíveis de ações aumenta rapidamente com o tamanho do mercado. Por exemplo, com um universo de 50 ações, existem 1125 pares possíveis. Com 100 ações, o número de pares sobre para 4950. Podemos ver como simular estratégias de operação com todos os pares possíveis pode se tornar um processo oneroso ou mesmo inviável. Sabemos também que, se um par não for cointegrado, é inútil tentar encontrar uma estratégia de reversão a média. Portanto é necessário termos um teste para identificar quais pares de ações são cointegrados. Mesmo dentro do universos dos pares que são cointegrados, não há garantia de sucesso. É preciso que o par possua algumas características específicas para que uma estratégia de arbitragem seja consistentemente lucrativa:

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

Definindo Cointegração

Para definir cointegração, definiremos primeiro alguns conceitos básicos:

Série temporal: uma série temporal é uma coleção de valores ordenados no tempo. Por exemplo, os preços diários de uma ação constituem uma série temporal. Se denotarmos por P^A_{t} o preço da ação A no instante t, então a coleção de valores {P^A_{1}, P^A_{2}, P^A_{3},... } etc é uma série temporal.

Estacionariedade: uma série temporal é estacionária** se (i) a sua média é constante, (ii) a sua variância é constante e (iii) a covariância entre dois instantes da série temporal t e s depende apenas da diferença entre t e s.

Uma série estacionária é chamada em Estatística de I(0) ou “integrada de ordem zero”. Uma série não-estacionária, mas cuja primeira diferença é estacionária, é chamada de integrada de ordem 1, ou I(1).

Por exemplo, a série temporal da distância entre o bêbado e o cachorro, mostrada acima, é estacionária: sua média é constante (de fato é igual a zero), sua variância é constante, e é possível mostrar que a covariância entre dois pontos quaisquer da série depende apenas da distância entre estes pontos. Já a posição do bêbado ou do cachorro são exemplos de séries não estacionárias. Não existe uma posição média na qual espera-se encontrá-los.

Em geral, séries de preços de ativos são não-estacionárias, ou seja, não é possível, definir um preço médio em torno do qual uma ação oscila consistentemente. O preço da ação pode subir indefinidamente ou pode chegar a zero, caso a empresa vá à falência.

Podemos agora definir cointegração para o caso de duas séries temporais não-estacionárias X e Y.  Dizemos que 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.

Cointegração vs Correlação

Muitas vezes o conceito de correlação é utilizado para construir estratégias com pares de ações. Isto não é indicado, pois o fato de duas séries terem alta correlação não garante que o seu spread seja estacionário. Cointegração e correlação são conceitos relacionados, porém diferentes. Em particular, alta correlação não implica em cointegração, nem tampouco um alto nível de cointegração implica em correlação alta. Por exemplo, o gráfico abaixo mostra duas séries temporais cointegradas, mas cuja correlação é apenas 0.30. As séries estarão, no longo prazo, andando juntas, porém, no curto prazo, seus movimentos tem pouca relação entre si. Note que a diferença entre as duas séries é estacionária.

Séries cointegradas mas com baixa correlação

Séries cointegradas mas com baixa correlação

O oposto também é possível. O gráfico abaixo mostra duas séries altamente correlacionadas (correlação = 0.78) mas que não são cointegradas. Note que as séries estão se distanciando uma da outra e a sua diferença não é estacionária.

Séries altamente correlacionadas, mas não cointegradas.

Séries altamente correlacionadas, mas não cointegradas.

No próximo post, explicarei como fazer um teste de cointegração.

Uma boa referência para estes conceitos é o segundo volume da série Market Risk Analysis daCarol Alexander.

 

* Porém é possível demonstrar matematicamente que o bêbado sempre encontra o caminho para casa!

** Esta é a definição de estacionariedade fraca. Ver as referências para maior formalismo.

 

Pares com TBLE3

Um leitor perguntou sobre possíveis pares com a ação TBLE3 (TRACTEBEL ON). Com o intuito de auxiliá-lo, fiz algumas simulações para tentar identificar pares que possam ser rentáveis.

Detalhes das simulações:

  • Utilizei o modelo de Bandas de Bollinger, o modelo mais simples para operar pares de ações (veja aqui os detalhes básicos deste modelo e aqui detalhes sobre uma planilha que implementa o modelo).
  • Os parâmetros do modelo são:
    • Cálculo da média e desvio padrão com janela móvel de 20 dias
    • Abrir o trade quando a razão do par estiver acima de 2 desvios-padrão da média
    • Fechar o trade quando a razão convergir para a média
    • Fechar o trade se a razão não convergir em até 20 dias
    • Cada trade tem um valor nocional de R$10.000 em cada ponta
  • Utilizei dados diários de fechamento entre jan/2010 e fev/14. 
  • Inclui custos simulados de bid-ask, aluguel e corretagem.

Sempre bom lembrar do velho e bom Disclaimer. As informações apresentadas aqui são de caráter meramente informativo e educacional.

Fiz dois conjuntos de testes: um considerando apenas pares dentro do mesmo setor (Utilidades Públicas), e um possibilitando pares com ações de outros setores.

Apenas Pares Intrasetoriais

Foram testados 18 pares intrasetoriais com TBLE3. Destes, 14 apresentaram resultados positivos, baseado no critério de uma razão de informação¹positiva. Entretanto, os valores da razão de informação são relativamente baixos, indicando variabilidade no P&L.

Simulação de pares intrasetoriais com TBLE3

Simulação de pares intrasetoriais com TBLE3

O melhor par do backtest é o par de EQTL3 (Equatorial ON) com TBLE3. O gráfico abaixo mostra a evolução da razão do par, com as bandas de Bollinger.

Razão do par EQTL3_TBLE3 com bandas de Bollinger

Razão do par EQTL3_TBLE3 com bandas de Bollinger

Notamos que o par oscila entre períodos de comportamento mais estável com diversos momentos de tendência forte, os quais são ruins para um trade de convergência como o de pares. Em particular, o período mais recente em 2014 apresenta uma tendência forte de alta do par. Isto impactou negativamente o P&L do par nos trades mais recentes, conforme o gráfico de P&L acumulado por trade abaixo (a performance no passado, no entanto, foi muito forte, o que o que sugere investigar se há motivos fundamentalistas para entender a mudança no comportamento do par).

P&L por trade e acumulado da estratégia de bandas de Bollinger do par EQTL3_TBLE3

P&L por trade e acumulado da estratégia de bandas de Bollinger do par EQTL3_TBLE3

O segundo melhor par, com SBSP3 (SABESP ON), combina uma ação do mesmo setor, porém de uma indústria diferente. O gráfico de P&L acumulado mostra que o par tende a funcionar, porém possui alguns períodos de drawdowns severos.

P&L por trade e acumulado da estratégia de bandas de Bollinger do par SBSP3_TBLE3

P&L por trade e acumulado da estratégia de bandas de Bollinger do par SBSP3_TBLE3

O par GETI4_TBLE3 parece ser um pouco mais estável, com poucos trades negativos. Um destes trades, porém, é bastante severo.

P&L por trade e acumulado da estratégia de bandas de Bollinger do par GETI4_TBLE3

P&L por trade e acumulado da estratégia de bandas de Bollinger do par GETI4_TBLE3

 

Pares Sem Restrição de Setor

Em geral, é muito mais difícil encontrar pares intersetoriais estáveis. Neste caso, é preciso analisar as empresas com muito cuidado, pois a chance de se ter uma relação espúria é maior. Do ponto de vista matemático, é esperado que sejam encontrados pares intersetoriais com desempenho (dentro da amostra) melhor do que o dos pares intrasetoriais, visto que os pares intrasetoriais representam uma restrição dentro do conjunto de todos os pares. Na simulação sem restrição de setor, foram considerados todos os pares (inter e intrasetoriais). O total de pares testado foi de 144. Destes, 102 apresentaram razão de informação positiva, porém apenas 20 apresentaram valores relativamente bons (acima de 0.4).

O melhor par da lista for o par com CCRO4 (CCR SA ON, uma empresa do setor de Construção e Transporte). O gráfico abaixo mostra que os preços das duas empresas tendem a andar juntos, o que é uma indicação de que o par pode ser operável.

Histórico dos preços de CCRO3 e TBLE3

Histórico dos preços de CCRO3 e TBLE3

A razão deste par apresenta um comportamento relativamente estável; mesmo nos períodos de tendência, há correções frequentes que levam a crer que a convergência dos trades é possível:

Razão do par EQTL3_TBLE3 com bandas de Bollinger

Razão do par EQTL3_TBLE3 com bandas de Bollinger

O P&L acumulado possui um comportamento muito bom, com apenas 3 trades negativos entre os 33 trades do período:

P&L por trade e acumulado da estratégia de bandas de Bollinger do par CCRO3_TBLE3

P&L por trade e acumulado da estratégia de bandas de Bollinger do par CCRO3_TBLE3

Um outro par interessante é com UGPA3 (Ultrapar Participacoes S.A. PN, uma empresa que atua em diversos setores):

P&L por trade e acumulado da estratégia de bandas de Bollinger do par TBLE3_UGPA3

P&L por trade e acumulado da estratégia de bandas de Bollinger do par TBLE3_UGPA3

Conclusão

Apresentei algumas possibilidade de operações com pares com a ação TBLE3. Os pares de TBLE3 dentro do setor de Utilidades Públicas não pareceram muito consistentes. Pares de TBLE3 com empresas de outros setores parecem promissores, porém é importante ressaltar novamente que pares intersetoriais são muito mais arriscados, pois corre-se o risco de se detectar relações espúrias.

Ressalto também que os resultados acima são baseados em um modelo com parâmetros fixos, em um período de tempo escolhido de maneira arbitrária. Para obter resultados mais robustos, é recomendável a variação dos parâmetros e a realização de testes fora da amostra, que permitem avaliar a consistência dos pares com dados que não foram utilizados na construção do modelo.

Finalmente, é necessário comentar que o modelo de Bandas de Bollinger é um modelo bastante simplista, sem embasamento teórico. Há outros modelos mais robustos, utilizando por exemplo o conceito de cointegração.

¹ A razão de informação é definida como o P&L médio de todos os trades, dividido pelo desvio padrão dos P&Ls.

Ranking: 100 melhores pares long-short

Segue um ranking com os 100 melhores pares intrasetoriais para operações long-short, de acordo com o modelo de Bandas de Bollinger com janela de 20 dias. Os pares foram ordenados de acordo com o critério de razão de informação (P&L médio dividido pelo desvio-padrão do P&L), utilizando um backtest com um período de 2 anos (de 22/07/2011 a 22/07/2013).

100BestBollinger

Modelo básico para operar pares de ações

Escrevi anteriormente sobre arbitragem estatística e a importância da estacionariedade no sucesso de uma estratégia para operar pares de ativos. Em um outro post, comentei sobre alguns artigos descrevendo estratégias de pares. Finalmente, disponibilizei uma planilha para acompanhar pares de ações e fazer backtest de uma estratégia utilizando bandas de Bollinger para operar pares.

Pairs trading ou operação com pares é uma forma de operação na qual o trader acompanha a relação entre dois ativos, geralmente com comportamentos históricos parecidos, e abre um trade (comprando um dos ativos e simultaneamente vendendo o outro) quando esta relação foge dos padrões observados no passado. Em geral, o trader aposta na convergência da relação entre os ativos para a “normalidade” observada no passado, ou seja, é um trade que aposta na reversão à média.

Da descrição acima, podemos dividir o problema de operações com pares em 3 etapas: a seleção de pares de ativos, a definição de um modelo relacional entre os preços dos ativos, e a definição de um critério para detectar desvios com relação ao comportamento histórico dos pares. Podemos pensar nas duas última etapas como o modelo de operação (trading model), o qual define os sinais de entrada e saída de cada operação, enquanto as três etapas conjuntamente definem a estratégia de operação como um todo ou o modelo de operação com pares.

As três etapas acima podem ou não estar relacionados. Por exemplo, no modelo de pairs trading  utilizando o conceito de cointegração, as primeiras duas etapas estão geralmente relacionadas, pois a técnica econométrica utilizada para testar a cointegração sugere um modelo relacional linear entre os preços dos ativos.  Este tipo de modelo para pairs trading é mais complexo e será explicado em um futuro post. O objetivo deste post é dar uma visão geral do que está envolvido na construção de uma estratégia de pares, e exemplificar através de um dos modelos mais simples, que utiliza o conceito de bandas de Bollinger para definir os pontos de entrada e saída dos trades.

Seleção de Pares

As principais características que um par de ativos deve apresentar para que seja possível operá-lo com sucesso são:

  • Os dois ativos devem ter um comportamento similar e a relação entre os preços dos ativos deve ser relativamente estável ao longo do tempo – geralmente (mas nem sempre) isto ocorre com ativos que estão expostos aos mesmos fatores de riscos, o que tende a acontecer com ações de empresas que operam no mesmo setor, por exemplo;
  • A variação existente entre os preços dos dois ativos deve ser grande o suficiente para que os trades sejam lucrativos
  • A relação entre os ativos deve flutuar de um extremo ao outro com frequência, gerando um número grande de oportunidades de trade.

Pensando especificamente em pares de ações, existem várias abordagens possíveis para realizar a seleção dos pares:

  1. Pares Intrasetoriais: selecionar pares de ações de empresas que operam na mesma indústria – esta abordagem é intuitiva, uma vez que as empresas tenderão a estar expostas aos mesmos fatores de risco, fazendo com que os preços das ações possuam comportamentos similares;
  2. Pares estatisticamente similares: Selecionar pares de ações baseado em alguma medida estatística do comportamento dos preços das ações. Algumas possibilidades que foram sugeridas na literatura ou utilizadas no mercado são a correlação entre os retornos das ações (escolher os pares com maior correlação) ou alguma medida de distância entre os preços (escolher os pares com a menor distância, como por exemplo neste artigo).
  3. Pares cointegrados: Selecionar pares de ações que apresentam uma relação de cointegração. Esta é uma das abordagens mais robustas do ponto de vista estatístico, pois se os pares são cointegrados, espera-se um comportamento estacionário – portanto até certo ponto previsível – para o spread entre os preços das ações. Este conceito foi utilizado para testar estratégias com pares no mercado brasileiro aqui e aqui.

Uma possibilidade comumente utilizada envolve um feedback entre o modelo de operação, que determina os sinais de entrada e saída de cada tradee o processo de seleção de pares. Isto envolve a simulação ou backtest de vários pares em um período histórico, e alguma regra para escolher os pares com melhor desempenho no período testado. A figura abaixo esquematiza o processo.

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

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

Modelo Relacional Entre os Ativos

A próxima etapa, após a seleção dos pares, é a definição do modelo relacional entre cada par de ativos. Este modelo consiste em uma relação entre os preços dos dois ativos. Uma medida comumente utilizada consiste na razão entre os dois preços. Por exemplo, consideremos dois ativos A e B. Vamos denotar por P_{A,t} o preço do ativo A no instante t, e por P_{B,t} o preço do ativo B no instante t. Então a razão entre os preços dos dois ativos é dada por

R_{AB,t} = \frac{P_{A,t}}{P_{B,t}}.

Outra possibilidade é utilizar a diferença entre os preços (o chamado spread do par), definido por:

S_{AB,t} = P_{A,t}-\alpha P_{B,t},

onde \alpha é uma constante obtida, por exemplo, através de uma regressão linear. 

Uma vez definido o modelo relacional, pode-se construir o histórico da relação entre os dois ativos ao longo do tempo, com o qual é possível analisar o comportamento do par. O modelo de bandas de Bollinger, em geral, é baseado na razão entre os preços dos dois ativos.

Critérios de Divergência e Convergência

A última etapa para completar a estratégia é definir os critérios de divergência e convergência, os quais definirão os sinais de entrada e saída das operações. Um dos modelos mais simples comumente utilizado no mercado é o modelo de bandas de Bollinger. Este modelo utiliza a média e o desvio padrão da razão entre os preços dos ativos para determinar divergências e convergências. Geralmente essas quantidades são calculadas através de uma janela móvel, onde os últimos n pontos são utilizados. O modelo possui duas bandas, uma inferior e uma superior, que são calculadas subtraindo ou adicionando um múltiplo do desvio padrão à média da razão do par. Uma escolha comum consiste em utilizar 2 vezes o desvio padrão. Neste caso, as bandas de Bollinger em um instante t são dadas por:

Banda Superior_t = \mu_t + 2 \times \sigma_t

Banda Inferior_t = \mu_t - 2 \times \sigma_t,

onde \mu_t e \sigma_t são, respectivamente, a razão média e o desvio padrão da razão do par no instante t.

Quando a razão do par está acima da banda superior, isto denota um sinal de venda, e quando a razão encontra-se abaixo da banda inferior, isto denota um sinal de compra do par (explicaremos o que significa comprar ou vender o par em breve). O fechamento da operação ocorre quando a razão retorna para seu valor médio, por exemplo. Ou seja, as regras de entrada e saída dos trades podem ser as seguintes:

Vender o par (vender ação A e comprar ação B) quando R_{AB,t}>Banda Superior_t.

    • Fechar a venda (comprar ação A e vender ação B) quando a razão convergir para a média de cima para baixo, ou seja, R_{AB,t}<\mu_t

Comprar o par (comprar a a ação A e vender a ação B) quando R_{AB,t}<Banda Inferior_t

  • Fechar a compra (vender ação A e comprar ação B) quando a razão convergir para a média de baixo para cima, ou seja,  R_{AB,t}>\mu_t

Para ficar mais claro, vamos exemplificar. Suponha que após analisarmos as ações de empresas do setor financeiro, optamos por escolher o par de ações BBDC4 (Bradesco PN) e ITSA4 (Itausa PN).  A figura abaixo apresenta os preços das duas ações desde 2012:

Preços de BBDC4 e ITSA4

Preços de BBDC4 e ITSA4

Utilizando estes preços, calculamos a razão entre os preços de BBDC4 e ITSA4 para este período, ou seja,  para cada dia, calculamos:

R_{BBDC4/ITSA4,t} = \frac{P_{BBDC4,t}}{P_{ITSA4,t}}.

Suponha que vamos usar uma janela móvel com n=20 dias. Para calcular as Bandas de Bollinger é necessário calcular, para cada dia, a média e o desvio-padrão dos últimos 20 valores da razão do par. A banda superior é calculada como a razão média, adicionada de 2 vezes o desvio-padrão, e a banda inferior é dada pela razão média, subtraída de 2 vezes o desvio padrão. O cálculo para este par resulta no seguinte gráfico:

Bandas de Bollinger - BBDC4 vs ITASA4

Bandas de Bollinger – BBDC4 vs ITASA4

No gráfico acima, as linhas rosas indicam as bandas de Bollinger, a linha verde indica a razão média, e a linha azul indica a evolução da razão do par BBDC4_ITSA4. As setas de cima para baixo indicam sinais de venda do par, e as setas de baixo para cima indicam sinais de compra do par.

Dinâmica de Compra e Venda do Par

Quando passamos a trabalhar com a razão de um par, podemos pensar nela como o “preço” de um novo ativo, que é o par de ações. O trade de pares é um trade de reversão, onde iremos apostar na queda do “preço” ou razão do par, quando ele encontra-se alto em relação ao comportamento histórico, ou no aumento da razão, quando esta encontra-se baixa em relação ao seu padrão histórico. Mas o que significa comprar ou vender um par de ações?

Na definição da razão, definimos uma das ações com o numerador e a outra como denominador. No nosso exemplo, BBDC4 era o numerador e ITSA4 o denominador. Ou seja, quando o valor da razão aumenta, a interpretação é de que BBDC4 está ficando cara com relação a ITSA4 (ou, conversamente, ITSA4 está ficando barata com relação a BBDC4). Um aumento da razão do par pode ser devido à algumas situações diferentes (analogamente, invertendo as situações abaixo teríamos uma queda da razão do par):

  • os preços das duas ações aumentaram, mas o preço de BBDC4 aumentou mais do que o de ITSA4
  • os preços das duas ações caíram, mas o preço de BBDC4 caiu menos do que o preço de ITSA4
  • o preço de BBDC4 aumentou e o de ITSA4 diminuiu, ou
  • o preço de uma delas ficou parado e o da outra movimentou-se.

Outra maneira de pensar na razão é como um indicador do preço relativo de BBDC4 em relação a ITSA4, ou seja, se a razão for igual a 3, significa que é preciso 3 ações da ITSA4 para comprar uma BBDC4.

Quando a razão indica que BBDC4 está muito cara em relação a ITSA4 (ou seja, acima da banda superior), o modelo indica uma venda do par, apostando que a situação irá se reverter em breve. A operação de venda do par BBDC4_ITSA4 é uma operação de venda de BBDC4 e compra simultânea de ITSA4. Esta operação é caixa-neutra: o valor arrecadado com a venda de BBDC4 é utilizado para a compra de ITSA4. Este tipo de operação é chamado de long-short. O operador fica short (vendido) em uma ação e long (comprado) em outra.

É importante notar que, para realizar a venda de uma ação que o operador não possui, ele precisa primeiro realizar o empréstimo da ação, pelo qual paga uma taxa ao doador do papel. Como a operação está em pontas opostas de papéis com características similares, o risco de mercado é reduzido em comparação a uma situação de compra ou venda seca de um dos papéis. Se a operação der certo, a razão convergirá para sua média, momento no qual o operador desfaz o trade (comprando BBDC4 e vendendo as ITSA4 compradas). No caso de divergência na banda inferior, a dinâmica é invertida: o operador compraria BBDC4 e venderia ITSA4.

Como calculamos o lucro ou prejuízo (P&L) de uma operação com pares? Vamos analisar o último trade mostrado no gráfico acima. No dia 5/7/2013, o modelo indicou uma compra do par. Os preços de BBDC4 e ITSA4 neste dia eram, respectivamente, R$26,13 e R$7,75. Supondo um financeiro de aproximadamente R$10.000,00 para o trade e arredondando as quantidades, iríamos comprar 400 ações de BBDC4 e simultaneamente vender 1300 ações de ITSA4 . No dia 11/7/2013,   a razão convergiu para a média e os preços eram, respectivamente, R$27,36 e R$7,92. Notamos que as duas ações subiram, porém em termos percentuais, BBDC4 subiu mais do que ITSA4. Como compramos 400 ações de BDDC4, obtivemos lucro de R$492. A venda de ITSA4 gerou um prejuízo de R$221, pois o preço aumentou. No geral, a operação deu portanto um lucro bruto de R$271. O quadro abaixo resume os cálculos.

Exemplo de cálculo de P&L de uma operação com pares

Exemplo de cálculo de P&L de uma operação com pares

É importante ressaltar que o exemplo acima não considerou os custos de corretagem e do aluguel de  ITSA4.

Riscos de Operações com Pares

Apesar de estratégias com pares serem comumente  chamadas de “neutras” ao risco de mercado, esta afirmação é incorreta. Apesar de ser verdade que a exposição vendida mitiga grande parte da volatilidade, em comparação com  uma posição comprada seca, ainda existe risco nas operações com pares. Ao abrir o trade, o operador está apostando que a razão irá se movimentar em uma certa direção; caso a razão não se comporte da maneira esperada, o operador pode ter perdas significativas. A razão do par pode não apresentar uma convergência rápida o suficiente, ou mesmo divergir mais ainda, o que acarreta alguns agravantes. O primeiro é que, quanto maior a duração da operação, maior será o custo com o aluguel da ponta vendida. Segundo, quanto mais a razão divergir após a abertura do trade, maior será a correção necessária para recuperar o valor já perdido. Além disso, vale lembrar que os custos operacionais de um operação com par são altos, pois a operação completa envolve a execução de 4 ordens, além do custo de aluguel da ponta vendida pelo período da operação.

É possível tornar a estratégia um pouco mais elaborada, definindo por exemplo um stop-loss para evitar ficar em uma operação que não está convergindo, ou tentando acertar com mais eficácia o ponto em que ocorrerá a reversão. É importante lembrar também que as relações históricas às vezes se alteram devido à mudanças nas estruturas ou operações das empresas. Por este motivo, é importante ficar atento ao que está acontecendo com as duas empresas, para evitar apostar em uma convergência que não ocorrerá.

Fico por aqui e da próxima vez escreverei sobre modelos que utilizam o conceito de cointegração.

Planilha de operação e backtest de pares

Decidi colocar à disposição dos leitores uma planilha para operações com pares de ações. O modelo utilizado é o de bandas de Bollinger, e a planilha permite fazer simulações (backtests) de operações com pares específicos ou para todos os pares possíveis, assim como otimização dos parâmetros do modelo.

Esta planilha tem finalidade apenas educacional, e pode conter erros. Quem utilizá-la, deve concordar com o disclaimer do blog.

Bom, vamos aos detalhes. A planilha contém 5 abas: Preços, Monitoramento, Resultados Backtest um par, Backtest todos os pares, e Otimização. Segue uma descrição de cada uma:

  • Preços – contem os preços históricos das ações. A primeira coluna deve conter as datas, e cada coluna adicional, o nome de cada ação, e os preços das ações a cada dia. A suposição é de que a frequência do monitoramento é diária. O leitor pode alterar esta aba para colocar seus próprios dados, adicionar outras ações e, o mais importante, se tiver um link DDE com a sua corretora, pode colocar na última linha os preços em tempo real das ações, para fazer o monitoramento dos pares em tempo real
  • Monitoramento – é a aba principal. Ela permite:
    • Fazer o monitoramento de um par específico. Para isso, basta digitar os nomes das duas ações nas células adequadas. O exemplo na planilha contém o par formado por LIGT3 e TBLE3 (elétrica x elétrica).
    • Alterar os parâmetros do modelo e dos backtests:  tamanho da janela utilizada para calcular as bandas, largura das bandas (número de desvios-padrão usados para formar as badas), taxa de corretagem, valor de slippage (diferença assumida entre valor de compra e de venda), taxa de aluguel, duração máxima do trade, financeiro utilizado na operação, datas do backtest etc. A célula “Alavancagem” indica se o usuário quer abrir novos trades a cada dia, se houver oportunidade (VERDADEIRO), ou se irá sempre esperar um trade finalizar antes de abrir outro (FALSO). Se este parâmetro estiver como verdadeiro, todos as operações possíveis são marcadas, portanto as simulações demoram mais.
    • Rodar a simulação de um par com os parâmetros fixos. Basta clicar em “Rodar Backtest (1 par)”. A aba “Resultados Backtest um par” é ativada para mostrar os resultados.
    • Rodar a simulação de todos os pares possíveis com os parâmetros fixos. Basta clicar em “Rodar Backtest (todos os pares)”. Lembre-se de que, se o número de ações for muito grande, isto pode demorar (o número de pares possíveis com N ações é N(N-1)/2). A aba “Backtest todos os pares” é ativada para mostrar os resultados.
    • Rodar uma otimização simples nos parâmetros tamanho da janela (N) e número de desvios (largura da banda). A aba “Otimização” é ativada para mostrar os resultados.
  • Resultados Backtest um par – mostra os resultados da simulação do modelo para o par escolhido na aba “Monitoramento”. É mostrada uma tabela com algumas medidas-resumo, e um gráfico com o P&L por operação e o P&L acumulado.
  • Backtest todos os pares – mostra os resultados da simulação do modelo para todos os pares possíveis. A tabela é ordenada pela razão de informação (média de P&L dividida pelo desvio padrão do P&L). Esta é uma medida simples da relação retorno-risco do par.
  • Otimização – mostra os resultados da otimização para um par. Os parâmetros otimizados são Tamanho da janelaLargura da banda. O usuário pode alterar os valores sugeridos para os parâmetros, ou mesmo incluir mais valores. Os valores mostrados na tabela são as razões de informação de cada combinação dos parâmetros. O gráfico mostra o mapa de calor do par, útil para identificar quais combinações de parâmetros são boas. É importante notar que a otimização é feita usando-se as datas definidas na aba “Monitoramento”. É uma boa ideia fazer testes de otimização fora-da-amostra, ou seja, usando-se uma amostra para obter os parâmetros ótimos, e outra para verificar se eles continuam performando fora da amostra original. Também é importante notar que, se a largura da banda for muito alta (muito maior do que 2), os resultados do backtest ficam menos confiáveis, pois o número de operações diminui.
A planilha contém algumas macros que fazem as contas, e o código não está otimizado, já que não sou programador. O leitor pode (e deve) alterar a planilha e as macros à vontade, para servir melhor ao seu proprósito. Uma ideia interessante é criar outra aba com o monitoramento de vários pares, por exemplo. Outra ideia, para tornar a simulação mais realista, é utilizar dados históricos de bid e ask. A função de cálculo de P&L permite esta possibilidade, e o leitor que conhece VBA pode facilmente alterar a planilha. Comentários, sugestões, correções etc são bem-vindos.
Finalmente, o link para a planilha.Planilha de trade de pares. Não esqueça de habilitar as macros para a planilha funcionar.
Aba Monitoramento:
Aba “Resultados Backtest 1 par”
Aba “Otimização”

 

Algumas considerações sobre long-short para o pequeno investidor

Tenho pensando se as operações long-short, com pares de ações, são uma alternativa viável para o pequeno investidor. As corretoras com certeza querem que os clientes as façam (exemplo aqui); afinal de contas, para fazer um trade de long-short completo são necessárias 4 operações, o que significa que a corretora recebe corretagem 4 vezes.

Mas será que o long-short é uma alternativa razoável? O long-short é “vendido” como uma operação segura, na qual não importa para que lado os papéis andem. Isso é uma ilusão. Sendo um trade de convergência, o investidor só lucrará se ela, de fato, ocorrer. É verdade que a posição é menos arriscada que uma posição apenas comprada (ou vendida), porém a possibilidade de perda é real, com o agravante de que o custo operacional é bem mais alto do que o de um simples trade de tendência (por exemplo) em apenas um papel.

Por falar em custo operacional, comprar e vender ações no Brasil ainda é caro; mais ainda se for pela mesa. Para fazer o trade de long-short, primeiro é preciso alugar o papel da ponta vendida, para em seguida vender. Para isso é preciso fazer a operação pela mesa (pelo menos na corretora onde tenho conta, se alguém souber de um caso diferente, favor avisar), ou pedir o aluguel hoje para vender amanhã (o que pode é inviável na prática). Operar pela mesa em geral implica em taxa de corretagem variável, substancialmente mais cara do que pelo home broker. Assumindo essa situação, vamos dar uma olhada nos custos envolvidos:

  • 1x corretagem da operação de aluguel e venda da ponta vendida (corretagem variável);
  • 3x corretagem do home broker (compra da perna long na entrada, mais as duas operações para desfazer o trade);
  • emolumentos e outros custos da bolsa;
  • taxa de aluguel da perna vendida.

Vamos considerar uma situação limite, na qual um investidor abre um trade de long-short com um financeiro de apenas R$5000,00. Vamos supor que o trade tenha durado 20 dias, e que a taxa de aluguel da ação short tenha sido de 5% a.a. Usando os valores de corretagem da minha corretora, e ignorando emolumentos, temos:

  • corretagem perna vendida ≈ R$50
  • 3x corretagem home broker ≈ R$44
  • aluguel 20 dias @ 5%aa ≈ R$20,00

Custo total = R$114,00.

Esse custo representa aproximadamente 2.28% do capital empregado na ponta long. É verdade que, por ser uma operação caixa-neutro (ou próxima disso), o investidor precisa apenas depositar a margem da ponta vendida, e poderia ter o resto em algum ativo de renda fixa que seja aceito pela bolsa como margem. Mesmo assim, o custo é formidavelmente alto. Nesse caso, se o trade desse um lucro bruto de 5% (R$250), o investidor ficaria com apenas aprox. metade disso.  As tabelas abaixo mostram o custo total, P/L e retorno líquido para várias combinações de capital e retorno bruto do trade. Disponibilizei neste link uma planilha para calcular essas tabelas, com a possibilidade de mudar todos os valores de custos e parametros discutidos (vale a pena checar as contas, já é tarde e estou com sono).

Obviamente, quanto menor for o capital empregado, maior o custo e pior o retorno líquido. Ou seja, se o capital for muito baixo, quando o trade der prejuízo, o maior custo operacional exacerbará a situação, e quando o trade der lucro, uma parcela maior dele é usado para pagar os custos. As diferenças não são desprezíveis. No caso de um trade com lucro bruto de 5%, a diferença no retorno líquido com capital de R$5,000 para R$10,000 é de aprox. 25%, e para R$20,000 é de 40%.

Por fim, gostaria de fazer um comentário sobre diversificação. Ter apenas uma posição de long-short, apesar de menos arriscado do que fazer um trade especulativo direcional com uma ação, não é muito desejável. O ideal é ter um portfolio com alguns pares, para diversificar entre os pares de ações. O fato de a posição ser caixa-neutra não remove todo o risco; como em qualquer estratégia, é preciso dosar que nível de risco queremos ter em nossos portfolios, e ter uma ideia de que nível de retorno esperamos obter. Para o pequeno investidor (vamos dizer, abaixo de R$50,000), uma opção interessante para obter o perfil de retorno de long-short (i.e. retornos consistentes e sem correlação com o mercado, risco relativamente baixo) é investir em um fundo long-short ou de arbitragem estatística.

Tabela: P/L líquido por capital investido e retorno bruto
Capital
$5,000.00 $7,500.00 $10,000.00 $15,000.00 $20,000.00
Retorno bruto -10.00% $  (614.58) $  (887.02) $ (1,159.46) $ (1,704.34) $ (2,249.21)
-7.50% $  (489.58) $  (699.52) $    (909.46) $ (1,329.34) $ (1,749.21)
-5.00% $  (364.58) $  (512.02) $    (659.46) $    (954.34) $ (1,249.21)
-2.50% $  (239.58) $  (324.52) $    (409.46) $    (579.34) $    (749.21)
0.00% $  (114.58) $  (137.02) $    (159.46) $    (204.34) $    (249.21)
2.50% $     10.42 $     50.48 $      90.54 $     170.66 $     250.79
5.00% $   135.42 $   237.98 $     340.54 $     545.66 $     750.79
7.50% $   260.42 $   425.48 $     590.54 $     920.66 $  1,250.79
10.00% $   385.42 $   612.98 $     840.54 $  1,295.66 $  1,750.79

Arbitragem estatística – alguns artigos

Continuando a séries de posts sobre arbitragem estatística, estou postando links para alguns artigos sobre o assunto. Há muitos livros sobre o assunto, mas para ser sincero a maioria é superficial demais, ou gasta tempo demais explicando casos idealizados que nunca serão encontrados na prática. Os artigos acadêmicos ainda são, na minha opinião, uma das melhores fontes.

O primeiro da lista chama-se Pairs Trading: Performance of a Relative Value Arbitrage Rule, de Gatev et al. Os autores analisam uma regra simples de trade de pares, baseada na distância normalizada entre os preços, no mercado norte-americano. Marcelo Perlin replica a estratégia no mercado de ações brasileiro em seu artigo Evaluation of Pairs Trading Strategy at the Brazilian Financial Market. Aliás, o site onde estes artigos se encontram, http://www.ssrn.com, é um ótimo repositório de papers de finanças.

Avellaneda et al estudam a arbitragem estatística com uma abordagem um pouco mais complexa no artigo Statistical Arbitrage in the U.S. Equities Market. Eles usam dois métodos para determinar se uma ação está sobre/sob-valorizada. O primeiro consiste em fazer a regressão dos retornos das ações nos retornos de ETFs setorias. O segundo consiste em fazer a regressão dos retornos das ações em fatores extraídos usando análise de componentes principais (PCA) na matriz de covariância dos retornos. Após isso o modelo vende as ações que estão sobrevalorizadas e compra as que estão subvalorizadas.

Finalmente, Alexander et al estudam a ideia de replicar um índice de ações e construir estratégias de arbitragem estatística através de cointegração no artigo The Cointegration Alpha: Enhanced Index Tracking and Long-Short Equity Market Neutral Strategies.

Essa é uma lista curta, mas os artigos contém muitas outras referências interessantes.