Rebalanceamento automatizado de carteira de ETFs: como construímos um bot para a Tinkoff Invest
Rebalanceamento automatizado de carteira: o bot monitora os pesos-alvo e negocia por você.
Imagine que você tem uma carteira com quatro ETFs: TMOS, TBRU, TRUR, e dinheiro em rublos. 25% cada. O mercado se move — TMOS sobe para 32%, TBRU cai para 18%. A teoria clássica diz: venda o que subiu, compre o que caiu. Rebalanceamento.
O problema é que fazer isso manualmente é penoso. Especialmente com várias contas, estratégias com margem e rebalanceamento a cada hora. Construímos um bot que faz isso automaticamente.
TIEBB (Tinkoff Invest ETF Balancer Bot) é um bot open-source em TypeScript que se conecta à API da Tinkoff Invest e mantém automaticamente a alocação-alvo da carteira. Quatro modos de balanceamento, negociação com margem, múltiplas contas, modo dry-run para testes.
TL;DR
- Bot open-source (Apache 2.0) para rebalanceamento automatizado de carteiras de ETFs
- 4 modos de balanceamento: manual, capitalização de mercado, AUM, descorrelação
- Negociação com margem até 4x com gestão de risco
- Múltiplas contas: número ilimitado de contas com configurações individuais
- TypeScript + Bun — rápido, tipado, sem dor de cabeça
- Modo dry-run — calcula as ordens sem executá-las
Por que o rebalanceamento importa

A ideia é simples: você define pesos-alvo para os ativos da sua carteira (por exemplo, 25% TMOS, 25% TBRU, 25% TRUR, 25% RUB). Com o tempo, o mercado se move e os pesos reais se distanciam das metas. Rebalancear significa retornar aos pesos-alvo vendendo os ativos que subiram e comprando os que caíram.
Por que isso importa:
- Controle de risco — se um ativo cresce até representar 60% da sua carteira, você fica superexposto
- Realização sistemática de lucros — você vende automaticamente o que valorizou
- Compra nas quedas — você compra automaticamente o que desvalorizou
- Disciplina — sem emoções, apenas o algoritmo
Como o bot funciona
Loop principal
1. Check if MOEX is open
2. Fetch current positions and prices
3. Calculate desired allocation (4 modes)
4. Generate orders: sells first, then buys
5. Execute with market orders
6. Sleep for BALANCE_INTERVAL, repeat
Quatro modos de balanceamento

1. Manual — pesos fixos definidos na configuração (por exemplo, 25/25/25/25)
2. Capitalização de mercado — pesos proporcionais à capitalização de mercado de cada fundo
3. AUM — pesos proporcionais aos Ativos sob Gestão (Assets Under Management)
4. Descorrelação — o mais interessante:
decorrelationPct = (marketCap - AUM) / AUM * 100
metric = max_decorrelationPct - individual_decorrelationPct
weight = metric / sum(metrics) * 100
Identifica instrumentos em que a capitalização de mercado difere do AUM e balanceia entre essas métricas.
Geração inteligente de ordens
O bot vende primeiro e compra depois. Isso libera capital para as compras — não é preciso manter uma reserva de caixa. Todos os instrumentos são negociados em lotes com o arredondamento apropriado.
Recursos avançados
- Negociação com margem até 4x com desalavancagem automática antes do fechamento do mercado
- Múltiplas contas — número ilimitado de contas, cada uma com sua própria estratégia
- Limite mínimo de lucro — não vende se o lucro estiver abaixo do limite definido
- Modo dry-run — calcula tudo, não executa nada
- Ajuste baseado em diferenças — os pesos se adaptam com base nas mudanças desde o último rebalanceamento
Início rápido
git clone https://github.com/suenot/tinkoff-invest-etf-balancer-bot.git
cd tinkoff-invest-etf-balancer-bot
bun install
cp .env-example .env && cp CONFIG.example.json CONFIG.json
bun run start
Experimente
- Código-fonte: github.com/suenot/tinkoff-invest-etf-balancer-bot
- Licença: Apache 2.0
Links:
- GitHub: github.com/suenot/tinkoff-invest-etf-balancer-bot
- API da Tinkoff Invest: invest-api.tinkoff.ru
Citação
@software{soloviov2026etfbalancer,
author = {Soloviov, Eugen},
title = {Automated ETF Portfolio Rebalancing Bot for Tinkoff Invest},
year = {2026},
url = {https://marketmaker.cc/en/blog/post/etf-balancer-bot-tinkoff},
description = {Open-source TypeScript bot for automated ETF portfolio rebalancing on Tinkoff Invest.}
}
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.