Criando indicadores fundamentalistas com Python

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".

Apesar de não utilizarmos posteriormente, é possível importar também a demonstração de fluxo de caixa.
Temos então diversas informações sobre o desempenho da empresa. Com os dados, é possível criar os indicadores.

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:

 

     $$ROE = \frac{Lucro Líquido}{Patrimônio Líquido}$$

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.

 

A sua fórmula segue como:

     $$ROA = \frac{Lucro Líquido}{Ativos Totais}$$

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:

 

    $$LPA = \frac{Lucro Líquido}{Acoes em circulação}$$

 

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.

    $$P/L = \frac{Preço de mercado da ação}{Lucro por ação (LPA)}$$

 

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.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise regional do mercado de trabalho com dados do CAGED usando Python

Os microdados dos CAGED fornecem informações detalhadas a nível de cidade, sexo, raça, nível de instrução, idade, salário e outras sobre os trabalhadores formais do Brasil, possibilitando ricas análises regionais de dados. Neste artigo mostramos como acessar, processar e analisar estes dados utilizando o Python.

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.