Todo investidor tenta encontrar o ponto ótimo da equação retorno x risco. É uma tarefa complicada, mas não é impossível.
Dentre as inúmeras teorias e técnicas que existem no mercado, há uma que chama atenção pela sua simplicidade: a metodologia da Magic Formula. Desenvolvida por Joel Greenblatt, a metodologia é baseada nos princípios básicos de value investing e é composta dos seguintes passos, extraídos de:
- Establish a minimum market capitalization (usually greater than $50 million).
- Exclude utility and financial stocks.
- Exclude foreign companies (American Depositary Receipts).
- Determine company's earnings yield = EBIT / enterprise value.
- Determine company's return on capital = EBIT / (net fixed assets + working capital).
- Rank all companies above chosen market capitalization by highest earnings yield and highest return on capital (ranked as percentages).
- Invest in 20–30 highest ranked companies, accumulating 2–3 positions per month over a 12-month period.
- Re-balance portfolio once per year, selling losers one week before the year-mark and winners one week after the year mark.
- Continue over a long-term (3–5+ year) period.
Como dissemos, é um método relativamente simples. No post de hoje, mostraremos como desenvolver um software em Python que permite acompanhar uma carteira baseada nesta metodologia. Utilizaremos como fonte de dados os sites Google Finance e o Fundamentus. O primeiro utilizaremos para coletar os dados sobre o índice IBovespa, benchmark do mercado de ações brasileiro e, o segundo, utilizaremos para coletar os dados de cotações diárias dos papéis escolhidos via Magic Formula. Como estamos fazemos um estudo, tomei a liberdade poética de adaptar os 9 passos para conseguir um resultado com 10 ações (e não as 20-30 sugeridas) e simularemos uma carteira de investimentos com as 10 melhores ações obtidas pelo método. São elas, ordenas pela fórmula:
TRPN3 - Tarpon Investimentos
HBOR3 - Helbor
BRIN3 - BR Insurance
EZTC3 - Eztec
DIRR3 - Direcional Engenharia
HGTX3 - CIA Hering
TAEE11 - Taesa
SCAR3 - São Carlos
ETER3 - Eternit
EVEN3 - Even Construtora
A data inicial do investimento simulado foi segunda-feira, 7 de abril de 2014. Ou seja, temos uma semana completa da data que escrevo este post. Neste dia 7 o preço de fechamento dos papéis foi:
TRPN3 R$ 12,99
HBOR3 R$ 7,77
BRIN3 R$ 6,09
EZTC3 R$ 28,32
DIRR3 R$ 10,39
HGTX3 R$ 24,97
TAEE11 R$ 18,88
SCAR3 R$ 35,99
ETER3 R$ 8,31
EVEN3 R$ 7,63
Já o índice IBovespa fechou em 52.155 pontos. Dados estes parâmetro iniciais, temos a implantação do código em Python. Inicialmente, importamos as bibliotecas, com destaque para re e numpy, que serão usadas para as expressões regulares dentro do código HTML e para as operações matemáticas básicas, respectivamente. Na sequência, definimos os parâmetro iniciais, como a lista de ações que serão usadas, a cotação inicial da carteira (em 07.04.2014) e algumas variáveis que serão usadas ao longo do código.
Em seguida, temos a primeira função do código, a writeStocks. Ela é utilizada para estabelecer a conexão com o MongoDB e inserir os dados das cotações coletados dos sites.
Depois, declaramos a função readStocks, que faz a leitura no banco stocks, collection magic.
Depois, temos as funções get_price e get_ibov, para capturar o valor das cotações. Usamos duas funções pois temos 2 fontes distintas. Atente para as linhas 85, 86, 101 e 102 onde são utilizadas as expressões regulares para coletar a variação percentual no dia, bem como o valor de cada um dos ativos.
Agora, podemos inserir os valores iniciais no MongoDB e também configurar como será nosso print final, com o relatório do desempenho da carteira na tela.
Por fim, temos o seguinte output:
Observamos que, já na primeira semana, a carteira teórica baseada no método de Joel Greenblatt já possui retorno de 4,09%, contra -0,55% do IBovespa. Sorte de principiante? Talvez. Mas, já estudo este método há algum tempo e ele se mostrou melhor que o retorno do IBovespa em todas as situações. Garimpando mais informações na web, encontrei um site com a seguinte chamada: Does the Magic Formula Really Work?
O autor do texto simulou um investimento de 20 anos com este método (sim, 20 anos, porque ações são para o longo prazo) com as ações sugeridas pela fórmula e o comparou com o S&P500. Ele mostrou que teria sido possível ficar milionário começando com apenas 10 mil dólares. Veja o desempenho na tabela abaixo e confira o post completo em:
No mínimo, intrigante. Um abraço e até o próximo post!
Nota em 15.04.2014: O código foi atualizado e agora todos os dados são capturados do Google Finance. A versão completa está disponível no GitHub ArtWithDataCodes.
Nota em 15.04.2014: O código foi atualizado e agora todos os dados são capturados do Google Finance. A versão completa está disponível no GitHub ArtWithDataCodes.
0 comentários:
Postar um comentário