🎉 SEMANA DO CONSUMIDOR

Últimos dias para comprar os cursos com 50% de desconto

Ver detalhes

Postado em em 7 de janeiro de 2025

Automatize sua carteira de investimentos com Python! Faça o Python calcular a rentabilidade de sua carteira de investimentos pra você!

Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Automação – Carteira de Investimentos com Python

Gerenciar uma carteira de investimentos pode dar trabalho, especialmente quando você precisa acompanhar a rentabilidade de cada ativo separadamente e compará-la a índices do mercado.

Sorte que é possível automatizar esse processo e obter uma análise clara com apenas algumas linhas de código Python!

Neste post, vamos mostrar como criar um script simples e eficiente que vai te ajudar a monitorar seus investimentos. Preparado? Vamos lá!

Automatize suas análises financeiras com Python

Neste post vou te ensinar a calcular a rentabilidade de sua carteira de investimentos, que pode conter múltiplas ações, no intervalo de tempo que você quiser, tudo de uma só vez.

Isso é possível porque o Python oferece ótimas ferramentas para automatizar a consulta de informações, os cálculos e as análises necessárias para isso.

Resumindo, o script que vamos construir consegue:

  1. Ler as informações da sua carteira em um arquivo .txt.
  2. Obter automaticamente as cotações dos ativos usando a biblioteca do Yahoo Finance.
  3. Receber um período específico para consulta.
  4. Calcular a rentabilidade da carteira e verifica se ela superou o índice Bovespa.

Te ensinaremos como isso funciona em um passo a passo aqui embaixo, garantindo que mesmo quem é iniciante consiga acompanhar.

O que você vai precisar?

Ferramentas e bibliotecas

  • Python: Certifique-se de que ele está instalado em seu computador.
  • Bibliotecas: Vamos usar pandas, yfinance e pandas-datareader. Instale-as executando os comandos abaixo no terminal:
    • pip install pandas
    • pip install yfinance
    • pip install pandas-datareader
  • Editor de código: Usaremos o VSCode e o nosso código estará em um arquivo .ipynb, em vez do usual .py para arquivos Python. Dessa forma, podemos utilizar a interface do Jupyter Notebook diretamente no VSCode, o que vai facilitar a execução e a visualização das análises.

Arquivo inicial

Crie um arquivo chamado carteira.txt contendo os tickers (códigos) dos seus ativos e o valor investido em cada um.

Arquivo inicial com a carteira

Passo a passo: construindo nosso código

1. Configure o ambiente de trabalho

No seu editor de código, comece importando as bibliotecas necessárias e configurando o yfinance:

import pandas as pd
import pandas_datareader.data as pdr
import yfinance as yf

yf.pdr_override()

O que cada uma delas faz?

  • pandas: Serve para manipulação e análise de dados estruturados, como tabelas.
  • yfinance: Permite acessar dados do mercado financeiro, como preços de ações e históricos de mercado, diretamente da plataforma Yahoo Finance.
  • pandas-datareader: Facilita o acesso a dados financeiros e econômicos de fontes online, como o Yahoo Finance. É integrado ao Pandas.

Aqui, utilizamos apelidos (aliases) para as bibliotecas para facilitar seu acesso ao longo do código. Por exemplo, quando formos chamar a biblioteca pandas novamente, podemos usar apenas pd.

Já o comando yf.pdr_override(), serve para “atualizar” o datareader,  fazendo com que ele possar utilizar os dados do Yahoo Finance.

2. Lendo a carteira de investimentos

Precisamos fazer com que o Python entenda o que tem na nossa carteira. Use o seguinte código para transformar os dados do arquivo carteira.txt em um dicionário Python:

with open("carteira.txt", "r") as arquivo:
    texto = arquivo.readlines()

carteira = {}

for linha in texto:
    ticker, valor = linha.split("-")
    ticker = f"{ticker.strip()}.SA"
    valor = float(valor.strip())
    print(ticker, valor)
    carteira[ticker] = valor
print(carteira)

A linha with open(“carteira.txt”, “r”) as arquivo serve para ler o arquivo em .txt, que em seguida é armazenado na variável texto e dividido por linhas com o método .readlines().

Em seguida, criamos uma variável para a carteira, que a princípio vai estar vazia. Ela vai ser preenchida com o código que vem em seguida, iniciado em for. Nele, as linhas da variável texto são organizadas em pares tickervalor (como ITUB4 – 1000).

Uma observação: é necessário adicionar os caracteres “.SA” ao final de cada ticker para consultas das cotações no Brasil (é uma sinalização que especifica ações brasileiras no Yahoo Finance, são as primeiras letras de São Paulo). Para fazer esse pequeno ajuste, utilizaremos uma f-string no conteúdo da variável ticker e adicionaremos os caracteres.

