# 07.4.3.12 — Real Risk Engine (execution-level)

## 📌 Цель
Перенести risk-логику (Stop Loss, Take Profit, Max Loss) 
с уровня UI/настроек на уровень execution engine.

Теперь риск не просто отображается, а **влияет на реальные торговые действия**.

---

## ⚙️ Что реализовано

### 1. Risk checks внутри ExecutionEngine

Добавлен блок:

- `_risk_close_decision()`
- вызывается **до execution логики (open / flip)**

Порядок проверок:
1. MAX_LOSS (USD)
2. STOP_LOSS (%)
3. TAKE_PROFIT (%)

---

### 2. Принудительное закрытие позиции (forced close)

При срабатывании риска:

```
_close_position(
    forced_reason="STOP_LOSS" | "TAKE_PROFIT" | "MAX_LOSS"
)
```

Добавлено:

- risk_reason
- is_forced=True

---

### 3. Telegram execution alerts

Добавлено в alert:

```
Risk: STOP_LOSS
Risk: TAKE_PROFIT
Risk: MAX_LOSS
```

Работает для:

- paper_position_closed
- forced close событий

---

### 4. Интеграция в цикл автоторговли

Risk engine:

- встроен в ExecutionEngine.process()
- вызывается на каждом цикле
- не требует отдельного триггера

---

### 5. Поддерживаемые типы риска

- STOP_LOSS: % движения цены
- TAKE_PROFIT: % движения цены
- MAX_LOSS: P&L в USD

---

### 🧠 Архитектурные принципы

* Risk проверяется до входа в позицию
* Risk не дублируется в UI
* Все решения централизованы в ExecutionEngine
* UI только отображает состояние

---

### ⚠️ Ограничения текущей версии

1. Position size пока не связан с риском
2. MAX_LOSS — paper-based (USD), не account-based
3. Нет связи с балансом аккаунта
4. Нет partial close / trailing logic

---

### ✅ Тест-кейсы (пройдены)

TAKE_PROFIT

- LONG → TP → позиция закрывается
- Telegram: Risk: TAKE_PROFIT

STOP_LOSS

- LONG → SL → позиция закрывается
- Telegram: Risk: STOP_LOSS

MAX_LOSS

- позиция → убыток → закрытие
- Telegram: Risk: MAX_LOSS

---

### 📊 Итог

Risk engine теперь:

* работает на уровне execution
* влияет на реальные торговые решения
* синхронизирован с Telegram alerts

---

## Это первый шаг к production-grade risk management.

---

## Следующий шаг — 07.4.3.13 Position sizing (realistic)