quarta-feira, 28 de setembro de 2016

Reversão de Média Funciona na Bovespa? Parte 1

Alguns dias atrás me chamou a atenção o post  Is mean reversion dead? no blog do Cesar Alvarez, em que ele analisa uma estratégia de reversão de média no mercado americano. O post é de 2013, desde então o Alvarez tem feito vários outros posts com temas próximos, analisando várias variações do mesmo sistema. Decidi então fazer uma análise no mercado da Bovespa seguindo uma abordagem parecida, ou seja, como funcionam as ações da Bovespa quanto a reversão de médias em sistemas mecânicos de regras simples?

Minha motivação nesse estudo é mesmo confrontar algumas estratégias com o funcionamento real no mercado. Francamente não vi muitos sistemas ditos extremamente simples funcionarem bem no mercado brasileiro, e que mantenham índice de Sharpe acima de 2 por muito tempo, então vai ser útil saber como pode ser o comportamento delas.

Alguns livros sobre operação em renda variável se referem à regra da simplicidade, e nem sempre discutem várias modificações que se tem que se fazer no sistema para que ele funcione de verdade; modificações essas que acrescentam mais graus de liberdade aos sistemas e que, portanto, destroem a hipótese da simplicidade. Necessariamente ou você põe uma pitada de subjetividade ganha com a experiência no caso da operação manual (e nesse caso adiciona infinitos graus de liberdade), ou você não roda o sistema exatamente como o livro diz. E não estou falando de ajuste de parâmetros! "Mas eu fiz tudo certo! Por que não funcionou? Isso não presta, não brinco mais." Amiguinho, é que só te contaram 20% da verdade. Os sistemas têm que ser simples para evitar o overfit, mas não tão simples a ponto de não representarem nada: a coisa tem que ter equilíbrio.

Apesar disso, eu acredito que podemos tomar proveito sim de alguns desses sistemas extremamente simples, mas só quando analisados de forma adequada. Mas é claro que há várias formas de se analisar, vamos apenas propor uma delas. Este é o primeiro de uma série de posts, e hoje vamos analisar o caso geral e tentar responder à seguinte pergunta: a estratégia (abaixo) funcionaria na Bovespa no último ano?

A expectativa inicial que eu tinha para essa resposta me surpreendeu bastante. Para o sistema proposto, eu tinha um sentimento de que a resposta seria não, que seriam necessários alguns ajustes no sistema e tal, e eu tinha em mente utilizar por exemplo, o adf para melhorar o resultado.

Vamos então ao que interessa.


Estratégia


  • Entrada (comprada): 
    • IFR2[1] < 40.0
    • Fechamento[1] > Fechamento[2]
  • Saída:
    • IFR2[1] > 60.0
    • Fechamento[1] < Fechamento[2]
    • Última posição do intervalo de dados é fechada
  • Sem stops
  • Sistema comprado (para não entrarmos no mérito de aluguel de ações)
  • Gráfico D1
  • Position Sizing : lote padrão (100), sem empilhamento de posições
  • Universo
    • Conjunto das ações listadas no Índice Ibovespa
    • Intervalo de dados: 1 ano
    • Fonte de dados: Google Finance
  • Não foi considerada performance do sistema no que tange a drawdown, profit factor, sharpe ratio, hit rate, nem estabilidade estatística do sistema. Deixaremos esses pontos para depois.


Método de testes, algoritmo e implementação


A estratégia foi implementada em Matlab, seguindo os seguintes passos
  1. Obter os nomes dos símbolos do Ibovespa
  2. Para cada símbolo, obter o OHLC pela API do Google Finance
  3. Calcular o IFR de cada um desse conjunto de dados
  4. Calcular as condições de entrada e saída
  5. Calcular o retorno para cada par compra/venda dos ativos e obter o lucro final


Resultados e Discussão


Como há bastantes ativos no índice Ibovespa, vou agrupar os símbolos em dois grupos, para ficar melhor de apresentar em gráfico. As figuras 1 e 2 mostram os ganhos absolutos para os ativos. O que surpreendeu aqui foi que a maioria dos ativos obtiveram ganhos positivos, ficando os cinco maiores lucros entre RADL3, SMLE3, EQLT3, MULT3 e BBDC4. Os piores ganhos ficaram para ABEV3, FIBR3, SUZB5, KLBN11 e EMBR3.

Fig.1. Ganhos absolutos em ativos do Ibovespa - Grupo 1
Fig.2. Ganhos absolutos em ativos do Ibovespa - Grupo 2
Para ficar mais fácil de comparar, as figuras 3 e 4 mostram os ganhos relativos, considerando o ganho dividido pelo último preço de fechamento de cada ativo. Os maiores 5 ganhos relativos ficaram por conta de CSNA3, GOAU4, PETR4, BBBR4 e PETR3. Os piores ganhos relativos ficaram novamente com os mesmos ativos que obtiveram os piores ganhos absolutos para a estratégia, nesse período, ou seja, SUZB5, ABEV3, FIBR3, EMBR3 e KLBN11.


Fig.3. Ganhos relativos ao preço de fechamento em ativos do Ibovespa - Grupo 1

Fig.4. Ganhos relativos ao preço de fechamento em ativos do Ibovespa - Grupo 2


Conclusão e Próximos Passos


É fácil perceber que a estratégia proposta parece ser viável do ponto de vista de lucratividade, para vários ativos do Ibovespa. No próximo post vamos rodar o teste ADF Augmented Dickey-Fuller, e comparar com o resultado obtido aqui, para ver se eles são confirmados. Em seguida vamos incluir custos, e comparar novamente os resultados. Isso pode dar um indicativo mais filtrado sobre quais ativos pode valer a pena implementar uma estratégia mais real (em MT5, por exemplo), fazer um backtest mais robusto e avaliar sob pontos de vista de performance do sistema.

4 comentários:

Unknown disse...

Olá! Você teria algum post, ou saberia recomendar algum, que comentasse sobre as opções da análise dos resultados de um backtest no Metatrader? Por exemplo, o 'índice de sharpe' que você comentou neste post, fator de recuperação' e etc?

Qtg disse...

Não lembro no momento, mas eu devo comentar sobre isso na continuação deste post. Obrigado. []s

Henrique Vilela disse...

Qual foi o tempo gráfico testado? D1?

Qtg disse...

Sim

Postar um comentário