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

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.

Criando Tabelas com o Python: mostrando o poder da linguagem sobre o Excel

Nos dias atuais, pessoas que trabalham com dados estão constantemente confrontados com um dilema: criar uma tabela não tão genial no Excel ou manter em um formato ainda pior, como um dataframe, mas mantendo a flexibilidade de obtenção dos dados. Podemos resolver esse grande problema, unindo a flexibilidade e beleza ao usar a biblioteca great_tables do Python.

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

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.