Rééquilibrage automatisé de portefeuille d'ETF : comment nous avons créé un bot pour Tinkoff Invest
Rééquilibrage automatisé du portefeuille : le bot surveille les pondérations cibles et négocie à votre place.
Imaginez que vous avez un portefeuille de quatre ETF : TMOS, TBRU, TRUR et des liquidités en roubles. 25 % chacun. Le marché bouge — TMOS grimpe à 32 %, TBRU descend à 18 %. La théorie classique dit : vendez ce qui monte, achetez ce qui baisse. Le rééquilibrage.
Le problème, c'est que le faire manuellement est pénible. Surtout avec plusieurs comptes, des stratégies sur marge et un rééquilibrage horaire. Nous avons construit un bot qui le fait automatiquement.
TIEBB (Tinkoff Invest ETF Balancer Bot) est un bot open-source en TypeScript qui se connecte à l'API Tinkoff Invest et maintient automatiquement l'allocation cible du portefeuille. Quatre modes de rééquilibrage, trading sur marge, multi-comptes, mode dry-run pour les tests.
TL;DR
- Bot open-source (Apache 2.0) pour le rééquilibrage automatisé de portefeuilles d'ETF
- 4 modes de rééquilibrage : manuel, capitalisation boursière, AUM, décorrélation
- Trading sur marge jusqu'à 4x avec gestion du risque
- Multi-comptes : un nombre illimité de comptes avec des réglages individuels
- TypeScript + Bun — rapide, typé, sans douleur
- Mode dry-run — calcule les ordres sans les exécuter
Pourquoi le rééquilibrage est important

L'idée est simple : vous définissez des pondérations cibles pour les actifs de votre portefeuille (par exemple, 25 % TMOS, 25 % TBRU, 25 % TRUR, 25 % RUB). Avec le temps, le marché évolue et les pondérations réelles s'écartent des cibles. Rééquilibrer signifie revenir aux pondérations cibles en vendant les gagnants et en achetant les perdants.
Pourquoi c'est important :
- Contrôle du risque — si un actif atteint 60 % de votre portefeuille, vous êtes surexposé
- Prise de bénéfices systématique — vous vendez automatiquement ce qui a progressé
- Achat dans les creux — vous achetez automatiquement ce qui a baissé
- Discipline — pas d'émotions, seulement l'algorithme
Comment fonctionne le bot
Boucle principale
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
Quatre modes de rééquilibrage

1. Manuel — pondérations fixes issues de la configuration (par exemple, 25/25/25/25)
2. Capitalisation boursière — pondérations proportionnelles à la capitalisation boursière de chaque fonds
3. AUM — pondérations proportionnelles aux actifs sous gestion (Assets Under Management)
4. Décorrélation — le plus intéressant :
decorrelationPct = (marketCap - AUM) / AUM * 100
metric = max_decorrelationPct - individual_decorrelationPct
weight = metric / sum(metrics) * 100
Repère les instruments où la capitalisation boursière diffère de l'AUM et effectue un équilibrage entre ces métriques.
Génération intelligente des ordres
Le bot vend d'abord, puis achète. Cela libère du capital pour les achats — inutile de conserver une réserve de liquidités. Tous les instruments sont négociés par lots avec un arrondi approprié.
Fonctionnalités avancées
- Trading sur marge jusqu'à 4x avec réduction automatique du levier avant la clôture du marché
- Multi-comptes — un nombre illimité de comptes, chacun avec sa propre stratégie
- Seuil de profit minimum — ne pas vendre si le profit est inférieur au seuil
- Mode dry-run — tout calculer, ne rien exécuter
- Ajustement basé sur les écarts — les pondérations s'adaptent en fonction des variations depuis le dernier rééquilibrage
Démarrage rapide
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
Essayez-le
- Code source : github.com/suenot/tinkoff-invest-etf-balancer-bot
- Licence : Apache 2.0
Liens :
- GitHub : github.com/suenot/tinkoff-invest-etf-balancer-bot
- API Tinkoff Invest : invest-api.tinkoff.ru
Citation
@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.