Geautomatiseerde ETF-portefeuille rebalancing: hoe we een bot voor Tinkoff Invest bouwden
Geautomatiseerde portefeuille-rebalancing: de bot bewaakt de doelgewichten en handelt voor je.
Stel je hebt een portefeuille van vier ETF's: TMOS, TBRU, TRUR, en cash in roebels. Elk 25%. De markt beweegt — TMOS groeit naar 32%, TBRU zakt naar 18%. De klassieke theorie zegt: verkoop wat gestegen is, koop wat gedaald is. Rebalancing.
Het probleem is dat het handmatig doen pijnlijk is. Zeker met meerdere accounts, margin-strategieën en rebalancing per uur. We bouwden een bot die dit automatisch doet.
TIEBB (Tinkoff Invest ETF Balancer Bot) is een open-source TypeScript-bot die verbinding maakt met de Tinkoff Invest API en automatisch de doelallocatie van de portefeuille handhaaft. Vier balanceringsmodi, margin trading, meerdere accounts, dry-run voor testen.
TL;DR
- Open-source (Apache 2.0) bot voor geautomatiseerde ETF-portefeuille rebalancing
- 4 balanceringsmodi: handmatig, marktkapitalisatie, AUM, decorrelatie
- Margin trading tot 4x met risicobeheer
- Meerdere accounts: onbeperkt aantal accounts met individuele instellingen
- TypeScript + Bun — snel, getypeerd, moeiteloos
- Dry-run-modus — berekent orders zonder ze uit te voeren
Waarom rebalancing belangrijk is

Het idee is simpel: je definieert doelgewichten voor de activa in je portefeuille (bijv. 25% TMOS, 25% TBRU, 25% TRUR, 25% RUB). Na verloop van tijd beweegt de markt en wijken de werkelijke gewichten af van de doelen. Rebalancing betekent terugkeren naar de doelgewichten door winnaars te verkopen en verliezers te kopen.
Waarom dit belangrijk is:
- Risicobeheersing — als één asset groeit naar 60% van je portefeuille, ben je overbelicht
- Systematische winstneming — je verkoopt automatisch wat gegroeid is
- Dips kopen — je koopt automatisch wat gedaald is
- Discipline — geen emoties, alleen het algoritme
Hoe de bot werkt
Hoofdlus
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
Vier balanceringsmodi

1. Handmatig — vaste gewichten uit de config (bijv. 25/25/25/25)
2. Marktkapitalisatie — gewichten proportioneel aan de marktkapitalisatie van elk fonds
3. AUM — gewichten proportioneel aan Assets Under Management
4. Decorrelatie — de interessantste:
decorrelationPct = (marketCap - AUM) / AUM * 100
metric = max_decorrelationPct - individual_decorrelationPct
weight = metric / sum(metrics) * 100
Vindt instrumenten waarbij de marktkapitalisatie afwijkt van de AUM en balanceert tussen deze metrics.
Slimme ordergeneratie
De bot verkoopt eerst en koopt daarna. Dit maakt kapitaal vrij voor aankopen — er hoeft geen kasreserve aangehouden te worden. Alle instrumenten worden verhandeld in lots met correcte afronding.
Geavanceerde functies
- Margin trading tot 4x met automatische afbouw van hefboom voor sluiting van de markt
- Meerdere accounts — onbeperkt aantal accounts, elk met een eigen strategie
- Minimale winstdrempel — verkoop niet als de winst onder de drempel ligt
- Dry-run-modus — bereken alles, voer niets uit
- Diff-gebaseerde aanpassing — gewichten passen zich aan op basis van wijzigingen sinds de laatste rebalancing
Snel starten
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
Probeer het
- Broncode: github.com/suenot/tinkoff-invest-etf-balancer-bot
- Licentie: Apache 2.0
Links:
- GitHub: github.com/suenot/tinkoff-invest-etf-balancer-bot
- Tinkoff Invest API: invest-api.tinkoff.ru
Citatie
@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.}
}
Auteurs
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.