Skip to content

Telegram-бот для отслеживания финансовых инструментов с помощью индикаторов RSI и Stochastic. Отправляет уведомления при достижении пороговых значений перепроданности/перекупленности.

Notifications You must be signed in to change notification settings

gdr102/monitor_traid_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Бот мониторинга RSI и Stochastic Oscillator

Бот для мониторига финансовых инструментов (акции, Forex, криптовалюты) с использованием индикаторов RSI (Relative Strength Index) и Stochastic Oscillator. Бот отправляет уведомления в Telegram при достижении пороговых значений индикаторов.

📋 Основные возможности

📊 Мониторинг двух индикаторов: RSI и Stochastic Oscillator с настраиваемыми параметрами

🔔 Умные уведомления: Автоматические алерты при перепроданности/перекупленности и интеграция с Telegram

⏰ Интеллектуальное расписание: Проверки по московскому времени (MSK), автоматический пропуск выходных дней, расписание проверок: 08:00, 15:00, 22:00 (МСК)

🔐 Безопасность: Ограничение доступа по TG_ID пользователей, использование разных API ключей для RSI и Stochastic

🛠 Технологии

  • Python 3.8+
  • Aiogram 3.x - для работы с Telegram API
  • SQLAlchemy - для работы с базой данных
  • aiohttp - для асинхронных HTTP запросов
  • TwelveData API - для получения данных о рынке
  • pytz - для работы с часовыми поясами

📁 Структура проекта

rsi_bot/
├── app/
│   ├── config.py              # Конфигурация бота
│   ├── main.py                # Точка входа
│   ├── core.py                # Ядро приложения
│   ├── auth.py                # Middleware аутентификации
│   ├── models.py              # Модели базы данных
│   ├── database.py            # Работа с базой данных
│   ├── handlers/
│   │   └── main_handlers.py   # Обработчики команд
│   ├── keyboards/
│   │   └── inline.py          # Inline-клавиатуры
│   └── services/
│       ├── twelvedata_service.py  # Сервис TwelveData
│       ├── rsi_monitor.py         # Мониторинг RSI
│       └── monitoring.py          # Сервис мониторинга
├── requirements.txt           # Зависимости
├── rsi_bot.db                # База данных (создается автоматически)
└── README.md                 # Документация

⚙️ Установка и настройка

  1. Установка зависимостей
pip install -r requirements.txt
  1. Настройка конфигурации Отредактируйте файл app/config.py:
TELEGRAM_BOT_TOKEN = "ВАШ_TELEGRAM_BOT_TOKEN"
TWELVEDATA_API_KEY_1 = "ВАШ_ПЕРВЫЙ_API_КЛЮЧ_TWELVEDATA"
TWELVEDATA_API_KEY_2 = "ВАШ_ВТОРОЙ_API_КЛЮЧ_TWELVEDATA"
ADMIN_USER_ID = [ВАШ_USER_ID]  # ID пользователя Telegram
  1. Получение API ключей Telegram Bot Token: Напишите @BotFather в Telegram Создайте нового бота с помощью команды /newbot Скопируйте токен

    TwelveData API Keys: Зарегистрируйтесь на twelvedata Получите два API ключа (используйте разные аккаунты) Первый ключ для RSI, второй для Stochastic

  2. Настройка параметров индикаторов В config.py можно настроить:

# RSI параметры
RSI_PERIOD = 14               # Период расчета
RSI_OVERSOLD = 30             # Порог перепроданности
RSI_OVERBOUGHT = 70           # Порог перекупленности
RSI_TIMEFRAME = "4h"          # Таймфрейм

# Stochastic параметры
STOCH_TIMEFRAME = "1day"      # Таймфрейм
STOCH_K_PERIOD = 5            # Период %K
STOCH_D_PERIOD = 3            # Период %D
STOCH_SMOOTHING = 3           # Замедление
STOCH_OVERSOLD = 20           # Порог перепроданности
STOCH_OVERBOUGHT = 80         # Порог перекупленности

📱 Использование

Основные команды:

  • /start - Главное меню
  • ➕ Добавить пару - Добавить символ для отслеживания
  • ➖ Удалить пару - Удалить символ из отслеживания
  • 🔄 Обновить данные - Принудительное обновление данных

Поддерживаемые символы:

  • Акции: AAPL, MSFT, GOOGL, AMZN, TSLA, META, NVDA, NFLX
  • Forex: EUR/USD, GBP/USD, USD/JPY, USD/CHF, AUD/USD, USD/CAD
  • Криптовалюты: BTC/USD, ETH/USD, ADA/USD, DOT/USD

🔧 Работа с API TwelveData

Особенности реализации - разделение ключей:

  • Ключ 1 используется для запросов RSI
  • Ключ 2 используется для запросов Stochastic

Лимиты запросов:

  • 8 запросов в минуту на каждый ключ
  • 800 запросов в день на каждый ключ
  • Интеллектуальное управление лимитами

Кеширование:

  • Данные кешируются на 10 минут
  • Уменьшает количество запросов к API

📊 Логика работы Расписание проверок:

  • 08:00 МСК - Утренняя проверка
  • 15:00 МСК - Дневная проверка
  • 22:00 МСК - Вечерняя проверка
  • Выходные дни пропускаются

Условия алертов: RSI:

  • Перепроданность: RSI < 30
  • Перекупленность: RSI > 70 Stochastic:
  • Перепроданность: K < 20 и D < 20
  • Перекупленность: K > 80 и D > 80

⚠️ Важные примечания

Warning

Только для образовательных целей - не используйте для реальной торговли

  • Проверяйте лимиты API - TwelveData имеет ограничения

About

Telegram-бот для отслеживания финансовых инструментов с помощью индикаторов RSI и Stochastic. Отправляет уведомления при достижении пороговых значений перепроданности/перекупленности.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages