Blog

Postado em em 8 de maio de 2021

Como Pegar Cotações de Ações Utilizando o Python

Nessa aula vamos te mostrar como pegar cotações de ações automaticamente no Python, seja de uma única ação ou de uma carteira de ações!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber a planilha que usamos na aula no seu e-mail, preencha:

Como Pegar Cotações de Ações Automaticamente com Python

Você já deve ter pensado em automatizar a sua busca de ações na internet certo?

Hoje nós vamos te mostrar como automatizar esse procedimento para buscar uma ação ou uma carteira de ações de forma automática.

E para finalizar ainda vamos te mostrar como representar isso de forma gráfica dentro do Python!

Vamos ao próximo tópico que a aula de hoje vai te ajudar bastante!

Cotações de Ações no Python

Para a execução dessa aula nós vamos utilizar o Jupyter, que é um edito de Python. Então caso ainda não tenha ele instalado no seu PC, basta clicar aqui que vamos te direcionar a página com o passo a passo para a instalação.

Existem várias formas de obter a cotação de ações dentro do Python, mas nessa aula nós vamos utilizar a biblioteca pandas_datareader no Python.

Essa biblioteca vai permitir com que o usuário puxe a cotação de ações de vários lugares diferentes, e um desses lugares é o Yahoo Finance, que é uma das melhores referências para pegar cotações quando o assunto é programação.

OBS: Caso você tenha alguma outra fonte de dados do mercado financeiro que queira utilizar, pode usar sem problema algum.

Se você ainda não tiver essa biblioteca instalada, basta ir ao menu iniciar, procurar pelo Anaconda Prompt e escrever nele pip install pandas_datareader e pressionar enter.

Com isso já terá a biblioteca instalada e podemos dar continuidade a aula!

Obtendo a Cotação de 1 Ação

Vamos agora iniciar a busca das cotações, nesse primeiro exemplo vamos fazer com apenas 1 ação para que entendam e depois faremos com uma carteira de ações.

import pandas as pd # Para evitar escrever pandas e trocar pela escrita apenas de pd para facilitar
from pandas_datareader import data as web # Evita a escrita do data e troca pelo web
import matplotlib.pyplot as plt

# vamos pegar cotação do Indice e de Petrobras

#indice
df = web.DataReader(f'^BVSP', data_source='yahoo', start=f'02-20-2020', end='02-20-2021')
display(df)
df["Adj Close"].plot(figsize=(15, 10))
plt.show()

#PETR4
df = web.DataReader(f'PETR4.SA', data_source='yahoo', start=f'02-20-2020', end='02-20-2021')
display(df)
df["Adj Close"].plot(figsize=(15, 10))
plt.show()

Esse é o código para obtermos as ações, nas 3 primeiras linhas estamos apenas importando das bibliotecas que serão utilizadas.

A biblioteca do pandas (temos um post só sobre esse assunto, caso tenha interesse em saber mais clique aqui), a biblioteca para obtenção das ações e a biblioteca gráfica do Python, para que possamos mostrar os dados graficamente.

Na primeira parte do código vamos obter o índice da BOVESPA que é o índice de comparação que vamos utilizar para saber as variações.

Na função datareader nós vamos precisar passar 4 informações:

  • O Ticker da ação, não é apenas escrever como é acostumado é IMPORTANTE que você verifique esse Ticker dentro do site do Yahoo Finance para garantir que vai obter a informação corretamente;
  • A fonte que vamos buscar os dados;
  • A data inicial da busca;
  • A data final da busca;

IMPORTANTE: A data inicial e data final está no formato AMERICANO então a ordem seria MM/DD/AAAA, então é muito importante isso para que não coloque informações trocadas de dia e mês para não ter problemas.

Feito isso já teremos a tabela de dados com as informações desses períodos para o ticker selecionado.

Informações do índice BOVESPA
Informações do índice BOVESPA

Aqui temos as informações passadas pelo Yahoo Finance e nós vamos utilizar o valor de fechamento ajustado, que é criado pelo próprio Yahoo Finance, por isso na fórmula seguinte estamos utilizando o Adj Close para indicar essa coluna específica.

Depois vamos repetir o mesmo procedimento para obter as informações da PETR4 que é o ticker da Petrobrás.

Obtendo a Cotação de uma Carteira de Ações

data_inicial = "01/01/2020"
data_final = "01/01/2021"

empresas_df = pd.read_excel("Empresas.xlsx")
display(empresas_df)

for empresa in empresas_df['Empresas']: 
    print(f"{empresa}:")
    df = web.DataReader(f'{empresa}.SA', data_source='yahoo', start=data_inicial, end=data_final)
    display(df)
    df["Adj Close"].plot(figsize=(15, 10))
    plt.show()

Aqui vamos praticamente repetir o mesmo procedimento, só que nesse caso, vamos utilizar a biblioteca do pandas, para importar um arquivo em Excel.

Que se encontra na mesma pasta do código, para que possamos passar a lista das ações que vamos buscar.

Dessa forma temos uma facilidade, pois não é necessário ficar escrevendo, já fizemos as declarações de data inicial e final, já temos definido a base de busca.

Então a única informação que será modificada são as ações que estão na nossa lista.

Com isso podemos utilizar a estrutura de repetição FOR para ler essas informações puxar os dados dessa ação e já gerar um gráfico com as informações do fechamento ajustado.

Base de dados + gráfico das ações
Base de dados + gráfico das ações

Assim você vai ter tanto a tabela com as informações completas em todo esse período quanto uma análise gráfica dessa ação nesse período.

Isso é muito importante, pois uma visualização gráfica é mais fácil e rápida de saber o que aconteceu com essa ação durante o período selecionado.

Conclusão

Nessa aula foi possível aprender a como obter cotações de 1 ação ou de uma carteira de ações utilizando o Python.

Agora você já tem uma maneira fácil, rápida e automática de obter esses dados para fazer suas análises do mercado financeiro.

Como na programação tudo depende de prática é necessário que você tente refazer os passo que fizemos sozinho(a) para verificar se de fato fixou o conteúdo!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso gratuito?


Quer aprender a construir um Dashboard em Excel do zero? Se inscreva gratuitamente na Jornada do Excel!