Na aula de hoje eu vou te ensinar a obter o retorno de uma carteira de investimentos com Python de forma automática para te auxiliar!
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:
Você sabia que é possível ter o retorno de uma carteira de investimentos utilizando o Python? Hoje eu quero te mostrar como você pode fazer isso de forma automática.
Isso quer dizer que vamos fazer uma análise de dados no Python para ter cotações atualizadas.
Essa parte de finanças com Python acaba envolvendo a análise de dados e quando você ouve falar em análise de dados já vai pensar na biblioteca pandas!
Como nessa aula nós vamos atualizar cotações com Python e fazer essas análises é importante que você já tenha um breve conhecimento em pandas que vai te ajudar bastante!
Quando falamos de análise de dados no Python geralmente nós utilizamos o Jupyter, pois ele já vem com algumas bibliotecas instaladas que já vão te auxiliar, então não precisa instalar antes de prosseguir.
Aqui no blog nós já temos aulas de buscar cotações utilizando o Yahoo Finance, mas hoje nós vamos utilizar a API Alpha Vantage.
Essa API te dá informações de vários ativos, criptomoedas, indicadores econômicos…
Isso quer dizer que temos muitas informações que podemos obter com essa API, então ela acaba sendo mais completa.
Para instalar essa biblioteca basta escrever !pip install alpha_vantage e rodar o código que o Jupyter vai entender que está instalando uma biblioteca, ou se preferir, pode ir até o prompt do Jupyter e escrever pip install alpha_vantage.
Caso você queira ler mais sobre essa biblioteca ou sobre a documentação dela basta clicar aqui para ir ao site dessa API.
O primeiro passo que vamos fazer é importar a nossa carteira e visualizá-la no Python.
import pandas as pd
carteira = pd.read_excel("Carteira.xlsx")
display(carteira)
Para o próximo passo você vai precisar pegar uma chave gratuita da API para dar continuidade.
Para isso basta ir ao site e clicar na opção GET YOUR FREE API KEY TODAY ou clicar aqui.
Como eu já possuo uma e você vai utilizar a sua própria, a que eu vou utilizar está em um outro arquivo (secrets) para que não utilizem essa e sim a que receberem.
from alpha_vantage.timeseries import TimeSeries
from secrets import chave_api # substitua isso pela sua chave api real do alpha vantage
ts = TimeSeries(key=chave_api, output_format="pandas")
data_inicial = "2021-01-05"
tabelas_acoes = {}
for acao in carteira["Ativos"]:
data, meta_data = ts.get_daily_adjusted(f"{acao}.SAO", outputsize="full")
tabelas_acoes[acao] = data
carteira.loc[carteira["Ativos"]==acao, "Qtde"] = carteira.loc[carteira["Ativos"]==acao, "Início"].values / data.loc[data_inicial, "5. adjusted close"].values
display(carteira)
display(tabelas_acoes["ITUB4"])
Nesse código nós vamos primeiramente importar a biblioteca e a nossa chave da API, que no seu caso pode apenas atribuir o valor a variável.
Em seguida nós vamos fazer a interação com a API utilizando a chave que você recebeu e o formato que vamos querer os dados, que neste caso é no formato pandas.
Logo abaixo temos uma estrutura de repetição para que possamos pegar a quantidade de cada uma desses ativos que temos na carteira, então vamos passar por todos.
Depois vamos mostrar como está a carteira já com as quantidades atualizadas e como que está a nossa tabelas_acoes.
Então já temos nossas quantidades e as informações de cada um dos ativos em tabelas_acoes.
Como nós precisamos de um parâmetro para verificar nossos ativos, vamos utilizara ETF BOVA11.
OBS: O código que está comentado é para que você consiga verificar se existe esse símbolo na base de dados.
# ts.get_symbol_seach("BOVA11")
data, meta_data = ts.get_daily_adjusted("BOVA11.SAO", outputsize="full")
ibov = data
display(ibov)
Então aqui já temos o nosso comparador e já podemos visualizar com o display todas as informações.
Agora nós vamos colocar em um gráfico as informações da coluna adjusted close que é o valor de fechamento para visualizar de forma mais fácil o desempenho.
data_final = "2021-10-26"
ibov = ibov.loc[dava_final : data_inicial, "5. adjusted close"]
ibov.plot()
OBS: Nessa parte é importante observar que nossas datas estão em ordem decrescente, por esse motivo tivemos que trocar a ordem da data_inicial com a data_final para que o gráfico apareça de forma correta.
O próximo passo é mostrar todos os valores dos nossos ativos em todos esses períodos dentro de um dataframe (que seria uma tabela dentro do Python).
tabela_cotacoes = pd.DataFrame()
for acao in tabelas_acoes
tabela_cotacoes[acao] = tabelas_acoes[acao].loc[data_final : data_inicial, "5. adjusted close"]
display(tabela_cotacoes)
Agora nós vamos precisar multiplicar essas cotações pelas quantidades para que possamos obter o total dos ativos.
for acao in tabela_cotacoes.columns:
tabela_cotacoes[acao] = tabela_cotacoes[acao] * carteira.loc[cateira["Ativos"]==acao, "Qtde"].values
display(tabela_cotacoes)
E por fim nós vamos fazer a somatória dessas informações e criar uma coluna de total.
tabela_cotacoes["Total"] = tabela_cotacoes.sum(axis=1)
display(tabela_cotacoes)
Pronto agora nós temos nossa análise completa da nossa carteira de ativos e podemos fazer uma análise dos ativos com o índice IBOV para verificar o comportamento dos nossos ativos.
carteira_ajustado = tabela_cotacoes["Total"] / tabela_cotacoes["Total"].iloc[-1]
ibov_ajustado = ibov / ibov.iloc[-1]
import matplotlib.pyplot as plt
carteira_ajustado.plot(label="Carteira")
ibov_ajustado.plot(lavel="IBOV")
plt.legend()
plt.show()
retorno_carteira = carteira_ajustado[0] - 1
retorno_indice = ibov_ajustado[0] - 1
print(retorno_carteira, retorno_indice)
# display(carteira_ajustado)
Para finalizar nós fizemos o cálculo do retorno da carteira para saber quanto foi o rendimento.
Nesse caso basta pegar o primeiro valor que é o último índice, mas como ele é o percentual do que temos no final vamos subtrair 1 para ter quanto foi o crescimento ou queda desses ativos.
Nessa aula eu te mostrei como você pode calcular o retorno de uma carteira de investimentos com Python de forma automática.
Isso foi feito utilizando a API alpha vantage que você tem uma chave gratuita para atualizar até 5 itens por minuto
Caso seu projeto precise de mais atualizações você pode pagar o premium para poder atender suas necessidades!
Agora você já pode calcular o retorno da sua carteira de forma automática e sabe que pode usar o Python para investimentos!
Para acessar outras publicações de Python, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.