Automatizando a coleta de dados de demonstrativos financeiros: construindo um Dashboard (Parte 02)

No post de hoje continuamos o processo de automatização de dados financeiros de empresas brasileiras. No último post, entendemos como podemos usar o R para coletar os dados de demonstrações financeiras e construir indicadores, hoje iremos construir um Dashboard que permita que possamos automatizar todo o processo.

O ponto de partida será o mesmo da última postagem: utilizar o pacote {GetDFPData2} do Marcelo S. Perlin para coletar os dados das Demonstrações Financeiras Padronizadas disponibilizados pela CVM e B3. A ideia é construir um arquivo .R em que permita coletar os demonstrativos e construir os indicadores e em seguida, em um outro arquivo .Rmd, construir um dashboard a partir do {flexdashboard}. O resultado será um dashboard simples, como na imagem abaixo.

Todo o processo abaixo pode ser conferido através da plataforma do Clube AM, o repositório de código da Análise Macro, onde disponibilizamos um vídeo explicando o código do post, e também os arquivos utilizados.

Coleta e Construção dos Indicadores

Em primeiro lugar devemos escolher quais indicadores iremos demonstrar no painel. Não iremos realizar julgamentos extensos e longos de quais indicadores melhor representam uma análise da empresa, a ideia é selecionar, dentre os diferentes grupos, indicadores que sirvam de exemplo para nosso Dashboard e ensinar a vocês a como construir o código. Ficará a cargo do leitor julgar e alterar as variáveis utilizadas, afinal, um Dashboard deve representar aquilo que melhor atende ao desejo da análise do usuário.

Dito isto, vamos construir os seguintes indicadores, representados em gráficos de série temporal:

DRE

  • Receita
  • Custo da Mercadoria
  • Lucro/Prejuízo

As informações acima são representadas em um único gráfico no Dashboard.

Indicadores

iremos construir indicadores que representam a situação da empresa, dividimos em quatro grupos:

Liquidez

  • Corrente
  • Geral

Endividamento

  • De Capital próprio
  • Passivo Total

Rentabilidade

  • ROE
  • ROA

Margem

  • Margem Bruta
  • Margem Líquida

Uma vez definido os indicadores, podemos saber quais contas e demonstrações devemos utilizar e portanto, podemos coletar os dados. Vamos criar um arquivo .R e construir o código.

Abaixo, utilizamos a função get_info_companies para coletar o código CVM das empresas que iremos analisar, no caso, após a coleta, realizamos alguns filtros: empresas que são ativas, que são negociadas em bolsa e que não são instituições financeiras (visto que não faria sentido analisar a maioria dos indicadores acima desse setor). Veja que no código abaixo capturamos não somente o código CVM, bem como também a Denominação Social das empresas, isso nos ajudará a construir a aba de input do Dashboard.

Com os códigos, podemos utilizar a função get_dfp_data para capturar o balanço patrimonial e a DRE desde 2011 das empresas filtradas.

Teremos no objeto l_dfp uma lista contendo três data frames, um para cada demonstrativo, alteramos os nomes de cada data frame na lista com a função set_names, e empilhamos todas as informações com bind_rows, para formar apenas um data frame. Em seguida, selecionamos apenas algumas colunas.

Com os dados limpos, podemos criar os indicadores. Seguiremos um processo manual de Data Wrangling de forma a facilitar o calculo do indicador, realizando o filtro dos indicadores por meio de seus nomes e números de contas (o duplo filtro é para confirmar que não haja nenhum erro) e alterando o formato de long para wide e calculando o indicador com group_by e mutate. Repetimos o processo para todos os indicadores.

Com todas as informações coletadas e os indicadores criados, salvamos os dados em um arquivo .Rdata. Esse arquivo será útil pois facilitará o processo de renderização do Dashboard.

OBS: reparem que os nomes de alguns indicadores estão formatados de uma forma não usual, na realidade, isso é uma mudança para que o R reconheça os caracteres especiais das palavras e não gere nenhum erro.

Criando o Arquivo do {flexdashboard}

Agora que construímos todo o processo de coleta de dados, devemos utilizar os dados salvos e carregar em um ambiente em que possamos criar o dashboard, isto é, através do {flexdashboard}. Para criar um arquivo no R, vamos em File -> New File -> Rmarkdown -> From Template -> Flex Dashboard (é necessário instalar o pacote).

Abaixo, segue a construção do código do arquivo .Rmd criado. Após o cabeçalho YAML, cada chunk é representado por um bloco de código.

Carregamos nesse arquivo .Rmd os dados salvos anteriormente.

Criamos a aba lateral que representará o input do Dashboard. O input será as companhias coletadas e para as informações de input utilizaremos o vetor criado por meio do filtro feito no arquivo de coleta e tratamento, salvos no objeto names_companies.

## Row {.sidebar data-width="200"}
-----------------------------------------

Agora podemos criar os gráficos. Cada bloco de código representa um chunk do arquivo, bem como representamos a construção do espaço do flexdashboard por meio de "linhas" (Rows)  Primeiro, criamos o gráfico de DRE e em seguida dos indicadores por meio de um tabset.

Para construir os gráficos, utilizamos o pacote {echarts4r}, que auxilia no processo de construção de um ambiente dinâmico em Shiny a partir da função renderEcharts4r.

Row {data-width=575}
--------------------------------------
### DRE

Row {.tabset}
-----------------------------------------------------------------------
### Liquidez Corrente

### Liquidez Geral

### Endividamento Terceiros / Capital Próprio

### Endividamento Terceiros / Passivo Total

### ROA

### ROE

### Margem Bruta

### Margem Líquida

Por fim, construímos o Dashboard que permite selecionar as empresas que desejamos analisar os indicadores. No próximo post, focaremos na parte de automatização, isto é, utilizaremos o Github Actions para que possamos atualizar a coleta de dados frequentemente.

Quer saber mais?

Veja nossos cursos da trilha de Ciência de dados para Economia e Finanças onde ensinamos a coletar dados financeiros e econômicos e também a construir Dashboard com o R.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Quais são as ferramentas de IA?

Um aspecto crucial dos Agentes de IA é a sua capacidade de tomar ações, que acontecem por meio do uso de Ferramentas (Tools). Neste artigo, vamos aprender o que são Tools, como defini-las de forma eficaz e como integrá-las ao seu Agente por meio da System Prompt. Ao fornecer as Tools certas para o seu Agente — e ao descrever claramente como essas Tools funcionam — você pode aumentar drasticamente o que sua IA é capaz de realizar.

Otimizando um Portfólio de Investimentos com Machine Learning

A construção de portfólio ótimo refere-se ao processo de alocar eficientemente capital entre um conjunto predefinido de ativos ou títulos. O campo da construção de portfólio tem sido extensivamente estudado por acadêmicos e profissionais desde a década de 1950, quando Markowitz introduziu sua inovadora abordagem de média-variância para a construção de portfólio. Diante disso, podemos melhorar o processo de alocação de peso de um investimento em um portfólio através do Aprendizado não supervisionado com a aplicação do Hierarchical Risk Parity (HRP). Neste exercício, realizamos uma introdução ao método e mostramos os resultados de um exemplo criado através do Python.

Como usar IA + Python para o Mercado Financeiro?

Neste post, mostramos como a Inteligência Artificial, aliada à linguagem Python, está revolucionando o mercado financeiro. Exploramos as principais áreas onde essa tecnologia pode ser aplicada — como gestão de carteiras, análise de demonstrações contábeis, estratégias quantitativas, trading e análise macroeconômica — com foco em aplicações práticas e exemplos voltados para o contexto brasileiro.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

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.