A Análise Fundamentalista adota a hipótese de que há um valor intrínseco para cada ação, isto considerando o desempenho econômico e financeiro da empresa. No post de hoje iremos tratar de como buscar dados e construir indicadores fundamentais para esse tipo de avaliação utilizando o Python.
A análise fundamentalista foca em projetar o desempenho futuro de uma empresa, baseado nas informações de demonstrativos financeiros da empresas e especialmente através dos fundamentos (indicadores) das mesmas.
Existem diversos fundamentos que podem ser construídos através dos demonstrativos da empresa, com cada indicador representando uma informação relevante para o analista.
Para construir esses indicadores, obviamente, deve-se ter em mãos os dados dos demonstrativos das empresas. Podemos obtê-los parcialmente através do site Investing.com e realizando a importação para o Python com a biblioteca investpy.
Uma vez carregado as bibliotecas, iremos importar os dados e as informações da empresa.
Vamos realizar uma análise de indicadores da empresa ITAUSA, com base no ticker ITS4. O ticker é necessário para que seja possível importar as informações da empresa, no caso, os demonstrativos: Demonstração de resultado (receitas e lucro); Balanço Patrimonial (ativos, passivos e patrimônio líquido) e Demonstração de fluxo de caixa.
Para importar as receitas e o lucro, utilizamos a função get_stock_financial_summary, com o argumento stock referenciando o ticker, country para o país (Brazil), summary_type para o tipo do demonstrativo (income_statement) e o período, podendo ser anual (annual) ou trimestral (quarterly).
Buscamos os dados trimestrais. Do período importado, apenas 4 períodos anteriores do atual são importados, mas o que é o suficiente para obtermos uma análise sobre a empresa.
Abaixo, importamos os dados da DRE em itsa_dre.
Realizamos o mesmo procedimento para o balanço patrimonial, alterando o argumento summary_type para "balance_sheet".
Return on Equity (ROE)
O retorno sobre o patrimônio mede a rentabilidade sobre o capital da empresa, ou seja, a eficiência da empresa em utilizar os seus recursos próprios.
A sua fórmula segue como:
Esse indicador é importante para entender a taxa de crescimento da empresa. Abaixo, realizamos o cálculo do indicador com os dados da ITSA4.
Return on Asset (ROA)
Retorno sobre os ativos mede a rentabilidade da empresa em relação aos seus ativos, ou seja, o se ela consegue usar eficientemente os seus ativos para gerar lucro.
Diferente do ROE, a ROA exprime o quão alavancada uma empresa está, isto porque os ativos totais incluem a quantidade de capital emprestado para executar suas operações.
Análise de ações
Para analisar uma empresa, é possível relacionar o seu valor com o preço da ação negociado.
Antes de criar os indicadores desse tipo de medida, devemos buscar os dados do número de ações em circulação da empresa. Realizamos esse procedimento com a função get_stock_information, com o ticker, o país e com o argumento as_json = False (para retornar um data frame).
Das informações coletadas, iremos utilizar somente a coluna "Shares Outstanding".
Agora temos informações suficientes para calcular três indicadores importantes para a análise de ações.
Lucro por ação
O LPA mede a rentabilidade por cada ação que possui em circulação. Quanto maior o LPA da empresa, maior o seu valor (investidores irão pagar mais pela ação).
A sua fórmula segue como:
O LPA é necessário também para calcular o P/L da empresa que abordaremos a seguir.
Preço / Lucro
O P/L é utilizado para avaliar se o preço das ações de uma empresa está caro ou barato. Teoricamente, indica o número de anos que um investidor demoraria para recuperar o capital investido.
No código, primeiro devemos importar os dados da cotação da ITSA4 para realizar o cálculo do P/L. O primeiro passo deste processo é definir as datas de inicio e fim com base nas datas capturadas pelos demonstrativos importados anteriormente, com isso, a ideia é que obtemos uma maior automação.
Para definir essas datas, pegamos o primeiro e último valor do índice do data frame itsa_dre. Em seguida, utilizamos o método strftime para transformar em string e definir o formar de dia/mês/ano (a função get_stock_historical_data só aceita a data neste formato).
Uma vez definidos as datas de inicio e de fim, utilizamos a função get_stock_historical_data para buscar a cotação do ativo.
Para realizar o cálculo, é necessário utilizar os preços de fechamentos, contidos da coluna "Close". Realiza-se a junção com o data frame do LPA, completa-se os dados faltantes (os preços são diários, causando problemas com a coluna do LPA). E por fim, retira-se os dados faltantes restantes.
Ao final do código, renomeamos as colunas e calculamos o P/L.
_____________________________________
Quer saber mais?
Veja nosso curso de Python para Investimentos.