O que é Pair Trading?
Pair Trading é uma estratégia de trading que utiliza métodos estatísticos para obter pares de ativos que sejam neutros em relação ao mercado. Um método para criar a estratégia de pair trading é realizar o teste de cointegração das ações de forma a obter a relação entre os pares.
Para utilizar o Pair Trading, devemos escolher dois ativos possuem relações estatísticas, afinal, se eles possuem uma forte relação, qualquer desvio de preço da relação de um com o outro, pode ser considerada uma anomalia, possibilitando um ganho através deste desvio, seja comprando ou entrando vendido na ação, a depender da situação.
Mas como podemos encontrar ativos que se relacionam e exprimem relações estatísticas entre si? E como podemos criar sinais de forma que possamos saber quando comprar ou vender os ativos? Existem diferentes métodos, mas o principal utilizado consiste no Teste de Cointegração, para saber se as ações possuem uma relação estatística.
Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.
Aprenda a coletar, processar e analisar dados do mercado financeiro no curso de Python para Investimentos.
Regressão e relações espúrias
Um problema comum do uso do modelo de regressão linear em séries temporais está no fato de que determinadas séries, principalmente econômicas, podem apresentar resultados inconsistentes, devido às suposições do MQO em relação as propriedades estatísticas das variáveis, tais como a média condicional e a variância condicional não oscilem no tempo. Caso haja esse relação, e as séries exibam tendências, é possível o aparecimento do que chama-se de regressão espúria, isto é, variáveis que apesar de possuírem forte relação estatística por meio da regressão linear, só as possuem devido a essa tendência comum.
Vemos abaixo a trajetória de duas ações, PETR3 e PETR4, no período de 28/04/2021 até 27/04/2022 - que possuem a mesma tendência. Será que é uma regressão espúria ou possuem uma relação de fato? Como verificar?
Cointegração
Em termos econômicos, diz-se que se duas variáveis possuem alguma relação de longo prazo se forem cointegradas, então mesmo que as séries contenham tendência (resultando por exemplo em uma regressão espúria), elas irão se comportar de modo semelhante, sendo a diferença entre elas estacionária, isso devido a uma tendência estocástica comum entre ambas.
Para ilustrar, considere, duas séries integradas de ordem 1, e , e suponha que exista uma relação linear entre elas, dada por . Isso implica no fato de existir algum valor de tal que seja integrado de ordem zero, mesmo com as séries originais sendo ambas não estacionárias. Nesses casos, diz-se que as séries são cointegradas e as mesmas compartilham a mesma tendência.
A ideia por trás da cointegração é que variáveis não estacionárias podem possuir uma trajetória temporal interligada, representando que haja uma tendência estocástica entre as séries. Isso possibilita a construção de um modelo que descreve as relações de equilíbrio de longo prazo entre as variáveis.
Com isso, nosso objetivo será encontrar:
1. Ativos que aparentam possuir a mesma tendência, e que aparentam não ser estacionários (isso pode ser checado por testes, mas iremos verificar visualmente);
2. Realizar o Teste de Cointegração de Engle-Granger, verificando se o desvio entre ambas é estacionário;
3. Criar a estratégia de investimento tomando como base o desvio padrão do desvio entre os pares de ativos.
Vamos continuar verificando os dois ativos selecionados acima, PETR3 e PETR4 durante o período citado. Vamos separar a série de preços em duas variáveis diferentes para aplicar o teste de cointegração usando a função coint
da biblioteca statsmodels
.
Queremos saber se de fato os preços das ações possuem alguma relação, e para isso, utilizamos a função coint()
para realizar o Teste de Engle e Granger. No resultado, encontramos um valor abaixo de 5%, o que nos leva a rejeitar a Hipótese Nula de não cointegração.
Código
Teste p-valor da Cointegração 0.046495901138853275
Com a confirmação da cointegração entre as duas ações, podemos modelar os spreads (desvios) entre as duas variáveis de forma que possamos criar os sinais de compra e venda. Realizamos esse procedimento através de uma regressão linear entre as duas ações. Calculamos o spread pela diferença do preço do PETR4 em relação ao preço do PETR3, ponderado pelo coeficiente encontrado no modelo.
Transformamos esse spread, calculando o z score, de forma que possamos medir as variações em termos de desvio padrão.
Com o spread calculado e transformado, é possível criar estratégias de pair trading. Por exemplo:
- Long quando o spread estive abaixo de -1.0 - Compra ativo Y (petr4) e Vende X (petr3)
- Short quando o spread estiver acima de 1.0 - Vende ativo Y (petr4) e Compra X (petr3)
- Sair da posição quando z-score se aproximar de zero.
Claro que é uma estratégia simples entre dois ativos, e que pode ser melhorada. Além disso, é necessário identificar que a estratégia funciona out-of-sample, isto é, não somente com o período de tempo que temos em mãos da amostra, mas também fora de amostra, caso contrário, se a cointegração não existir no período fora da amostra, então nossa estratégia não funcionará.
Quer aprender mais?
Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.