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.

Anúncios

Backtest de uma estratégia quantitativa

No post anterior, eu introduzi um tipo simples de estratégia quant, o trade de pares, e dei um exemplo da estratégia para o par PETR3-PETR4. Mostrei os pontos de entrada e saída de dois trades de acordo com o critério de divergência adotado no exemplo, de acompanhar o spread entre as duas ações, padronizados pela média e desvio-padrão locais. Mas apenas dois trades positivos não são suficientes para decidir se o  par é realmente explorável. Além disso, escolhemos apenas um par entre muitos pares possíveis. Algumas perguntas que poderíamos fazer:

  • Que outros pares seriam bons para esta estratégia?
  • Qual o retorno esperado dos trades por par?
  • Qual(is) o(s) risco(s) das posições?
  • A estratégia dá retorno positivo consistentemente? Se não, é possível identificar em que períodos ela não funciona?
  • Como muda o desempenho da estratégia com mudanças nos parâmetros?

Essa perguntas podem ser respondidas fazendo-se o backtest¹ da estratégia. O backtest é simplesmente uma simulação histórica dos trades que uma estratégia teria feito ao longo do tempo, usando em cada ponto do tempo apenas os dados disponíveis até lá. No nosso exemplo de PETR3-PETR4, significaria percorrer a série temporal do spread entre as ações ao longo de um período pré-determinado, para um conjunto fixo de parâmetros, e anotar o desempenho de todos os trades gerados pelo modelo. As estatísticas desses trades nos ajudarão a responder as perguntas acima. Um bom backtest é um passo fundamental no desenvolvimento de uma estratégia de investimento bem sucedida, e muitos erros e problemas podem ser detectados neste estágio, antes de o trader colocar dinheiro em risco. O backtest depende, basicamente, de três fatores:

  • Dados
  • Plataforma
  • Modelo de trading\parâmetros
  • Custos

Vamos falar brevemente de cada um deles a seguir.

Dados

Uma estratégia de investimento quant é um algoritmo que toma como valores de entrada dados (por exemplo, preços de ações) e retorna como saída uma ação (comprar, vender, zerar) a ser executada. Para que a saída do algoritmo seja confiável, é preciso que os dados sejam confiáveis. Isso se chama de “Princípio GIGO” (Garbage-In, Garbage-Out). Se os dados tiverem problemas, a saída do algoritmo provavelmente também terá, e as conclusões do backtest perdem o sentido. Há muitos lugares onde é possível obter dados de ações, mas sempre cabe ao usuário checá-los. Em geral, usamos nos backtests os preços corrigidos das ações, que incorporam proventos como dividendos, splits etc. Sendo possível, é sempre melhor obter dados em alta frequência e o book de ofertas. Isso permite um grau de sofisticação maior no backtest, pois é possível chegar mais próximo do que se observaria na prática. Na realidade, tudo vai depender do tipo de estratégia que está sendo considerada. Para uma estratégia de trading em alta frequência, onde segundos podem fazer a diferença, é essencial ter dados no maior nível possível, de preferência os preços e livro de ofertas a cada negócio (tick-by-tick). Já para uma estratégia de mais longo prazo, onde o horizonte é de vários dias ou mesmo meses, podemos até usar os preços de fechamento. Um cuidado que se deve ter quando se testa uma estratégia com muitas ações é incluir um conjunto de ações o mais próximo possível do que teria sido realmente utilizado no período estudado, inclusive usando ações que podem ter “morrido” (a empresa deixou de existir). Um exemplo menos drástico: a ação NETC4, por volta de 1999, parecia valer muito e, alguns anos depois, seu preço foi quase a zero. Se o backtest contempla o período em questão, a decisão de excluir a ação da base de dados pode introduzir um viés na análise.

Plataforma

