Coletando dados de demonstrativos financeiros com o Python

No post de hoje iremos mostrar como extrair dados de demonstrativos financeiros disponibilizados pela B3 utilizando o Python.

É possível obter os dados de demonstrativos financeiros através de duas fontes distintas, por meio dos bancos de dados da CVM e por meio da página do site da B3. A diferença entre as duas está no fato que por meio da B3 é possível obter os dados atualizados em menor atualização de tempo, portanto, essa é a vantagem que a biblioteca brfinance, criado por  traz. Será por meio dela que iremos importar os dados de demonstrativos financeiros.

O segredo da biblioteca está em "conectar" com o objeto CVMAsyncBackend, e após declará-lo em uma variável, utiliza-lo em conjunto com seus métodos para obter os dados de acordos com os inputs inserido. Vejamos, de acordo com o tutorial proposto pelo autor,  por etapas como funciona.

Primeiro importamos as bibliotecas.


from brfinance import CVMAsyncBackend
import pandas as pd
from datetime import datetime, date
A partir do objeto CVMAsyncBackend() é possível utilizar os métodos para capturar os dados das empresas.
Definimos a variável com o nome de cvm_httpclient. Em seguida, usamos o método get_cvm_codes para obter os códigos CVM das empresas. Com o método get_consulta_externa_cvm_categories é obtido as categorias dos documentos que podem ser obtidos.

cvm_httpclient = CVMAsyncBackend()
# Dicionário dos códigos CVM de todas as empresas
cvm_codes = cvm_httpclient.get_cvm_codes()
# Dicionário de todas as categorias de busca disponíveis (Fato relevante, DFP, ITR, etc.)
categories = cvm_httpclient.get_consulta_externa_cvm_categories()


Ao obter os códigos das empresas e das categorias desejadas, é necessário somente definir os inputs do método

get_consulta_externa_cvm_results para obter os dados da(s) empresa(s) desejada(s).


# Realizando busca por Empresa
start_date = date(2020, 1, 1) # data de início
end_dt = date.today() # data de fim
cvm_codes_list = ['21610'] # Código CVM da B3
category = ["EST_4", "EST_3"] # Códigos de categoria para DFP e ITR.
last_ref_date = False # Se "True" retorna apenas o último report no intervalo de datas




# Busca
search_result = cvm_httpclient.get_consulta_externa_cvm_results(
    cod_cvm=cvm_codes_list,
    start_date=start_date,
    end_date=end_dt,
    last_ref_date=last_ref_date,
    category=category
    )



Em search_result, obtém-se os resultados da busca dos balanços e demonstrativos disponíveis na B3, de acordo com o que foi definido na consulta. Os passos seguintes referem-se apenas em filtrar o data frame para obter a DFP e ITR.


# Filtrar dataframe de busca para DFP e ITR apenas
search_result = search_result[
    (search_result['categoria']=="DFP - Demonstrações Financeiras Padronizadas") |
    (search_result['categoria']=="ITR - Informações Trimestrais")]
search_result = search_result[pd.to_numeric(search_result['numero_seq_documento'], errors='coerce').notnull()]


Depois disso, é só acessar em cada linha o documento produzido pela consulta.



# Obter demonstrativos
for index, row in search_result.iterrows():
    empresa = f"{row['cod_cvm']} - {cvm_codes[row['cod_cvm']]}"
    print("*" * 20, empresa, "*" * 20)
    reports = cvm_httpclient.get_report(row["numero_seq_documento"], row["codigo_tipo_instituicao"], reports_list=reports_list)

    for report in reports:
        reports[report]["cod_cvm"] = row["cod_cvm"]
        print(reports[report].head())


______________________________________

Quer saber mais?

Veja nosso curso de Python para Investimentos.

_______________________________________________________________

Referências

Oliveira, Eudes. brfinance - Acesse facilmente dados financeiros de empresas brasileiras na B3/CVM. Acesso em: https://github.com/eudesrodrigo/brFinance.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Ancoragem de Expectativas da Inflação no Brasil: uma avaliação utilizando a linguagem de programação R

Expectativas ancoradas significam que a inflação permanece próxima da meta mesmo após choques relevantes, tornando menos custosa a atuação do Banco Central no combate a pressões inflacionárias. Neste exercício, analisamos diferentes medidas para avaliar a ancoragem das expectativas no Brasil, utilizando a linguagem de programação R como ferramenta para a construção desse exercício, realizando a coleta, tratamento, cálculos e visualização dos resultados.

Como fazer previsões para a inflação desagregada medida pelo IPCA?

Neste artigo investigamos se a previsão desagregada da inflação é capaz de gerar previsões mais acuradas do que a previsão agregada. Utilizamos o Índice Nacional de Preços ao Consumidor Amplo (IPCA) como medida de interesse, aplicando um modelo simples e um modelo de passeio aleatório para comparação. Todo o processo pode ser feito de maneira automatizada utilizando a linguagem de programação R.

Qual o melhor modelo para prever a inflação medida pelo IPCA?

Neste exercício, testamos 18 modelos diferentes com um conjunto fixo de regressores para previsão da taxa de inflação, medida pelo IPCA. Implementamos o método da validação cruzada, visando obter resultados robustos para comparação de métricas de performance. Apresentamos os resultados gerais e desagregados por horizontes de previsão, além de automatizar todo o processo utilizando a linguagem Python.

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.