Skip to content

nebel310/ETFAnalis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ETF Telegram bot

Что делает этот бот

Бот помогает быстро оценивать ETF с Московской биржи и выбирать фонды по сводному рейтингу.
Он хранит данные в PostgreSQL и отдает результаты из кэша, чтобы ответы были быстрыми.

Как это работает

  1. Бот загружает и обновляет данные по ETF из MOEX:

    • список фондов
    • текущие цены
    • исторические цены (с fallback до 10 дней от целевой даты)
    • дивиденды за последние 12 месяцев
  2. Команда /update запускает полное обновление кэша в базе данных (доступно только пользователю @vlados7529)

  3. Для каждого ETF бот считает метрики:

    • return_1y = ((current_price - price_1y_ago) / price_1y_ago) * 100
    • return_5y = ((current_price - price_5y_ago) / price_5y_ago) * 100
    • div_yield = (dividends_12m / current_price) * 100
    • score = div_yield * 3 + return_1y + return_5y
  4. Команды /top и /info работают только с кэшированными данными из БД

Поддерживаемые команды

  • /start — приветствие и список команд
  • /top [N] — топ ETF по score (если N не указан, используется значение по умолчанию)
  • /info SECID — подробная информация по конкретному ETF
  • /update — полное обновление данных MOEX (только для @vlados7529)

Как запустить бота

  1. Установите Python и PostgreSQL
  2. Создайте базу данных PostgreSQL
  3. Скопируйте .env.example в .env и заполните:
    BOT_TOKEN=ваш_токен
    DATABASE_URL=postgresql+asyncpg://user:password@host:5432/dbname
    
  4. Установите зависимости:
    pip install -r requirements.txt
    
  5. Запустите бота:
    python main.py
    
  6. После запуска выполните /update из аккаунта @vlados7529, чтобы заполнить кэш данными

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors