<p>Разработать Бота, который автоматически мониторит индикатор RSI (Relative Strength Index) на бирже Bybit для топ-100 торговых пар. </p><p>Если RSI для любой из торговых пар превышает 70 или опускается ниже 30, бот отправляет уведомление в Telegram с детальной информацией.</p><p></p><h3><b>Функциональные требования</b></h3><ol><li><p><b>Подключение к бирже Bybit:</b></p><ul><li><p>Использовать официальный API Bybit для получения данных о торгах и свечах.</p></li><li><p>Подключение через API-ключи (предоставляются заказчиком).</p></li></ul></li><li><p><b>Мониторинг индикатора RSI:</b></p><ul><li><p>Расчёт RSI для каждой из топ-100 торговых пар (по объёму торгов).</p></li><li><p>Использовать таймфрейм 1 час (1h).</p></li><li><p>Пороговые значения:</p><ul><li><p>RSI > 70 (перекупленность).</p></li><li><p>RSI < 30 (перепроданность).</p></li></ul></li></ul></li><li><p><b>Telegram-уведомления:</b></p><ul><li><p>Бот должен отправлять сообщение в Telegram с информацией:</p><ul><li><p>Название торговой пары (например, BTC/USDT).</p></li><li><p>Текущий курс монеты в USDT.</p></li><li><p>Текущее значение RSI.</p></li><li><p>Ссылка на торговую пару на платформе Bybit (формат ссылки: <code>https://www.bybit.com/trade/{SYMBOL}</code>, где <code>SYMBOL</code> — это название пары без слэша, например, <code>BTCUSDT</code>).</p></li></ul></li><li><p>Сообщение отправляется только один раз для пары при достижении порогового значения, повторное уведомление не должно быть до изменения RSI за пределы порогов (например, RSI должно вернуться в диапазон от 30 до 70).</p></li></ul></li><li><p><b>Работа с топ-100 торговых пар:</b></p><ul><li><p>Бот должен автоматически загружать топ-100 торговых пар по объёму с Bybit.</p></li><li><p>Если API Bybit не предоставляет информацию о топ-100, использовать заранее заданный список.</p></li></ul></li><li><p><b>Периодичность мониторинга:</b></p><ul><li><p>Обновление данных о торговых парах и индикаторах RSI каждые 5 минут.</p></li></ul></li><li><p><b>Ошибки и сбои:</b></p><ul><li><p>Реализовать обработку ошибок (например, недоступность API, проблемы с сетью).</p></li><li><p>Логировать все ошибки и события работы бота (например, отправленные уведомления).</p></li></ul></li></ol><p></p><h3><b>Нефункциональные требования</b></h3><ol><li><p><b>Технологии:</b></p><ul><li><p>Язык программирования: Python.</p></li><li><p>Библиотеки:</p><ul><li><p><code>ccxt</code> для работы с биржей Bybit.</p></li><li><p><code>pandas</code> для расчёта RSI.</p></li><li><p><code>python-telegram-bot</code> для работы с Telegram.</p></li></ul></li></ul></li><li><p><b>Производительность:</b></p><ul><li><p>Обеспечить минимальное время обработки данных.</p></li><li><p>Оптимизировать запросы к API Bybit (не превышать лимиты).</p></li></ul></li><li><p><b>Безопасность:</b></p><ul><li><p>API-ключи Bybit и токен Telegram-бота должны быть конфиденциальными.</p></li><li><p>Хранение конфиденциальных данных в <code>.env</code>-файле или другой защищённой форме.</p></li></ul></li><li><p><b>Тестирование:</b></p><ul><li><p>Покрыть функциональность бота тестами:</p><ul><li><p>Проверка расчёта RSI.</p></li><li><p>Проверка отправки уведомлений в Telegram.</p></li><li><p>Проверка обработки ошибок.</p></li></ul></li></ul></li><li><p><b>Документация:</b></p><ul><li><p>Подробная инструкция по настройке и запуску бота.</p></li><li><p>Описание структуры кода и ключевых компонентов.</p></li></ul></li></ol><hr /><h3><b>Требования к отчету программиста</b></h3><ol><li><p>Список всех топ-100 торговых пар, которые мониторятся.</p></li><li><p>Логи работы бота за период тестирования (минимум 24 часа).</p></li><li><p>Подробное описание процесса тестирования и результатов.</p></li><li><p>Инструкция для пользователя:</p><ul><li><p>Как настроить API-ключи и токен Telegram-бота.</p></li><li><p>Как запустить бота.</p></li><li><p>Как интерпретировать уведомления.</p></li></ul></li></ol><p></p><h3><b>Пример сообщения в Telegram</b></h3><p>?? RSI Alert</p><p>Монета: BTC/USDT</p><p>Курс: 42,000.50 USDT</p><p>RSI: 72.35</p><p>Ссылка: <a href="https://www.bybit.com/trade/BTCUSDT">https://www.bybit.com/trade/BTCUSDT</a></p><p></p><h3><b>Сроки выполнения</b></h3><ol><li><p>Разработка и тестирование: 5 рабочих дней.</p></li><li><p>Отладка и исправление багов: 2 рабочих дня.</p></li><li><p>Предоставление финального отчёта и инструкции: 1 рабочий день.</p></li></ol><p>Общий срок выполнения: 8 рабочих дней.</p><hr /><h3><b>Дополнительные пожелания</b></h3><ol><li><p>Предоставить возможность легко изменить список торговых пар и таймфрейм (например, через файл конфигурации).</p></li><li><p>Добавить возможность настройки пороговых значений RSI через файл или интерфейс.</p></li><li><p>Реализовать логирование работы бота (например, запись в файл <code>bot_log.txt</code>).</p></li></ol><hr /><p>Если есть дополнительные вопросы по техническому заданию, программист может связаться с заказчиком для уточнения.</p>