Skip to content

driavysinus/impulse_shadow

Repository files navigation

KuCoin Futures Impulse Monitor

Мониторит все фьючерсные пары KuCoin Futures через WebSocket. Отправляет Telegram-уведомление, когда внутри окна появляется длинная свечная тень:

  • нижняя тень >= порога -> LONG-сигнал;
  • верхняя тень >= порога -> SHORT-сигнал.

Установка

pip install -r requirements.txt

Настройка

Создай .env рядом с main.py и заполни:

TELEGRAM_BOT_TOKEN=replace_with_bot_token
TELEGRAM_CHAT_ID=replace_with_chat_id

Не вставляй реальные токены в README или другие файлы git-репозитория. Храни их только в локальном .env, который игнорируется через .gitignore.

Получить CHAT_ID: перейди в https://t.me/userinfobot или отправь боту /start и смотри ID в ответе.

Запуск

python main.py

Пример уведомления

🕯 ТЕНЬ ОБНАРУЖЕНА
━━━━━━━━━━━━━━━━━━━━
💎 XBTUSDTM  🟢 LONG 📈

🧷 Тип: нижняя тень
📊 Тень: 111.67% за 60с
🎯 Экстремум: 0.33070
↩️ Край тела: 0.70000

🕯 OHLC: O 0.70530 H 0.70530 L 0.33070 C 0.70000
🎯 Ниже close −1%: 0.69300
━━━━━━━━━━━━━━━━━━━━

Параметры (config.py)

Параметр По умолчанию Описание
SHADOW_THRESHOLD_PCT 20.0 Минимальный возврат от экстремума тени к телу
SHADOW_WINDOW_SEC 60 Окно, за которое из тиков собирается OHLC-свеча
MEASURE_INTERVAL_SEC 60 Как часто проверять окно
COOLDOWN_SECONDS 300 Пауза между алертами на пару
DAILY_OPEN_REFRESH_INTERVAL 300 Сек между REST-опросами daily open
REST_CALL_INTERVAL 0.12 Задержка между REST-запросами
USE_SYSTEM_PROXY True Использовать HTTP_PROXY / HTTPS_PROXY / WSS_PROXY из окружения

Формула тени

Из тиков за SHADOW_WINDOW_SEC собирается свеча open/high/low/close.

Нижняя тень, LONG-сигнал:

(min(open, close) - low) / low * 100

Верхняя тень, SHORT-сигнал:

(high - max(open, close)) / high * 100

Архитектура

  • ws_client.py — WS соединения (по 100 пар на коннект, авто-реконнект)
  • tracker.py — детектор свечных теней (без блокирующего I/O, чисто в памяти)
  • network.py — единые настройки aiohttp, прокси и DNS resolver
  • rest_client.py — получение пар, daily open, rate-limit throttle и retry
  • notifier.py — очередь Telegram-уведомлений (flood control)
  • config.py — все параметры
  • main.py — оркестрация

Rate limits

KuCoin публичный REST: 30 req/3s per IP. При ~600 парах первичная загрузка daily open займёт больше минуты — это нормально. Затем обновление раз в 5 минут: ~600 × 0.12с = ~72с (укладываемся).

Proxy

aiohttp теперь читает системные переменные HTTP_PROXY / HTTPS_PROXY. Для wss:// WebSocket используется WSS_PROXY, а если он не задан — fallback на HTTPS_PROXY.

WS: нет лимитов по сообщениям, только 100 топиков на соединение.

Raspberry Pi systemd

sudo apt update
sudo apt install -y git python3-venv python3-pip
git clone git@github.com:driavysinus/impulse_shadow.git
cd impulse_shadow
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp .env.example .env
nano .env

Сервис:

sudo cp deploy/impulse-shadow.service.example /etc/systemd/system/impulse-shadow.service
sudo nano /etc/systemd/system/impulse-shadow.service
sudo systemctl daemon-reload
sudo systemctl enable --now impulse-shadow
sudo systemctl status impulse-shadow

В service-файле поменяй User=pi и пути /home/pi/impulse_shadow, если на Raspberry Pi другой пользователь или другая папка.

Логи:

journalctl -u impulse-shadow -f

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages