Скринер следит за изменениями цен на криптовалютных рынках (в реалтайме). Если цена удовлетворяет условиям сигналов, отправляется уведомление в телеграм. Вместе с сообщением об изменении цены отправляется ссылка на Coinglass, для быстрого анализа рынка на возможные торговые возможности.
При обновлении сигнала, при условии, что проценты стали выше, сообщение в телеграм обновится новыми данными.
Скринер работает c USDT рынками и фьючерсами.
- Bybit
- Binance
- Okx
- Gate
- Htx
Если вы хотите сократить использование ресурсов (а в этой реализации ресурсов потребляется немало), и вам не нужны
все биржи, вы можете закомментировать неиспользуемые в файле deployment/docker-compose.yaml
.
Для работы приложения необходимо создать файл .env
в корне проекта и заполнить его следующими данными:
BOT_API_KEY="123456:BOT_TOKEN" # Токен вашего телеграм бота для отправки сигналов созданный через @botfather
TARGET_IDS="[123456,234567]" # Список ID пользователей телеграм, которым будут отправляться сигналы
SIGNAL_THRESHOLDS='["5,4","20,10"]' # Пороги для отправки сигналов в формате ["период в минутах, порог изменения цены в %", ...]
# в примере выше, настроено два сигнала, если цена изменится на 4% за 5 минуты, и на 10% за 20 минут
# для быстрой проверки можете установить низкие пороги %, например ["5,1.5","10,2"]
DEBUG=1 # При включении параметра в сообщения в телеграм добавляется значок бота (для отладки)
Для запуска используется Docker compose. Перед запуском убедитесь что у вас установлен docker
и docker-compose
.
Вы можете запустить приложение с помощью команды:
docker compose -f deployment/docker-compose.yaml up -d
Вместе с приложением запустится docker контейнер с БД Redis с включенной модификацией RedisTimeSeries, который необходим для работы приложения.
В проекте используются последние на момент публикации версии библиотек, хэши зависимостей которых запинены во избежание проблем с запуском в будущем:
python 3.12
uvloop
для ускорения event loopaiohttp
для работы с websocketsmsgspec
для быстрой сериализации jsonredis
для хранения стейта и работы с timeseriesemoji
для отправки красивых сообщений в telegramtaskiq
для обработки задач в фонеtaskiq-redis
для использования taskiq с redis брокеромpydantic-settings
для удобной работы и валидации настроекstructlog
для логирования
MIT License
Copyright (c) 2024 Victor Wastler
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.