A plataforma é o motor no qual os testes serão rodados. Na prática, a plataforma é uma aplicação, um programa de computador que vai realizar a simulação. Quanto mais sofisticada a plataforma e o nível de conhecimento de programação do trader,  maior o nível de detalhe e realismo será possível alcançar no backtest. Além disso, será possível fazer a simulação de estratégias mais complexas, com maior número de ativos, e em menor tempo. Algumas plataformas possíveis:

  • Excel – uma das mais viáveis e baratas. Se o trader souber programar em VBA, ganhará bastante versatilidade. Além disso, algumas corretoras têm um link DDE que permite a visualização de preços, livro de ofertas etc diretamente na planilha, tornando o Excel uma possibilidade também como plataforma de execução.
  • Matlab – um dos preferidos no mundo quant, por sua versatilidade, facilidade de uso, interface gráfica e pelo grande número de ferramentas analíticas pré-instaladas. O grande senão é o preço: uma licença custa na casa de milhares de dólares. Mesmo assim, muitas universidades mantém licenças, e existe uma versão para estudante com preço reduzido. Existem alguns clones grátis ou mais baratos, como SciLab, Octave etc.
  • R – o R é um software livre com muitos pacotes estatísticos criados por usuários. É uma ótima opção, e de graça.
  • Plataformas dedicadas – de corretoras ou empresas especializadas. Eu já usei o Metastock, que tem uma grande quantidade de indicadores técnicos, mas como plataforma de backtest acho meio limitado.
  • C, C++, C# – para quem sabe programar nestas linguagens, é possível criar backtests muito eficientes e complexos.

Qualquer que seja a plataforma de execução, o importante é tomar muito cuidado na hora do backtest para não deixar passar erros. A maior parte do tempo, quando uma estratégia parece boa demais para ser verdade, há um erro de programação ou na base de dados.

Modelo de Trading e Parâmetros

Uma vez que temos os dados e escolhemos uma plataforma para realizar o backtest, é hora de traduzir a ideia de trading em regras analíticas, quantitativas e sem ambiguidade. No nosso exemplo anterior, decidimos visualmente (e de maneira um tanto subjetiva) onde entrar nos trades. Na realidade, o processo de construção de uma estratégia desse tipo passaria por uma etapa em que os cálculos a serem feitos serão especificados, assim como os parâmetros do modelo. No exemplo anterior, teríamos pelo menos três parâmetros: o tamanho da janela para calcular a média e desvio padrão do spread, o valor para entrar nos trades, e o valor para sair. Uma das vantagens do backtest é que podemos estudar como a estratégia se comporta quando estes parâmetros são alterados. Claro que sempre gostaríamos de escolher o “melhor” conjunto de parâmetros (ou seja, o que dá maior retorno por unidade de risco), mas é preciso muito cuidado, pois às vezes, alguns pontos no espaço paramétrico de um modelo parecem bons demais devido a apenas um pequeno número de trades, ou ao período escolhido. O ideal é que a estratégia funcione bem para várias escolhas diferentes dos parâmetros. A introdução de mais critérios e parâmetros, em geral, melhora o desempenho de um modelo, mas é preciso atenção para não deixar o modelo complexo demais, a ponto de ele começar a capturar idiossincrasias do período estudado. Quando isso acontece, o modelo pode se sair muito bem no período usado no backtest, mas performar mal no futuro (ou seja, quando o dinheiro estiver no jogo). Isso se chama overfitting. É sempre bom definir parâmetros, regras etc usando um pedaço da amostra, reservando uma parte mais recente para fazer um teste “fora da amostra”.

Custos

Existem vários custos envolvidos em qualquer estratégia de investimento. Os de operação incluem não só corretagem, emolumentos, aluguel de ações, como também a diferença entre o preço observado e o que será realizado no trade (o chamado slippage). Dependendo da estratégia, os custos de operação são extremamente significantes ou até insignificantes. Para uma estratégia de alta frequência, onde o ganho por trade é baixo e o número de trades é alto, o custo tem alto impacto e pode fazer a diferença entre uma estratégia lucrativa e outra perdedora. De maneira geral, quanto maior o horizonte do trade, menor o impacto dos custos transacionais. Um bom backtest inclui o custo de operação nas contas.

Resultados

Uma vez que as regras de trading (isto é, o modelo) foi definido (e programado em alguma plataforma), o backtest será rodado, e o resultado será uma lista com os trades, e os respectivos P&Ls (profit and loss), ou seja, quanto dinheiro cada trade ganhou ou perdeu. A análise da estratégia é feita em cima desses números. Existem inúmeras medidas de performance que podem ser usadas. Algumas delas:

  • retorno (ou P&L – profit and loss) médio por trade – quanto de retorno a estratégia dá?
  • drawdown – mede o pior período em termos de perda. Deve ser o mais baixo possível.
  • razão de informação – retorno médio dividido pelo desvio padrão; mede o retorno por unidade de risco.
  • razão de Sharpe – se a estratégia usa caixa, este poderia estar investido em títulos do governo, isso é, rendendo CDI. A razão de Sharpe mede a diferença entre o retorno médio da estratégia e o retorno de um ativo sem risco, divido pelo desvio padrão.
  • razão de Sortino – similar a de Sharpe, mas com risco definido pelo desvio padrão apenas dos retornos negativos. Não penaliza variância devido a ganhos.
  • % de trades positivos

