Бот помогает быстро оценивать ETF с Московской биржи и выбирать фонды по сводному рейтингу.
Он хранит данные в PostgreSQL и отдает результаты из кэша, чтобы ответы были быстрыми.
-
Бот загружает и обновляет данные по ETF из MOEX:
- список фондов
- текущие цены
- исторические цены (с fallback до 10 дней от целевой даты)
- дивиденды за последние 12 месяцев
-
Команда
/updateзапускает полное обновление кэша в базе данных (доступно только пользователю @vlados7529) -
Для каждого ETF бот считает метрики:
return_1y = ((current_price - price_1y_ago) / price_1y_ago) * 100return_5y = ((current_price - price_5y_ago) / price_5y_ago) * 100div_yield = (dividends_12m / current_price) * 100score = div_yield * 3 + return_1y + return_5y
-
Команды
/topи/infoработают только с кэшированными данными из БД
/start— приветствие и список команд/top [N]— топ ETF по score (если N не указан, используется значение по умолчанию)/info SECID— подробная информация по конкретному ETF/update— полное обновление данных MOEX (только для @vlados7529)
- Установите Python и PostgreSQL
- Создайте базу данных PostgreSQL
- Скопируйте
.env.exampleв.envи заполните:BOT_TOKEN=ваш_токен DATABASE_URL=postgresql+asyncpg://user:password@host:5432/dbname - Установите зависимости:
pip install -r requirements.txt - Запустите бота:
python main.py - После запуска выполните
/updateиз аккаунта @vlados7529, чтобы заполнить кэш данными