Rebalanceo automatizado de carteras de ETF: cómo creamos un bot para Tinkoff Invest
Rebalanceo automatizado de cartera: el bot monitoriza los pesos objetivo y opera por ti.
Supongamos que tienes una cartera de cuatro ETF: TMOS, TBRU, TRUR y efectivo en rublos. 25% cada uno. El mercado se mueve: TMOS crece hasta el 32%, TBRU cae al 18%. La teoría clásica dice: vende lo que sube, compra lo que baja. Rebalanceo.
El problema es que hacerlo manualmente es tedioso. Especialmente con varias cuentas, estrategias con margen y rebalanceos cada hora. Construimos un bot que lo hace automáticamente.
TIEBB (Tinkoff Invest ETF Balancer Bot) es un bot de código abierto en TypeScript que se conecta a la API de Tinkoff Invest y mantiene automáticamente la asignación objetivo de la cartera. Cuatro modos de balanceo, trading con margen, multicuenta, modo dry-run para pruebas.
TL;DR
- Bot de código abierto (Apache 2.0) para el rebalanceo automatizado de carteras de ETF
- 4 modos de balanceo: manual, capitalización de mercado, AUM, descorrelación
- Trading con margen de hasta 4x con gestión de riesgo
- Multicuenta: cuentas ilimitadas con ajustes individuales
- TypeScript + Bun — rápido, tipado, sin complicaciones
- Modo dry-run — calcula las órdenes sin ejecutarlas
Por qué importa el rebalanceo

La idea es simple: defines pesos objetivo para los activos de tu cartera (por ejemplo, 25% TMOS, 25% TBRU, 25% TRUR, 25% RUB). Con el tiempo, el mercado se mueve y los pesos reales se alejan de los objetivos. Rebalancear significa volver a los pesos objetivo vendiendo los ganadores y comprando los perdedores.
Por qué importa:
- Control de riesgo — si un activo crece hasta el 60% de tu cartera, estás sobreexpuesto
- Toma de beneficios sistemática — vendes automáticamente lo que ha subido
- Compra en caídas — compras automáticamente lo que ha bajado
- Disciplina — sin emociones, solo el algoritmo
Cómo funciona el bot
Bucle 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
Cuatro modos de balanceo

1. Manual — pesos fijos definidos en la configuración (por ejemplo, 25/25/25/25)
2. Capitalización de mercado — pesos proporcionales a la capitalización de mercado de cada fondo
3. AUM — pesos proporcionales a los activos bajo gestión (Assets Under Management)
4. Descorrelación — el modo más interesante:
decorrelationPct = (marketCap - AUM) / AUM * 100
metric = max_decorrelationPct - individual_decorrelationPct
weight = metric / sum(metrics) * 100
Encuentra instrumentos donde la capitalización de mercado difiere del AUM y equilibra entre estas métricas.
Generación inteligente de órdenes
El bot primero vende y después compra. Esto libera capital para las compras, sin necesidad de mantener una reserva de efectivo. Todos los instrumentos se negocian en lotes con el redondeo adecuado.
Funciones avanzadas
- Trading con margen de hasta 4x con desapalancamiento automático antes del cierre del mercado
- Multicuenta — cuentas ilimitadas, cada una con su propia estrategia
- Umbral mínimo de beneficio — no vender si el beneficio está por debajo del umbral
- Modo dry-run — calcula todo, no ejecuta nada
- Ajuste basado en diferencias — los pesos se adaptan según los cambios desde el último rebalanceo
Inicio 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
Pruébalo
- Código fuente: github.com/suenot/tinkoff-invest-etf-balancer-bot
- Licencia: Apache 2.0
Enlaces:
- GitHub: github.com/suenot/tinkoff-invest-etf-balancer-bot
- API de Tinkoff Invest: invest-api.tinkoff.ru
Cita
@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.