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.
O que você vai ver hoje?
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:
- Ler as informações da sua carteira em um arquivo .txt.
- Obter automaticamente as cotações dos ativos usando a biblioteca do Yahoo Finance.
- Receber um período específico para consulta.
- 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.
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 ticker – valor (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.
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%}")
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!
Posts mais recentes de Python
- Biblioteca NumPy: o que é, vantagens e como usarAprenda como usar a biblioteca NumPy no Python para otimizar o processamento de dados e melhorar sua eficiência em projetos de ciência de dados.
- Set em Python: o que é, quando e como usar no seu projetoAprenda tudo sobre sets em Python: o que são, como usar e quando aplicar. Descubra operações com conjuntos e vantagens sobre listas!
- ETL com Python: guia completo para criar pipelines de dadosAprenda como construir pipelines ETL com Python do zero! Descubra as melhores bibliotecas, resolva desafios comuns e torne-se um especialista!
Posts mais recentes da Hashtag Treinamentos
- 5 Boas Práticas de SQL para Iniciantes: Otimize Suas Consultas e Organize Seu CódigoSe você está começando com MySQL ou busca melhorar suas habilidades em SQL, este post traz cinco boas práticas de escrita de SQL para iniciantes.
- Função SE Excel: Exemplos e Dicas para Uso [Guia]A função SE Excel é muito útil para definir condições e criar uma planilha mais completa e funcional. Confira nesta aula!
- Exercícios de Listening em Inglês – Como Melhorar sua CompreensãoFaça estes exercícios de listening em inglês e melhore sua compreensão! Descubra técnicas e estratégias para praticar e evoluir no aprendizado do idioma!
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.