Executando verificação de segurança...
2

Pitch: Como usei Python para automatizar o rebalanceamento de investimentos (e levei a ferramenta para a Web)

Salve, pessoal!

Sempre achei que o processo de rebalancear uma carteira de investimentos na mão ou usando planilhas genéricas era muito manual e propenso a erros. Como programador, a minha vontade natural foi resolver isso com código.

O grande desafio lógico de um rebalanceamento de carteira não é apenas calcular porcentagens ideais, mas sim lidar com a regra de ouro: você geralmente não vende ativos, apenas direciona o dinheiro novo para o que ficou para trás.

Para resolver isso, construí um algoritmo focado em encontrar a distância matemática entre o cenário atual e o alvo. A lógica principal nasceu em Python.

Abaixo, compartilho o coração do algoritmo:

def distribuir_com_limite(valores, porcentagens, total):

    soma_existente = sum(valores)
    soma_final = soma_existente + total
    

    limites_absolutos = [p * soma_final for p in porcentagens]
    
    limites_disponiveis = [max(0, limite - atual) for limite, atual in    zip(limites_absolutos, valores)]

    soma_disponivel = sum(limites_disponiveis)

    if total <= soma_disponivel:
        return [(disp / soma_disponivel) * total for disp in limites_disponiveis]
    else:
        return limites_disponiveis

O uso do max(0, limite - atual) combinado com o zip() foi a forma mais limpa que encontrei para criar a trava lógica. Se um ativo valorizou demais e ultrapassou a porcentagem ideal, a matemática daria um número negativo. O max(0, ...) força o algoritmo a entender que aquele ativo receberá "Zero" de aporte neste mês, sem quebrar o resto do cálculo.

Depois de validar o modelo matemático, decidi que isso não poderia ficar preso no meu terminal. Traduzi essa mesma lógica para JavaScript, usei a biblioteca Chart.js para criar um gráfico de pizza dinâmico e criei uma interface interativa.

Publiquei a ferramenta completa e gratuita no meu projeto pessoal, o Descomplicando Algoritmos.

Se alguém quiser testar a calculadora com seus próprios números ou dar um feedback sobre a UI e a estrutura do código, o link está aqui:
https://descomplicandoalgoritmos.com.br/calculadora-balanceamento-carteira

Adoraria saber o que a comunidade acha da abordagem que usei no código e como vocês costumam resolver esse tipo de cálculo lógico!

Carregando publicação patrocinada...