Na próxima linha, os valores são transformados em numéricos com partes decimais através da função float().

Por último, para de fato preencher a carteira com essas informações adquiridas, utilizamos carteira[ticker] = valor. Assim, devemos ter a saída:

{‘ITUB4.SA’: 1000.0, ‘BBAS3.SA’: 2000.0, ‘VALE3.SA’: 1000.0, ‘EGIE3.SA’: 500.0, ‘SLCE3.SA’: 300.0}

3. Obtendo as cotações

O próximo passo é buscar as cotações para todos os ativos na carteira e fazer uma tabela de cotações.

acao = "ITUB4.SA"
ativos = list(carteira.keys())
ativos.append("^BVSP")
data_inicial = "2024-01-01"
data_final = "2024-12-18"
tabela_cotacoes = pdr.get_data_yahoo(ativos, data_inicial, data_final)
tabela_cotacoes = tabela_cotacoes["Adj Close"]
display(tabela_cotacoes)

A primeira coisa que o código acima faz é criar a lista com todos os ativos da carteira, que seria apenas a parte das chaves (keys) do dicionário. Nessa parte da criação da lista, ainda podemos adicionar o índice Bovespa, para que seja possível comparar nossas ações com ele.

Para construir a tabela, usamos o comando pdr.get_data_yahoo, passando como parâmetros a lista de ações e as datas inicial e final.

Das várias colunas que a tabela apresenta, a que mais importa pra nossa análise é Adj Close, que representa os valores ajustados considerando dividendos, desdobramentos etc., e que, portanto, mostra a rentabilidade real dos ativos.

Obtendo as cotações dos ativos

4. Calculando a rentabilidade da carteira

Para enfim calcularmos a rentabilidade da carteira como um todo, precisamos primeiro obter a rentabilidade de cada ativo, já que cada valor varia de forma independente.

Esses valores individuais podem ser obtidos ao dividir o valor final de cada ativo pelo seu valor inicial. O ativo do Banco do Brasil (BBAS3.SA), por exemplo, iniciou o período em 25.26 e terminou em 24.51, sendo a sua rentabilidade 0.97.

Com o código a seguir, é possível criar um dicionário com todas as rentabilidades seguidas por seus respectivos índices.

rentabilidades = {}
for ativo in tabela_cotacoes.columns:
    rentabilidade = tabela_cotacoes[ativo][-1] / tabela_cotacoes[ativo][0]
    rentabilidades[ativo] = rentabilidade
print(rentabilidades)

Feito isso, o dicionário rentabilidadesdeve ficar assim:

{‘BBAS3.SA’: 0.9666879537987186, ‘EGIE3.SA’: 0.8864000769161816, ‘ITUB4.SA’: 1.0199652434520559, ‘SLCE3.SA’: 1.0938795176742793, ‘VALE3.SA’: 0.7956346843041397, ‘^BVSP’: 0.9397198128066195}

Com esses dados em mãos, podemos calcular o valor final de cada ativo multiplicando seus valores iniciais pelos de rentabilidade, que aparecem no dicionário acima.

Por fim, somamos todos os valores iniciais da carteira e multiplicamos a soma dos valores finais pelo resultado.

valor_inicial = sum(carteira.values())
print(valor_inicial)
valor_final = sum(carteira[ativo] * rentabilidades[ativo] for ativo in carteira)
print(valor_final)
rentabilidade_carteira = valor_final / valor_inicial - 1
print(f"{rentabilidade_carteira:.1%}")
rentabilidade_indice = rentabilidades["^BVSP"] - 1
print(f"{rentabilidade_indice:.1%}")
Calculando a rentabilidade da carteira

No exemplo que usamos aqui, a rentabilidade da carteira foi negativa, de -5,8%. Utilizei os comandos print para visualizar os números e a f-string com .1% para a apresentação das porcentagens.

Conclusão – Automação Carteira de Investimentos com Python

Com este projeto, você aprendeu como usar Python para automatizar a análise de rentabilidade da sua carteira de investimentos. De forma simples, coletamos dados financeiros, calculamos resultados e os comparamos com o índice Bovespa.

Pronto para aplicar o que aprendeu? Experimente criar o seu próprio script e veja como ele pode facilitar o acompanhamento dos seus investimentos!

Hashtag Treinamentos

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


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

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos

w background3jpg 1

Redator de conteúdo na Hashtag Treinamentos. Produzo textos didáticos sobre tecnologia, buscando informar e engajar o público de forma acessível e descomplicada.