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

Analisando a Volatilidade de Longo Prazo do Ibovespa usando Python

Com base no modelo GARCH(1,1), realizamos realizar a modelagem da variância condicional dos log retornos diários do Ibovespa, abrangendo o período de janeiro de 2018 até dezembro de 2023. O objetivo principal é compreender a implementação desse modelo utilizando a linguagem de programação Python, além de conduzir uma análise do mercado acionário brasileiro ao longo do período amostral.

Ao concluirmos este exercício, teremos a capacidade de obter uma medida representativa da variância de longo prazo da série temporal. Essa medida poderá ser comparada com a variância histórica, permitindo-nos inferir se a volatilidade presente está atualmente inferior ou superior àquela projetada para o futuro. Essa análise contribuirá para uma melhor compreensão da dinâmica da volatilidade no mercado acionário brasileiro.

Construindo uma NAIRU para o Brasil usando Python

Um dos maiores desafios para aqueles que trabalham com dados econômicos é aliar a prática com a teoria. Para tanto, o uso do Python pode facilitar esse desafio, permitindo construir todos os passos de uma análise de dados. Demonstramos o poder da linguagem tomando como exemplo a construção da NAIRU para o Brasil.

A Abordagem do Estudo de Eventos usando Python

A maioria das pesquisas em finanças está dedicada a investigar o efeito de um anúncio da companhia ou de um evento, sistêmico ou não, sobre o preço de uma ação. Esses estudos são conhecidos como “estudos de eventos”. Neste contexto, apresentaremos uma breve introdução à metodologia e demonstraremos como aplicá-la por meio de exemplos reais utilizando a linguagem de programação Python.

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.