Blog

Postado em em 10 de setembro de 2022

API de Preço de Ações com Python – Obtenha Informações Econômicas

Hoje eu quero te mostrar como utilizar uma API de preço de ações com Python para automatizar a obtenção dessas informaçõ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 por e-mail o(s) arquivo(s) utilizados na aula, preencha:

API de Preço de Ações com Python

Você sabia que é possível buscar preço de ações e informações econômicas com Python?

Não só é possível como eu vou te mostrar como fazer isso utilizando a API Alpha Vantage para que você possa incrementar seus projetos!

API de Cotação de Ações com Python

A ideia é que você consiga pegar cotação de ações ou informações financeiras diariamente, semanalmente ou no período que precisar.

Isso vai facilitar muito suas análises de dados e vai evitar com que você precise ficar fazendo essa busca de forma manual.

Então isso vai deixar o processo automático, mais rápido e com menor chance de erro, pois ao olhar de forma manual é possível que você troque um valor ou até mesmo troque esse valor na hora de registrar.

Como sempre falamos aqui é importante que você leia a documentação do que estiver utilizando, até porque lá você vai ter todas as informações que precisa para utilizar a API (ou biblioteca).

https://www.alphavantage.co/documentation/

Nesse caso você vai ter tudo o que precisa para obter o valor das ações diariamente, semanalmente, mensalmente entre outras informações úteis para utilizar a API.

Como essa API precisa de uma chave de verificação para que você consiga utilizar, você vai ter que fazer essa solicitação.

No site acima ou na própria página inicial da API você vai visualizar um botão com o nome Claim your free API key, você pode clicar e colocar um e-mail válido, pois essa chave será enviada por e-mail.

Outra informação importante é que você precisa fazer a instalação da biblioteca requests, pois sempre que utilizamos uma API nós precisamos fazer uma requisição e para isso precisamos dessa biblioteca.

from chave import chave_api

import requests

# replace the "demo" apikey below with your own key from https://www.alphavantage.co/support/#api-key
url = f'https://www.alphavantage.co/query?function=TIME_SERIES_WEEKLY_ADJUSTED&symbol=ITUB4.SAO&apikey={chave_api}'
r = requests.get(url)
data = r.json()

print(data)

Esse é o Código inicial padrão para que você possa utilizar a API para buscar cotações. Aqui temos a importação da biblioteca requests (que pode instalar escrevendo pip install requests no anaconda prompt).

E temos também um código inicial from chave import chave_api. Esse código só estamos utilizando para que ninguém visualize a chave que estamos usando.

Mas no seu caso pode colocar chave_api = “sua chave aqui”, que vai funcionar normalmente.

No código você pode ler linha a linha para entender o que está sendo feito no código ou pode ir direto na documentação para que consiga entender cada pedaço do código.

A linha com # é apenas um comentário, então está falando para substituir o “demo” pela sua chave.

Logo abaixo nós temos um link, que é como funciona a requisição que vamos fazer, vamos fazer isso através de um link e esses parâmetros estão todos descritos no site.

Parâmetros da API
Parâmetros da API

Aqui temos os 3 parâmetros obrigatórios: function, symbol e interval. Os outros são parâmetros opcionais, mas que você pode ler se algum deles é interessante para a sua aplicação.

 Logo abaixo dessa linha nós temos uma requisição do tipo get, que é para pegar uma informação nesse link e depois vamos extrair o json (que é um tipo de arquivo) do nosso resultado.

O json nada mais é do que um dicionário, então o resultado da sua requisição é um dicionário com outros dicionários dentro com todas as informações.

Resultado da busca inicial das ações
Resultado da busca inicial das ações

Então sabendo trabalhar com dicionários você vai conseguir extrair as informações específicas que você quer, pois só pela requisição nós vamos ter diversas informações, então vamos precisar extrair apenas o que será utilizado.

Esse primeiro exemplo foi obtido em formato JSON, mas essa API também disponibiliza uma forma em CSV, ou seja, podemos obter essas informações já em formato de texto.

Isso pode facilitar para quem não está acostumado a trabalhar com dicionários no Python.

