Tái Cân Bằng Danh Mục ETF Tự Động: Cách Chúng Tôi Xây Dựng Bot cho Tinkoff Invest
Tái cân bằng danh mục tự động: bot theo dõi tỷ trọng mục tiêu và giao dịch thay cho bạn.
Giả sử bạn có danh mục gồm bốn ETF: TMOS, TBRU, TRUR và tiền mặt bằng ruble. Mỗi loại 25%. Thị trường biến động — TMOS tăng lên 32%, TBRU giảm xuống 18%. Lý thuyết cổ điển nói: bán những gì tăng, mua những gì giảm. Đó là tái cân bằng.
Vấn đề là làm thủ công rất mất công. Đặc biệt khi có nhiều tài khoản, chiến lược ký quỹ và tái cân bằng hàng giờ. Chúng tôi đã xây dựng một bot thực hiện việc này tự động.
TIEBB (Tinkoff Invest ETF Balancer Bot) là một bot TypeScript mã nguồn mở kết nối với Tinkoff Invest API và tự động duy trì phân bổ danh mục theo mục tiêu. Bốn chế độ cân bằng, giao dịch ký quỹ, nhiều tài khoản, chế độ thử nghiệm khô (dry-run).
TL;DR
- Mã nguồn mở (Apache 2.0) bot tái cân bằng danh mục ETF tự động
- 4 chế độ cân bằng: thủ công, vốn hóa thị trường, AUM, giảm tương quan
- Giao dịch ký quỹ lên đến 4x với quản lý rủi ro
- Nhiều tài khoản: không giới hạn tài khoản với cài đặt riêng từng tài khoản
- TypeScript + Bun — nhanh, có kiểu dữ liệu, dễ dùng
- Chế độ dry-run — tính toán lệnh mà không thực thi
Tại Sao Tái Cân Bằng Quan Trọng

Ý tưởng rất đơn giản: bạn xác định tỷ trọng mục tiêu cho các tài sản trong danh mục (ví dụ: 25% TMOS, 25% TBRU, 25% TRUR, 25% RUB). Theo thời gian, thị trường biến động và tỷ trọng thực tế lệch khỏi mục tiêu. Tái cân bằng là quay trở lại tỷ trọng mục tiêu bằng cách bán những tài sản tăng và mua những tài sản giảm.
Tại sao điều này quan trọng:
- Kiểm soát rủi ro — nếu một tài sản tăng lên 60% danh mục, bạn đang chịu rủi ro quá mức
- Chốt lời có hệ thống — bạn tự động bán những gì đã tăng
- Mua vào khi giảm — bạn tự động mua những gì đã giảm
- Kỷ luật — không cảm xúc, chỉ là thuật toán
Bot Hoạt Động Như Thế Nào
Vòng Lặp Chính
1. Kiểm tra xem MOEX có mở cửa không
2. Lấy vị thế và giá hiện tại
3. Tính toán phân bổ mong muốn (4 chế độ)
4. Tạo lệnh: bán trước, sau đó mua
5. Thực thi với lệnh thị trường
6. Ngủ trong BALANCE_INTERVAL, lặp lại
Bốn Chế Độ Cân Bằng

1. Thủ công — tỷ trọng cố định từ cấu hình (ví dụ: 25/25/25/25)
2. Vốn hóa thị trường — tỷ trọng tỷ lệ với vốn hóa thị trường của từng quỹ
3. AUM — tỷ trọng tỷ lệ với Tài sản đang Quản lý (Assets Under Management)
4. Giảm tương quan — chế độ thú vị nhất:
decorrelationPct = (marketCap - AUM) / AUM * 100
metric = max_decorrelationPct - individual_decorrelationPct
weight = metric / sum(metrics) * 100
Tìm các công cụ có vốn hóa thị trường khác với AUM và cân bằng giữa các chỉ số này.
Tạo Lệnh Thông Minh
Bot bán trước, sau đó mua. Điều này giải phóng vốn cho việc mua — không cần dự trữ tiền mặt. Tất cả các công cụ được giao dịch theo lô với làm tròn phù hợp.
Tính Năng Nâng Cao
- Giao dịch ký quỹ lên đến 4x với tự động giảm đòn bẩy trước khi đóng cửa thị trường
- Nhiều tài khoản — không giới hạn tài khoản, mỗi tài khoản có chiến lược riêng
- Ngưỡng lợi nhuận tối thiểu — không bán nếu lợi nhuận dưới ngưỡng
- Chế độ dry-run — tính toán tất cả, không thực thi gì
- Điều chỉnh dựa trên chênh lệch — tỷ trọng thích nghi dựa trên các thay đổi kể từ lần tái cân bằng cuối
Bắt Đầu Nhanh
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
Thử Ngay
- Mã nguồn: github.com/suenot/tinkoff-invest-etf-balancer-bot
- Giấy phép: Apache 2.0
Liên kết:
- GitHub: github.com/suenot/tinkoff-invest-etf-balancer-bot
- Tinkoff Invest API: invest-api.tinkoff.ru
Trích Dẫn
@software{soloviov2026etfbalancer,
author = {Soloviov, Eugen},
title = {Automated ETF Portfolio Rebalancing Bot for Tinkoff Invest},
year = {2026},
url = {https://marketmaker.cc/vi/blog/post/etf-balancer-bot-tinkoff},
description = {Bot TypeScript mã nguồn mở để tái cân bằng danh mục ETF tự động trên Tinkoff Invest.}
}
Tác Giả
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.