Bom, espero que o post seja útil. No futuro pretendo postar algum exemplo de backtest em Excel. ¹ Eu prefiro sempre que possível usar termos em português, mas desconheço um termo adequado para backtest. Estou tentado a usar “simulação”. Se alguém tiver alguma outra ideia, favor avisar.

Arbitragem Estatística – preliminares

O nome arbitragem estatística remete a algo complexo, mas veremos que o conceito é bastante simples. Primeiro, precisamos entender o que é uma arbitragem. Uma arbitragem pura significa uma oportunidade de comprar um ativo e conseguir vendê-lo (ou um ativo “equivalente”) de maneira a obter um lucro sem risco. Como qualquer agente racional iria querer explorar tal oportunidade, não é surpreendente que elas não existam (ou existam por pouquíssimo tempo) no mercado. Afinal, se não há risco, o agente investiria na arbitragem tantos recursos quanto conseguisse obter, e este fato faz com que os preços sejam corrigidos e a arbitragem deixe de existir. Esta ideia está formulada na “Lei do Preço Único“: bens idênticos devem ter o mesmo preço.

O conceito de arbitragem estatística difere do de arbitragem pura porque o lucro não é auferido sem risco.  A arbitragem estatística pode ser descrita com uma estratégia de alocar recursos em ativos “equivalentes” de maneira a obter um lucro esperado positivo. A diferença está no termo esperado, que denota que a oportunidade é lucrativa na média. Ou seja, o agente que explora essa oportunidade está tomando risco, e por ele recebe um certo retorno esperado.

O conceito de ativos “equivalentes” é vago e muitas vezes é relaxado ou ignorado na prática. O tipo mais comum de arbitragem estatística é o chamado trade de pares (pairs trading). Esse tipo de estratégia baseia-se na noção de  encontrar dois ativos (ações, índices, ETFs) que, na média, comportem-se de maneira similar, e explorar situações em que essa relação esteja distorcida. Quando ocorre uma divergência do comportamento usual, é possível formar uma posição que será favorecida no futuro, quando (ou melhor, se) a relação entre os ativos voltar ao normal (quando houver uma convergência). No momento da divergência, o investidor irá comprar um dos ativos e simultaneamente vender o outro (se for uma ação, é necessário alugá-la primeiro para poder vendê-la). Qual ativo ele comprará, e qual venderá, irá depender de que tipo de distorção ocorreu entre os ativos, mas em geral, vende-se o ativo que se valorizou mais, e compra-se o que se desvalorizou. Idealmente, ocorrerá a convergência e o investidor fechará a posição, executando a operação contrária a que fez anteriormente, e realizando lucro. Como o investidor compra (posição long) e vende (posição short) os ativos simultaneamente, esse tipo de estratégia também é conhecido como Long/Short.

Um exemplo: PETR3 e PETR4 são ambas ações da Petrobrás, sendo que a PETR3 é a ação ON (ordinária) e a PETR4 é a ação PN (preferencial). Como são ações da mesma empresa, estão expostas aos mesmos riscos, e, como esperado, seus preços andam juntos (clique no gráfico para aumentar).



Uma estratégia de arbitragem estatística quantitativa consistiria em critérios que definem quando ocorreu a divergência entre as ações, ou seja, quando entrar no trade, com que quantidades, e quando sair. O critério de divergência é portanto uma parte crucial da estratégia. Para entendê-lo melhor, vamos definir alguns conceitos.

Estacionariedade, Reversão à Média