import pandas as pd
from io import StringIO

# replace the "demo" apikey below with your own key from https://www.alphavantage.co/support/#api-key
url = f'https://www.alphavantage.co/query?function=TIME_SERIES_WEEKLY_ADJUSTED&symbol=ITUB4.SAO&apikey={chave_api}&datatype=csv'
r = requests.get(url)

tabela = pd.read_csv(StringIO(r.text))
display(tabela)

Então dessa forma fica um pouco mais visual as informações que estamos obtendo. Aqui temos um detalhe, que para fazer a leitura do CSV ele precisa ser um arquivo.

Isso é o que a biblioteca pandas precisa, então temos que utilizar a biblioteca StringIO para transformar o nosso resultado em um arquivo para que seja possível ler essas informações com o pandas.

Resultado das informações em CSV
Resultado das informações em CSV

Veja que fica muito mais fácil visualizar os dados (utilizando o display do pandas). Então fica mais fácil para trabalhar com os dados também, caso você não tenha conhecimentos em dicionário.

Agora imagine que você queira pegar as informações de 3 cotações, como você faria? Você vai ajustar o código que já tem para poder fazer isso.

Lembrando que aqui vamos utilizar a estrutura de repetição For para repetir o mesmo código para cada uma das ações que vamos buscar.

acoes = ['ITUB4', 'ABEV3', 'BBAS3']

compilada = pd.DataFrame()

for acao in acoes:
    url = f'https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol={acao}.SAO&apikey={chave_api}&datatype=csv'
    r = requests.get(url)
    tabela = pd.read_csv(StringIO(r.text))
    lista_tabelas = [compilada, tabela]
    compilada = pd.concat(lista_tabelas)
    
display(compilada)

OBS: Aqui você pode notar que vamos trazer uma informação global, ou seja, não vamos ter aquela série de dados de vários dias para cada uma das ações.

API de Preço de Ações com Python
Buscando informações de várias ações

Aqui já temos as informações de cada uma delas em uma tabela para facilitar a análise e visualização dos dados de uma forma mais fácil.

IMPORTANTE: É importante verificar quando estiver utilizando essa API qual é o limite de requisições que você pode fazer de forma gratuita, pois se você colocar várias é possível que já não consiga e tenha que colocar um tempo de espera entre as suas requisições.

Outro ponto muito interessante dessa API é que você pode buscar por ativos, como assim? Imagine que você não saiba qual é o símbolo do ativo que quer, pois nem todo mundo tem esse conhecimento.

Como é que você vai descobrir? Claro que uma forma seria ir ao Google ou Yahoo Finance para verificar, mas essa API te permite encontrar esses ativos.

API de Preço de Ações com Python
Encontrando ativos

Aqui você já tem o símbolo que vai utilizar, qual o nome, o tipo, a região… Então aqui já pode fazer suas buscas também para facilitar, mas nada impede que você faça suas buscas em outras fontes para garantir que consiga encontrar o que procura.

Para finalizar você pode trazer informações de resultado, mas no momento não vamos ter essas informações para todas as ações.

Então é possível que você busque uma ação do Brasil que não vá encontrar essas informações.

API de Preço de Ações com Python
Código para buscar informações econômicas

Aqui não temos o resultado em formato CSV, então teremos que trabalhar com o formato JSON mesmo.

Nesse código nós temos a utilização da biblioteca pprint na qual auxilia na organização dos dicionários facilitando um pouco a visualização.

Outra opção seria transformar esse dicionário em um dataframe para que consiga visualizar em forma de tabela como fizemos anteriormente.

Conclusão – API de Preço de Ações com Python

Nessa aula eu te mostrei como utilizar a API Alpha Vantage para poder buscar cotações de ações para facilitar e automatizar o seu trabalho.

Dessa forma você tem informações mais precisas e não tem o risco de anotar alguma informação errada nada hora de passar pra sua base de dados.

Hashtag Treinamentos

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


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero na linguagem de programação que mais cresce no mundo? Inscreva-se gratuitamente no Intensivão de Python!