Automação Carteira de Investimentos com Python
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!
O que você aprende neste vídeo
Resposta rápida: A aula monta em Python uma automação que lê os ativos de uma carteira em um arquivo TXT, busca as cotações do Yahoo Finance com pandas_datareader e yfinance e calcula a rentabilidade da carteira, comparando com o índice Bovespa. O código roda de uma vez só, e a data final pode ser trocada.
Neste vídeo (31 min):
- 1:01 - O arquivo TXT com o código do ativo e o valor investido
- 1:30 - Um arquivo
.ipynbpara rodar o código em células - 2:44 - Importar as bibliotecas e instalá-las com
pip install - 6:17 - Ler o TXT e montar o dicionário da carteira
- 8:38 - Separar o código do valor de cada linha
- 11:45 - Ajustar os códigos dos ativos para a busca das cotações
- 13:44 - Tabela de cotações de um ativo entre duas datas
- 15:37 - A coluna de fechamento ajustado
- 18:53 - Lista de ativos da carteira com o índice Bovespa
- 24:08 - Valor inicial e valor final da carteira
- 27:52 - No exemplo da aula, a carteira cai 5,7% e o índice Bovespa cai 6,1%
- 28:46 - Rodar tudo de novo com outra data final
Trechos do vídeo:
- Com
with open, o arquivo é aberto, lido e fechado automaticamente dentro da mesma estrutura. - O
readdevolve o texto do arquivo inteiro como um só; oreadlinessepara cada linha como um item de uma lista. - Na coluna
Adj Close, o Yahoo Finance incorpora pagamento de dividendo e desdobramento, e não só a oscilação do preço. - No Yahoo Finance, as ações da bolsa brasileira levam
.SAno fim do código, e um índice como o Bovespa leva o circunflexo no início, como^BVSP. - A rentabilidade sai do valor final dividido pelo inicial, que dá o multiplicador (0,97 é uma perda de 3%); para ter a variação percentual, subtraia 1.
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
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- O que é tabela dinâmica?O que é tabela dinâmica no Excel, para que serve e o passo a passo para resumir grandes bases de dados sem fórmulas.
- Planilha de Estudos no Excel: Cronograma e Revisões [Grátis]Baixe grátis a planilha de estudos no Excel: distribua as horas por matéria, agende revisões de 1, 7 e 30 dias e acompanhe a evolução até a prova.
- Dashboard no Power BI com Claude: Passo a Passo CompletoMonte um dashboard no Power BI com Claude: modelo, medidas DAX e visuais em HTML com efeito de vidro que respondem aos filtros. Veja o passo a passo.







![Planilha de Estudos no Excel Cronograma e Revisões [Grátis]](https://www.hashtagtreinamentos.com/wp-content/uploads/2021/11/Planilha-de-Estudos-no-Excel-Cronograma-e-Revisoes-Gratis-300x167.png)
