स्वचालित ETF पोर्टफोलियो रीबैलेंसिंग: हमने Tinkoff Invest के लिए बॉट कैसे बनाया
स्वचालित पोर्टफोलियो रीबैलेंसिंग: बॉट लक्ष्य भार (target weights) पर नज़र रखता है और आपके लिए ट्रेड करता है।
मान लीजिए आपके पास चार ETF का पोर्टफोलियो है: TMOS, TBRU, TRUR, और रूबल में नकद। हर एक 25%। बाज़ार हिलता है — TMOS बढ़कर 32% हो जाता है, TBRU गिरकर 18% रह जाता है। क्लासिक सिद्धांत कहता है: जो बढ़ा है उसे बेचो, जो गिरा है उसे खरीदो। यही है रीबैलेंसिंग।
समस्या यह है कि इसे मैन्युअली करना बेहद थकाऊ है। खासकर तब जब कई अकाउंट्स हों, मार्जिन स्ट्रैटेजी हो, और हर घंटे रीबैलेंसिंग करनी हो। हमने एक ऐसा बॉट बनाया जो यह काम अपने आप करता है।
TIEBB (Tinkoff Invest ETF Balancer Bot) एक ओपन-सोर्स TypeScript बॉट है जो Tinkoff Invest API से जुड़ता है और लक्ष्य पोर्टफोलियो आवंटन को स्वचालित रूप से बनाए रखता है। चार बैलेंसिंग मोड, मार्जिन ट्रेडिंग, मल्टी-अकाउंट, टेस्टिंग के लिए ड्राई-रन।
संक्षेप में (TL;DR)
- स्वचालित ETF पोर्टफोलियो रीबैलेंसिंग के लिए ओपन-सोर्स (Apache 2.0) बॉट
- 4 बैलेंसिंग मोड: मैनुअल, मार्केट कैप, AUM, डीकोरिलेशन
- रिस्क मैनेजमेंट के साथ 4x तक मार्जिन ट्रेडिंग
- मल्टी-अकाउंट: व्यक्तिगत सेटिंग्स के साथ असीमित अकाउंट्स
- TypeScript + Bun — तेज़, टाइप्ड, झंझट-मुक्त
- ड्राई-रन मोड — ऑर्डर एक्ज़ीक्यूट किए बिना उनकी गणना करता है
रीबैलेंसिंग क्यों मायने रखती है

विचार सरल है: आप अपने पोर्टफोलियो में एसेट्स के लिए लक्ष्य भार तय करते हैं (उदाहरण के लिए, 25% TMOS, 25% TBRU, 25% TRUR, 25% RUB)। समय के साथ बाज़ार हिलता है और वास्तविक भार लक्ष्य से भटक जाते हैं। रीबैलेंसिंग का मतलब है विजेता एसेट्स को बेचकर और हारे हुए एसेट्स को खरीदकर लक्ष्य भार पर वापस लौटना।
यह क्यों मायने रखता है:
- जोखिम नियंत्रण — अगर कोई एक एसेट बढ़कर आपके पोर्टफोलियो का 60% हो जाए, तो आप ओवरएक्सपोज़्ड हैं
- व्यवस्थित मुनाफावसूली — जो बढ़ा है उसे आप स्वचालित रूप से बेचते हैं
- गिरावट में खरीदारी — जो गिरा है उसे आप स्वचालित रूप से खरीदते हैं
- अनुशासन — कोई भावनाएं नहीं, सिर्फ एल्गोरिदम
बॉट कैसे काम करता है
मुख्य लूप
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
चार बैलेंसिंग मोड

1. मैनुअल — कॉन्फ़िग से तय निश्चित भार (उदाहरण के लिए, 25/25/25/25)
2. मार्केट कैप — हर फंड के मार्केट कैपिटलाइज़ेशन के अनुपात में भार
3. AUM — प्रबंधन के अधीन एसेट्स (Assets Under Management) के अनुपात में भार
4. डीकोरिलेशन — सबसे दिलचस्प मोड:
decorrelationPct = (marketCap - AUM) / AUM * 100
metric = max_decorrelationPct - individual_decorrelationPct
weight = metric / sum(metrics) * 100
यह उन इंस्ट्रूमेंट्स को ढूंढता है जहां मार्केट कैप, AUM से अलग है, और इन मेट्रिक्स के बीच संतुलन बनाता है।
स्मार्ट ऑर्डर जनरेशन
बॉट पहले बेचता है, फिर खरीदता है। इससे खरीदारी के लिए पूंजी मुक्त हो जाती है — नकद रिज़र्व रखने की ज़रूरत नहीं पड़ती। सभी इंस्ट्रूमेंट्स को उचित राउंडिंग के साथ लॉट्स में ट्रेड किया जाता है।
एडवांस्ड फीचर्स
- बाज़ार बंद होने से पहले ऑटो-डीलिवरेज के साथ 4x तक मार्जिन ट्रेडिंग
- मल्टी-अकाउंट — असीमित अकाउंट्स, हर एक की अपनी स्ट्रैटेजी
- न्यूनतम प्रॉफिट थ्रेशहोल्ड — अगर मुनाफा थ्रेशहोल्ड से कम हो तो न बेचें
- ड्राई-रन मोड — सब कुछ गणना करें, कुछ भी एक्ज़ीक्यूट न करें
- डिफ-आधारित समायोजन — पिछले रीबैलेंस के बाद हुए बदलावों के आधार पर भार अनुकूलित होते हैं
क्विक स्टार्ट
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
इसे आज़माएं
- सोर्स कोड: github.com/suenot/tinkoff-invest-etf-balancer-bot
- लाइसेंस: Apache 2.0
लिंक:
- GitHub: github.com/suenot/tinkoff-invest-etf-balancer-bot
- Tinkoff Invest API: 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.