As séries de preços de ativos financeiros são, em geral, não-estacionárias. Isso basicamente quer dizer que características das séries temporais, como média e variância, variam no tempo. Outra característics dos preços de ativos é que eles em geral são integrados de ordem 1 (I(1)). Isso significa que os preços das ações podem subir indefinidamente (mas, obviamente, não podem cair abaixo de 0).  Por outro lado, uma variável estacionária, integrada de ordem 0 (I(0)), apresenta uma característica interessante de sempre retornar à um valor central, ou médio. Dizemos que ela “reverte à média”. Os retornos diários de ações seguem, em geral, esse tipo de comportamento, apesar de não serem estritamente estacionários, já que suas médias (e principalmente suas volatilidades) variam no tempo. Para obter uma estratégia de arbitragem estatística bem-sucedida, é preciso trabalhar com uma variável que seja o mais próxima da estacionariedade possível. Afinal, queremos que haja convergência. Há muitos detalhes técnicos sobre esses conceitos que são relevantes na prática, mas para um primeiro exemplo seguiremos com essas definições intuitivas.

O critério de divergência será uma transformação dos preços das ações, que deverá ser estacionária ou pelo menos próxima de ser estacionária. Ou seja, para que a estratégia funcione é preciso um comportamento de reversão à média. Isso irá depender do par de ações em questão. Para escolher os pares, existem várias possibilidades. Uma é considerar pares de ações dentro do mesmo setor ou indústria; afinal, os fatores de risco tendem a ser os mesmos e as ações tenderão a “andar juntas”. Outras maneiras comuns envolvem medidas como correlação (grau de associação entre os retornos das ações) ou o conceito de cointegração, que é um pouco mais complexo e sobre o qual escreverei em um post mais a frente.

Um Exemplo Prático

Duas medidas comuns da relação entre um par de ativos são o spread (preço da ação B menos o preço da ação B) e a razão (preço da ação A dividido pelo preço da ação B). O gráfico abaixo mostra o spread entre o preço de PETR3 e PETR4, padronizado com uma média e um desvio padrão calculados numa janela móvel. Um spread ideal para um trade long/short variaria bastante, e cruzaria a média com mais frequência do que o mostrado acima, sem ficar por períodos longos acima ou abaixo de zero.

Como a séries está padronizada, seus valores flutuam dentro de uma certa faixa (aparentemente entre -3 e 3).  Quando o valor está próximo de um desses extremos pode ser um bom ponto de entrada em um trade. Por exemplo, a seta vermelha indica o dia 23/03/2009. Neste dia, o valor do spread padronizado era de 2.94. Como esse valor é alto, o investidor decide que vai apostar na convergência e vende o par, ou seja, vende PETR3 e compra PETR4 (note que se tivéssemos definido o para como PETR4-PETR3, os valores seriam invertidos e compraríamos o par, mas os trades nas ações seriam os mesmos). Ele decide sair no dia 27/04/2009 (seta azul), quando o spread padronizado cruza o zero. Supondo que o investidor operou 1000 de cada ação, temos:

23/03/2009: Vendeu 1000 PETR3 a R$37.68 / Comprou 1000 PETR4 a R$29.65

27/04/2009: Comprou 1000 PETR3 a R$34.85 / Vendeu 1000 PETR4 a R$27.88

A exposição líquida neste caso é próxima de zero, ou seja, a ponta vendida financia a compra da ponta comprada. Isso faz com que a posição tenha uma correlação próxima de zero com o mercado (também é possível operar quantidades que tornem a posição exatamente caixa-neutra ou beta-neutra). Na prática, como o investidor não tinha PETR3, ele precisou alugar a ação para vender.Vamos ver como ficou o trade após o fechamento: a PETR3 caiu e o investidor ganhou -1000x(34.85-37.68) = R$2837 na ponta vendida. Na posição comprada de PETR4 ele perdeu 1000x(27.88-29.65) = -R$1767. Então no total, o investidor saiu com um lucro de aprox. R$1069, para um investimento de aproximadamente R$40,000 em 24 dias úteis (mas que na realidade tem exposição líquida zerada). Claro que é preciso ainda retirar os custos de operação (aluguel de PETR3, corretagem, emolumentos e ainda a diferença entre o preço assumido acima e o que teria sido conseguido na execução da ordem), que podem muito bem fazer com que, no final das contas, a operação não seja lucrativa.

