Blog

Postado em em 25 de novembro de 2021

Retorno de uma Carteira de Investimentos com Python

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:

Retorno de uma Carteira de Investimentos com Python

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.

Python para Investimentos

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)
Investimentos com Python
Visualizando a carteira de ativos

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.

Quantidade dos ativos
Quantidade dos ativos

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)
Visualizando as informações da BOVA11
Visualizando as informações da BOVA11

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()
Análise visual do BOVA11
Análise visual do BOVA11

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)
Valores dos ativos
Valores dos ativos

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)
Retorno de uma Carteira de Investimentos
Multiplicando a quantidade pelos valores dos ativos

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)
Retorno de uma Carteira de Investimentos
Tabela com o total dos ativos

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)
Retorno de uma Carteira de Investimentos
Comparação gráfica final + retorno da carteira

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.

Conclusão – Python para Investimentos

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!

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 no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador