Como obter dados financeiros com o Python? Um guia para sair do Excel

Em nosso cotidiano profissional, identificar maneiras de otimizar processos é essencial para aumentar a produtividade. Em particular, focalizar nas etapas mais demoradas pode render grandes benefícios. Neste artigo, exploramos como o Python se destaca como uma ferramenta valiosa para aprimorar a eficiência no trabalho, especialmente ao simplificar e agilizar a coleta de dados, uma etapa extremamente importante na análise de dados.

Dados do mercado acionário brasileiro

Dados de ações

Para ter acesso aos dados da B3, isto é, preços de ações no geral, nós podemos fazer uso da biblioteca yfinance. Tal pacote permite acessar dados diretamente da API do site do Yahoo Finance.

Para tanto, é necessário obter o ticker da empresa conforme a página da companhia no site do Yahoo Finance, e inseri-lá dentro da principal função da biblioteca.

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

Alunos inscritos no curso de Mercado Financeiro e Gestão de Portfólio com o Python têm a oportunidade de adquirir conhecimento em todas as etapas a seguir, além de obter uma compreensão teórica abrangente das principais ferramentas utilizadas no Mercado Financeiro.

Os dados capturados são dispostos pelas colunas:

  • Open
  • High
  • Low
  • Volume
  • Close
  • Adj Close

Plotamos os valores do preço de fechamento para verificar os dados importados.

Dados Contábeis

Em relação aos dados contábeis e financeiros de empresas, podemos obtê-los também através do yfinance, importando diretamente do site do Yahoo Finance.

Código
2023-09-30 2023-06-30 2023-03-31
Treasury Shares Number 29031369.0 295669.0 295669.0
Ordinary Shares Number 13015465561.0 13044201261.0 13044201261.0
Share Issued 13044496930.0 13044496930.0 13044496930.0
Net Debt 17352000000.0 18877000000.0 19546000000.0
Total Debt 60997000000.0 57971000000.0 53349000000.0
... ... ... ...
Cash Cash Equivalents And Short Term Investments 13409000000.0 12655000000.0 13169000000.0
Other Short Term Investments 1299000000.0 2304000000.0 2879000000.0
Cash And Cash Equivalents 12110000000.0 10351000000.0 10290000000.0
Cash Equivalents 11907000000.0 10239000000.0 10155000000.0
Cash Financial 203000000.0 112000000.0 135000000.0

81 rows × 3 columns

Dados da curva de juros

Para dados referentes a curvas de juros podem ser extraídos utilizando a biblioteca pyettj. Os dados são importados diretamente do site da B3 (também há a possibilidade de extrair da ANBIMA), e podem ser extraidos em diferentes datas de referências.

E os gráficos são construídos facilmente utilizando o pacote plotly.

Dados do Banco Central do Brasil

O Banco Central do Brasil mantém diversas séries disponibilizadas em seu banco de dados públicos. Podemos acessar esses dados utilizando a biblioteca python-bcb.

Sistema Gerenciador de Séries Temporais

O módulo sgs do python-bcb permite acessar por meio da API diversas séries disponíveis no Sistema Gerenciador de Séries Temporais. É no site que podemos localizar diferentes séries financeiras e econômicas e obter os seus respectivos códigos, estes que vão permitir importar as séries pela função sgs.get().

Código
ipca
Date
2002-01-01 0.52000
2002-02-01 0.36000
2002-03-01 0.60000
2002-04-01 0.80000
2002-05-01 0.21000

No exemplo capturamos os dados do Índice nacional de preços ao consumidor-amplo (IPCA) - Var. % mensal no período de jan/2002 até jun/2023. Veja que a data por padrão está no índice do DataFrame.

Expectativas Focus

As expectativas de Mercado coletadas pela Pequisa Focus do Banco Central podem ser acessadas através da Plataforma OlindaBCB. Assim como qualquer outra API, podem ser coletadas por meio do Python, e nesse caso, utilizamos o módulo Expectativas do python-bcb.

Código
EntitySets:
  ExpectativasMercadoTop5Anuais
  ExpectativaMercadoMensais
  ExpectativasMercadoInflacao24Meses
  ExpectativasMercadoInflacao12Meses
  ExpectativasMercadoSelic
  ExpectativasMercadoTop5Selic
  ExpectativasMercadoTop5Mensais
  ExpectativasMercadoTrimestrais
  ExpectativasMercadoAnuais
Código

EntitySet (Endpoint): ExpectativasMercadoAnuais
EntityType: br.gov.bcb.olinda.servico.Expectativas.ExpectativaMercadoAnual
Properties: Indicador<str>, IndicadorDetalhe<str>, Data<str>, DataReferencia<str>, Media<float>, Mediana<float>, DesvioPadrao<float>, Minimo<float>, Maximo<float>, numeroRespondentes<int>, baseCalculo<int>

Com as informações conhecidas sobre o data frame a ser importado, utilizamos o método get_endpoint() para conectar com a API do Banco Central e executar a consulta com .query().

Dados do FRED

Para coletar os dados do Federal Reserve Economic Data (FRED), uma alternativa é utilizar a biblioteca pandas_datareader, que permite obter os dados de diversas séries financeiras e econômicas internacionais por meio do site, e dos respectivos códigos da séries encontrados no site do FRED.

Como exemplo demonstramos a captura de dados de Treasuries de 10 e 3 anos.

Quer aprender mais?

Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Sumarizando divulgações trimestrais de empresas usando IA no Python

Neste exercício, iremos utilizar a inteligência artificial no Python para analisar e sumarizar divulgações trimestrais de empresas. Focaremos no uso de ferramentas como Gemini e técnicas de processamento de linguagem natural para extrair informações de documentos PDF relacionados aos relatórios financeiros das empresas.

Prevendo efeitos de mudanças de preços em produtos usando TimeGPT

O exercício explora como prever os efeitos de mudanças nos preços de produtos utilizando o TimeGPT, uma ferramenta de previsão de séries temporais no Python. Usando elasticidade-preço, é possível medir a resposta da demanda a variações de preço. O exemplo prático utiliza dados de vendas de abacates nos EUA.

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.