Um outro ponto de entrada possível ocorre no dia 6/7/2009, quando o spread padronizado era igual a -2.61. Neste caso o investidor poderia comprar o par (ou seja, comprar PETR3 e vender PETR4, fechando o trade por exemplo no dia 23/07/2009, também com lucro.

Esse primeiro post teve a intenção de apenas introduzir o assunto e dar um exemplo simples. Na prática há muitos outros aspectos a se considerar, tanto em relação aos parâmetros da estratégia (os valores exatos dos pontos de entrada e saída, janela das estimativas de média e desvio padrão do spread) quanto ao seu risco. Felizmente, é possível aprender bastante sobre o comportamento da estratégia fazendo-se uma simulação ao longo do tempo, ou seja, fazendo-se o backtest. Esse será o assunto de um futuro post.

Novos rumos para este blog

Este blog começou como um lugar para eu expor algumas idéias e comentários sobre Economia e Finanças. Nos meses iniciais, tive uma boa produtividade neste espaço e recebi vários comentários interessantes dos meus leitores. No entanto, logo comecei a trabalhar em um hedge fund e, desde então, não tenho encontrado muito tempo para escrever. No entanto, meu trabalho me deu uma outra inspiração para escrever e decidi mudar um pouco o rumo do blog.

Passarei a escrever neste espaço principalmente sobre investimento baseado em modelos quantitativos. Tenho trabalhado com isso há quase um ano e acredito que há muito futuro para esta área. O mercado brasileiro está se desenvolvendo a passos largos e a tendência é que cada vez mais pessoas se interessem por gerenciar seus próprios portfólios. E as estratégias quantitativas (usarei o termo abreviado “quant”) são uma ótima opção para quem não quer ficar só no feijão-com-arroz de comprar e vender ações.  As estratégias “quant” tem fama de serem complicadas, mas não é preciso ter um doutorado em matemática para entendê-las, desenvolvê-las ou aplicá-las. O approach quant é viável mesmo para pessoas físicas, mas é necessário uma certa familiaridade com ferramentas analíticas e, principalmente, um gosto por pesquisar e trabalhar para refinar as estratégias e obter bons resultados.

Com o tempo, espero que este espaço se torne um lugar para explorar e trocar idéias sobre este tema. Pretendo expor alguns tipos de estratégias quantitativas simples, principalmente relacionadas a arbitragem estatística, que é a área na qual tenho mais experiência. Não acho que exista muito material bom (principalmente em Português) sobre este assunto, e acho que posso contribuir para tornar mais claros alguns conceitos. Muitas corretoras já fornecem indicações de Long/Short em ações, um tipo de trade no qual o investidor tenta explorar distorções na relação entre pares de ações (pairs trading). Em geral, o investidor compra uma ação e simultaneamente vende outra (na verdade, aluga para vender), apostando na convergência do par. Mas não estamos necessariamente restritos às indicações de corretoras; o tipo de análise necessária para este trade é relativamente simples, e sua execução está ao alcance de muitos investidores.

Uma outra lenda das estratégias quant é que são uma galinha dos ovos de ouro, com as quais é possível ficar rico da noite para o dia. Como qualquer outro tipo de investimento, o investimento quantitativo é sujeito a períodos bons e ruins. O interessante do enfoque quant é que é possível mensurar com relativa precisão os riscos envolvidos, e simular o rendimento das estratégias ao longo do tempo usando dados passados (i.e. fazer o backtest das estratégias). Além disso, algumas estratégias (e.g. arbitragem estatística) se saem muito bem em períodos de alta volatilidade, que costumam ser períodos de queda no mercado. A possibilidade de ganhar retorno positivo, estando relativamente imunizado contra movimentos no mercado, é bastante atraente. No geral, o que posso dizer é que o trader quant dedicado, paciente e diligente conseguirá obter bons retornos. O importante na frase anterior são os adjetivos. Executar trades (quantitativos ou não) é fácil; difícil é desenvolver um método e seguí-lo.

Fico então por aqui, e deixo alguns temas sobre os quais pretendo escrever no futuro. Não esperem revelações de estratégias ou segredos, tampouco um método para enriquecer repentinamente. A maioria das estratégias quant bem sucedidas é baseada em idéias simples, com refinamentos e sutilezas que fazem a diferença. São estes refinamentos que dão a graça de trabalhar e pesquisar nesta área. Aí entram a capacidade e a criatividade do pesquisador ou trader.

Idéias para posts futuros:

  • O que é necessário para operar estratégias quant?
  • Idéias de trades quant
  • Backtesting de estratégias quant
  • Arbitragem estatística (pairs trading, cointegração/estacionariedade, correlação)
  • Execução
  • Métricas de desempenho de trading
  • Gerenciamento de risco