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.

 

 

 

 

53 comentários sobre “Long-Short através de Cointegração – Parte 4

  1. Dr. Nickel, excelente artigo, como sempre.

    Uma dúvida: vc chegou a rodar o backtest com beta neutro?
    Tenho testado vários pares usando a metodologia descrita nos seus artigos, e em especial naqueles pares q possuem beta maior que 0.5 (ou menor que -0.5), o resultado por beta neutro tem apresentado melhores ganhos. Para betas entre -0.5 e 0.5, cash neutro tem apresentado melhor resultado.
    Porém como o número de pares q testei é muito menor do q o apresentado neste artigo, não tenho certeza se isso se mantém no LP.

    • Oi Gleiverson, não testei neste exemplo, minha experiência no entanto é que beta neutro não faz muita diferença e é preciso tomar cuidado porque o beta às vezes é muito alto ou baixo, ocasionando problemas na implementação. Pretendo replicar estes resultados com beta neutro para verificar isto.

  2. Olá eu pretendo usar essa estrategia mas sem ser for financeiro neutro e eu só vou entrar se no caso de acontecer uma venda da variavel dependente o beta rotation estiver no limite superior e se der compra da variavel dependente o beta rotation estiver no limite inferior, além disso eu pretendo entrar se no minimo dois periodos (100,120,140,160,180,200,220 ou 250) derem um ADF de no minimo 90% e um periodo tenha um ADF de no minimo 95%, também só entro em 2,5 desvio padrão para um stop provavelmente em 3,1 desvio padrão você acha que dessa forma meu indice de acerto vai melhorar ? Você usa algum vetor auto regressivo para testar a regressão ? Quantos % do capital estavam alocados no CDI ?

    • Julio, não entendi o comentário sobre beta rotation. Na minha experiência, regras para confirmar a estabilidade da cointegração, como checar o ADF em períodos/janelas diferentes, ajudam sim. Acho que abrir trades só em 2.5 desvios é muito restritivo, mas vale a pena você fazer um backtest para ver como fica. Não modelei o spread através de processo autoregressivos. Porém o mais correto do ponto de vista teórico é modelar corretamente, inclusive testando diferentes modelos, pois isto permite identificar melhor os pares que tem maior chance de convergir rapidamente. O capital alocado no CDI é o excedente da carteira. Se a carteira estiver totalmente $-neutra, o valor dela será igual a zero e 100% do capital pode estar alocado no CDI (ou um valor próximo, já que tem que ter um caixa para pagar os custos operacionais).

  3. O beta rotation é o coeficiente angular, eu só vou entrar numa venda se o coeficiente angular estiver no limite superior e numa compra se o coeficiente angular estiver no limite inferior.

    • Após feito todo os calculos do processo Engle-Granger, como faço para calcular o Beta Rotation ?
      Você olha o Beta Rotation pelo grafico ou tem ou por algum dado especifico ?

  4. Dr. Nickel, muito interessante esta nova abordagem com o Beta neutro. Realmente eu esperava o contrário, até pelo que tenho operado no curto prazo e meus resultados têm sido exatamente o contrário (faço a operação com beta neutro e depois faço uma análise de como teria sido o resultado daquele trader se tivesse feito com o cash neutro).

    Uma pergunta, para rodar sua série histórica, você usou quantos dias?

    Tenho usado 250 dias e caso o par esteja cointegrado para 250 dias, faço a regressão para 220, 200, 180, 160, 140, 120 e 100 dias. Espero que em pelo menos mais 3 regressões ele também esteja cointegrado (em no mínimo 5%).

    Faço a regressão do par A com B e B com A. Só entro no trade se tanto A com B como B com A indicarem cointegração e apontarem a mesma oportunidade de entrada.

    Por fim, uma última pergunta: sua planilha será disponibilizada?

    • A janela de treinamento foi de 1 ano. Neste exemplo não usei nenhum critério para analisar a estabilidade da relação de cointegração e usei apenas um critério para nível de significância (acho que foi 1%). Mas minha experiência em outros modelos é que isto ajuda. Outra possibilidade é testar vários dias consecutivos e também testar na janela de operação. Eu não usei planilha, para este teste fiz tudo no Matlab.

  5. Dr. Nickel, o que vc acha de aplicar esta estratégia para Day Trade?
    Avaliar a cointegração dos pares ao longo do dia. Seria uma alternativa viável?
    Neste caso, os custos de operação seriam mt menores (já que estaria usando o módulo daytrade da correta e sequer precisaria alugar o papel), além de permitir alavancagem…

    • Acho que é possível, mas creio que só funcionaria para pares que tem um spread razoavelmente volátil, já que o retorno potencial líquido é menor no intraday.

  6. Artigos excelentes. Parabéns! Pena que eu tenho muita dificuldade pra entender de fato! Porém continuo lendo para tentar aprender. Eu invisto no mercado de criptomoedas. Estou buscando estes fundamentos para saber como investir melhor. Belo trabalho o seu e parabéns pelo seu conhecimento e por dividi-lo.
    Abraço

  7. Dr nickel, bom dia.

    Qual a explicação para um par estar cointegrado, apresentar um sinal de entrada (venda ou compra), após um centro tempo o par voltar pra média e ainda assim dar prejuízo?

    • Trade de pares é arbitragem estatística, isto significa que é o retorno positivio é esperado mas não é certo. Um par pode divergir e convergir após um tempo sem a operação ser lucrativa. Isto pode ser devido a vários motivos: 1. o par pode não ser realmente cointegrado (lembre que o teste de cointegração possui uma probabilidade de dar um resultado espúrio); 2. o modelo usado para o spread pode estar mal especificado; 3. O par é cointegrado porém o modelo para dar entrada e saída nos trades não está bem especificado, em particular se o par demorar muito para convergir, a probabilidade de o trade ser lucrativo é baixa.

      • Eu li algo sobre “Error correction model”, mas confesso que não entendi muito bem…

        Este modelo ajudaria a evitar este tipo de problema?

      • O ECM é uma representação de processos cointegrados em forma multivariada, identificando a relação entre as variáveis no tempo. Geralmente no contexto de pairs trading o ECM é usado para modelar conjuntamente as diferenças nos preços dos ativos, o que permite determinar qual preço anda “na frente” do outro (relação lead-lag). Isto permite fazer uma análise mais detalhada da dinâmica de cada par. Isto requer estimação de modelos específicos para cada possível par. Mesmo nesta abordagem, haverá operações que não dão lucro. É impossível ter um sistema de pairs trading que acerta sempre.

    • Sim. Os resultados que tenho obtido com meus backtest têm sido excelentes. Meus questionamentos são mais para entender mais a fundo como funciona o modelo e como posso fazer para melhorar ainda mais os resultados.

      Estou rodando backtest para operações no DayTrade, com intervalos de 2 minutos, 5 minutos, 10 minutos e 15 minutos.
      Apesar do spread dos pares não serem muito grandes, como no DayTrade é possível alavancar, os resultados têm sido muito bons, em especial para ações da mesma empresa ou mesmo setor (VALE5 com VALE3, PETR4 com PETR3 etc).

      Uma coisa que mudei em meu modelo neste final de semana e melhorou bastante no resultado, foi, ao invés de acompanhar o último resíduo, passo a acompanhar a variação do resíduo no momento em que fiz a compra/venda do par. Como o resíduo que fiz a compra vai variando a medida que novos dados vão entrando no modelo, também passo a acompanha-lo, de modo que se ele diminuir/aumentar em 1 DP, encerro a operação.

  8. Olá Dr Nickel, é possível calcular, através do spread do erro, o quanto o spread de preço entre as ações deve fechar/abrir para o spread do erro voltar para a média? Gostaria de saber por exemplo qual o potencial de valorização de um par de acordo com o spread do erro… e se esse spread tender a voltar a média, qual é o ratio entre os preços das ações que eu devo zerar o par.

    Obrigado!

    • Oi Guilherme, a princípio, você pode encarar o spread como a variável que você está comprando ou vendendo, e calcular um retorno potencial, de acordo com o critério de fechamento do trade (que pode ou não ser na reversão à média). Na minha experiência, isto não é muito útil para prever o retorno dos trades…mas vale a pena tentar. Abs

  9. Oi Dr Nickel,
    Gostaria de agradecer por todos estes posts, muito bons e de grande ajuda. Vi que existe uma planilha disponivel em seu site para trades de pares, esta planilha foi a que utilizou para apresentar os resultados deste metodo?
    Agradeco pela atencao

  10. Parabens pelos posts Dr. Nickel tudo muito legal e bem explicado. Gostei muito e pretendo estudar mais do assunto para poder operar desta forma. Uma dúvida, os backtests para esta estratégia de pares por cointegração que vc apresentou neste artigo foram feitos em qual programa? Teria algum artigo ou recomendação que ensinasse a fazer estes backtests neste tipo de operação? Obrigado

  11. Interessante, pois nesta dissertação “ANÁLISE DE ESTRATÉGIAS PAIRS TRADING ATRAVÉS DOS MÉTODOS DE COINTEGRAÇÃO E CORRELAÇÃO APLICADOS AO MERCADO ACIONÁRIO BRASILEIRO” o ano de 2008, assim como mostrado na sua simulação (devido à volatilidade) foi um ano muito bom. Contudo, 2009, no fim da crise mas ainda assim bastante volátil, foi o maior drawn down da carteira simulada.

    Parabéns pela séria long-short, é bastante detalhista e expositiva. A respeito dos livros, você recomendaria o do Ruey Tsay, ou da Carol Alexander no sentido de procurar aprender mais sobre a implementação da modelagem em si?

    • Oi Andre, os dois livros são bons, sendo que o do Ruey é um pouco mais técnico e focado exclusivamente em séries temporais. Mas ele tem um pequeno exemplo de trade de pares no capítulo que fala sobre cointegração.

  12. Obrigado pela resposta.

    Tenho outra dúvida, pelo que vi na bibliografia e até no post do blog o método de cash neutro obteve retornos melhor que o do beta neutro. Qual sua opinião sobre as duas estratégias, o Prof Sergio Ferro, por exemplo, opta sempre pelo beta neutro.

    • Na minha experiência, fazer a estratégia beta-neutra não adiciona valor. Os betas são estimados e em geral tem um erro padrão alto. Por isso, não tenho muita confiança em utilizá-los para dimensionar a boleta da estratégia.

      • pode me dar uma dica de como automatizar a planilha sei fazer todos os calculos mas da muito trabalho calcular ação por ação.

      • Duas opções:
        1- Automatizar a planilha através de VBA. Você pode criar rotinas ou funções para fazer os testes de cointegração, calcular spreads, etc
        2 – Utilizar uma plataforma mais adaptada para automatizar este tipo de modelo, como R, Matlab ou Python. Todos estes testes já existem nestas plataformas, e é muito mais rápido e estável do que Excel.

        Espero que ajude!

  13. Dr. Nickel e demais colegas, boa noite!
    Comecei a estudar a estratégia long&short há pouco. Procurei informações no YouTube e acabei encontrando alguns colegas explicando uma técnica baseada somente em correlação para seleção dos pares. Depois de selecionado os pares, o método prevê a monitoração do movimento do ratio utilizando bandas de Boillinger. A entrada na operação se dá quando o módulo do ratio supera 2 vezes o desvio padrão e o IFR entra na região de sub ou sobrecompra.
    Minha pergunta: Li seus artigos utilizando cointegração, mas observei que vc não utiliza IFR na análise dos pontos de entrada. Acha que utilizando o critério do IFR associado ao desvio padrão do residuo teríamos ganhos significativos?

  14. Boa tarde, Dr. Nickel. Tudo bem?
    Sou um entusiasta dessa área de investimento e tenho buscado bastante sobre o método de cointegração. Qual literatura você recomendaria para aprender o mais básico? E qual eu consigo profundidade nestes tipos de operações?

    Abraços.

    • Veja os artigos mencionados nos posts, tem bastante referência boa. Se preferir um livro, sugiro o Volume II do livro “Market Risk Analysis” da Carol Alexander, ou o livro do Tsa, Analysus of Financial Time Series. Abs!

  15. Olá,
    Esses percentuais de 90, 95 e 99 de ADF são com base no campo “stat t” da regressão do lag e delta dos resíduos e na tabela de valores críticos ?

    Ex: Se na tabela cair em 1%, significa 99%.
    Se na tabela cair em 5%, significa 95%.
    Se na tabela cair em 10%, significa 90%.

    Isso ?

    • A hipótese nula do teste DF ou ADF é de não-estacionariedade, então você quer e geral aceitar esta hipótese para cada série individualmente (pois cointegração é uma relação entre duas séries não-estacionárias) e rejeitar esta hipótese para os resíduos da regressão de uma série na outra. A regra de aceitação/rejeição é como em qualquer teste t, mas os valores críticos são os que estão na tabela. Veja o exemplo no post 3 (https://drnickel.wordpress.com/2015/04/03/long-short-atraves-de-cointegracao-parte-3/)

      • Essa questão de estacionaridade/não-estacionaridade está ok.
        O que ainda não tenho certeza, é de como chegar nos percentuais 90%, 95% e 99%, quando vejo que o teste Engle-Granger apontou a cointegração.

      • Esses são os valores críticos da distribuição da estatística ADF. O que você faz é comparar o valor t da regressão com esses valores críticos.

      • Sendo mas objetivo. Na planilha “exemplos-cointegracao-qual3_rent32.xlsx” tem a seguinte conclusão:

        “Conclusão: Rejeitamos a hipótese nula de não-estacionariedade dos resíduos, ou seja, a série de resíduos da regressão dos preços de QUAL3 em RENT3 é estacionária, pois a estatística-t da regressão (-4.60) é maior (em módulo) do que o valor crítico ao nível de 1%.”.

        Consegue me mostra como chegar ao percentual do ADF desse exemplo da planilha ?

  16. Boa noite, professor. Excelente artigo, fica aqui meus singelos parabéns. Gostaria de tirar uma simples dúvida em relação a quais ferramentas você utilizou para fazer esses testes, tendo em vista que fazer correlação de ativo y por ativo x em uma amostragem contendo tantas ações acaba sendo moroso. Fez o uso de Excel, R ou outra ferramenta? Estou com dificuldade em manter sempre atualizado os pares, assim como encontrar novos pares. Por isso acabo optando por cash neutro utilizando desvio padrão de ativos correlacionados e com resíduos estacionários em uma regressão cointegrada com testes de DF e Engle Granger em 4 períodos distintos, mas possuo poucos pares em estudo. Por fim as decisões são tomadas pelo gráfico de uma plataforma, e não apenas pelos resíduos estacionários justamente pelo processo.

  17. Olá Dr. Nickel,

    No backtesting, você escolhe uma janela de treinamento de 12 meses. Nesta janela de treinamento é onde você calcula se o par é cointegrado ou não, correto? Se for, você assume que o par é cointegrado sempre ou você repete o teste de cointegração dia a dia? Se for cointegrado, você executa a janela de operação?

    Obrigado

    • Oi Guilherme,

      Nesse modelo simples, acho que não atualizei o teste. Na prática, é uma boa ideia fazer isso e também testar a estabilidade da relação de cointegração.

  18. Dr. Nickel, boa tarde.
    Existe algum livro onde eu encontre o conceito da cointegração voltada ao mercado financeiro que possas me indicar? Se existir em língua portuguesa, eu prefiro pois para fixar o conceito, acredito que ler material em português é melhor.

    Antes de ir, eu gostaria de deixar registrado que gostei muito da sua abordagem sobre o tema, foi de fácil compreensão.

    Muito obrigado.
    Abraços
    C!

    • Oi Cesar, não conheço livros em português sobre o tema, mas vc pode procurar uma tradução do livro do Tsay (Analysis of Financial Time Series) ou volume II da Carol Alexander (Market Risk Analysis). Tem tb o livro do Vidyamurthy (Pairs Trading: Quantitative Methods and Analysis)

  19. Olá Dr. Nickel tudo bem ? Parabéns pelos posts e pelo blog como um todo, muito informativo para quem está iniciando no mundo quant. Estou montando um modelo com base na estratégia de LS por cointegração por beta neutro, e atualmente estou enfrentando dificuldade para encontrar os ratios de loss e gain da operação com base em um loss/gain financeiro pré-estabelecido (desejo calcular a quantidade do dependente antes de entrar na operação com base no stop financeiro aceitável). Em um modelo cash-neutral seria mais fácil pois entraria com mesmo valor financeiro em ambas pontas e calcularia os ratios de loss e gain com base no percentual do ratio de entrada (ratio das ações como um ativo sintético), porém em um modelo beta-neutral este approach não funciona visto a disparidade do financeiro. Podeira nos dar uma luz nesta questão ? Obrigado !

    • Oi Daniel, o jeito mais simples na minha opinião é fazer o cálculo considerando um financeiro fixo e convertendo pra quantidade (número de ações) de cada ação na abertura do trade. Por exemplo, vc pode considerar um valor de R$1 na primeira ação. Se for compra do par, vc compra R$1 da ação 1 e vende R$ beta da ação 2. Cada valor, dividido pelo preço da respectiva ação, resulta na quantidade que vc operaria. Pra calcular o lucro/prejuízo bruto do trade, vc faz a conta q1 x (p11-p10) + q2 x (p21 -p20), onde q1=qtd ação 1, q2 = qtd da ação 2, p11 = preço da ação 1 no fechamento do trade, p10 = preço da ação 1 na abertura do trade, p21 = preço da ação 2 no fechamento do trade, p20 = preço da ação 2 na abertura do trade. Se for compra do par, q1>0 e q2<0.

  20. Boa Tarde qual o patrimonio incial que cada ação iniciava ? Por exemplo no modo financeiro neutro qual era o patrimonio de cada ação e no modo beta neutra era qual patrimonio ? E como vc calculava o tamanho do seu gain por desvio padrão ?

    • Oi Julio, no financeiro-neutro, cada operação é aberta com 1/20 do capital na data em que o par abriu. Exemplo: se o capital total era R$500k, cada par seria aberto com R$25k comprado e R$25k vendido. No beta neutro, uma ponta é aberta com este capital, a outra com beta * capital. O retorno de operações long-short não pode ser determinado de maneira inequívoca, pq depende da alavancagem usada. Por esse motivo, o melhor jeito de simular esse tipo de operação (na minha opinião) é simular a carteira inteira, pois assim vc pode definir a alavancagem/volatilidade usada e tb considerar o remuneração do capital. Por exemplo, no exemplo de um capital de R$500k, se vc usar uma alavancagem bruta de 2 (ie 100% comprado e vendido), os 500k podem estar aplicados em algum instrumento de renda fixa.

      • Blza, eu penso em fazer algo parecido mas pra calcular o financeiro da dependente no modo beta neutro eu vou usar o quando em desvio padrão eu quero ganhar baseado no patrimonio desse meu par por exemplo: Se eu tenho 25k por cada par eu definiria que em 1 desvio padrao eu queriar ganhar 1% ou seja 250,00 e se o residuo pra 1 desvio estiver em por exemplo 0,30 centavos eu precisaria ter cerca de 800 ações na dependente * o beta da independente, a minha duvida é se usando cash neutral essa minha de quantidades de ações na dependente que eu deveria ter pra ganhar em 1 desvio tambem estaria certa, pq no caso de cahs neutral eu continuaria a ter 800 ações na dependente mas na independente eu teria o numero de ações que fizesse o mesmo financeiro da dependente, mas dessa forma o valor de 250,00 por desvio ainda vai estar certo, ou vai ser outro valor ?

Deixe um comentário