Stage 07.4.3.4 — Telegram strong signal alerts via EventBus

This commit is contained in:
2026-05-03 09:15:34 +03:00
parent 24c910fade
commit af2d27761f
6 changed files with 280 additions and 1 deletions

View File

@@ -149,6 +149,14 @@
- логирование paper execution
- EventBus события (paper_position_opened)
### Stage 07.4.3.4 — Telegram Strong Signal Alerts
- EventBus-driven уведомления
- Фильтрация READY сигналов
- Поддержка BUY / SELL
- Анти-спам (deduplication)
- Интеграция с Journal
- Runner полностью управляет Telegram-уведомлениями
### 07.4.4
⏳ Grid Strategy

View File

@@ -119,7 +119,7 @@
---
### Stage 07.4.3.3 — Paper Position & Execution Engine
### Stage 07.4.3.3 — Paper Position & Execution Engine
- добавлен ExecutionEngine
- реализованы paper-позиции (LONG / SHORT)
- интеграция с AutoTradeService
@@ -129,6 +129,21 @@
---
## Stage 07.4.3.4 — Telegram Strong Signal Alerts
- EventBus-driven уведомления
- Фильтрация READY сигналов
- Поддержка BUY / SELL
- Анти-спам (deduplication)
- Интеграция с Journal
- Runner полностью управляет Telegram-уведомлениями
➡️ Подготовка к:
- Debug tools
- Execution lifecycle
- Real trading notifications
---
### 07.4.4
⏳ Grid strategy

View File

@@ -0,0 +1,167 @@
# Stage 07.4.3.4 — Telegram Strong Signal Alerts
## 📌 Цель этапа
Добавить систему уведомлений в Telegram при появлении **сильного торгового сигнала**:
- Только при `BUY / SELL`
- Только при `decision_status = READY`
- Без спама (дедупликация)
- Через EventBus (без прямой связи UI ↔ стратегия)
---
## 🧠 Архитектурная идея
Strategy → AutoTradeService → EventBus → AutoTradeRunner → Telegram
- Strategy генерирует сигнал
- Service обновляет decision state
- EventBus фиксирует изменение
- Runner реагирует и отправляет сообщение
---
## ⚙️ Реализация
### 1. EventBus расширен
Добавлены дополнительные поля в событие:
```python
EventBus.emit("auto_decision_changed", {
"decision_status": state.decision_status,
"signal": state.last_signal,
"repeat_count": state.last_signal_repeat_count,
"confidence": state.last_signal_confidence,
"symbol": state.symbol,
"strategy": state.strategy,
"leverage": state.leverage,
"reason": state.last_signal_reason,
})
```
### 2. AutoTradeRunner — обработка событий
Добавлены методы:
_handle_important_event()
_send_strong_signal_alert()
Логика:
* слушаем EventBus.version()
* проверяем last_event()
* фильтруем только READY + BUY/SELL
* отправляем уведомление
### 3. Анти-спам защита
Добавлено поле:
_last_strong_alert_key
Ключ:
symbol + strategy + signal + repeat + confidence + decision_status
👉 Если ключ совпадает — сообщение не отправляется
### 4. Telegram уведомление
Формат сообщения:
🚨 Сильный сигнал 🟢 BUY
BTC/USD · TREND · x2
Confidence: 0.82
Repeats: 3
Причина: Пробой уровня сопротивления
### 5. Логирование
Добавлено событие:
auto_strong_signal_alert_sent
С payload:
* symbol
* strategy
* signal
* confidence
* repeat_count
* leverage
* reason
## ✅ Критерии готовности
✔ Уведомление приходит только при:
* BUY или SELL
* decision_status = READY
Не приходит при:
* HOLD
* CONFIRMING
* BLOCKED
Не спамит при каждом цикле
✔ Логируется в Journal
Не ломает UI
## 🧪 Тестирование
Рекомендуемый способ
Форсирование события:
```
EventBus.emit("auto_decision_changed", {
"decision_status": "READY",
"signal": "BUY",
"repeat_count": 2,
"confidence": 0.9,
"symbol": state.symbol,
"strategy": state.strategy,
"leverage": state.leverage,
"reason": "TEST SIGNAL",
})
```
## ⚠️ Ограничения
* Нет cooldown между сигналами
* Нет разных уровней сигналов (weak/strong)
* Нет user-level подписок
* Нет отключения уведомлений
## 🚀 Следующий этап
Stage 07.4.3.5 — Debug Commands & Test Mode
Добавим:
* /debug signal BUY
* /debug ready
* test_mode=True
* override стратегии
## 📦 Итог
Этап завершает переход к event-driven архитектуре автоторговли:
* UI отвязан от логики
* Runner управляет Telegram
* Service управляет сигналами
* EventBus связывает всё
Это фундамент для:
* Execution Engine
* Risk Engine
* Real trading
## 💾 Коммит
git add .
git commit -m "Stage 07.4.3.4 — Telegram strong signal alerts via EventBus"