07.4.3.12 — Real Risk Engine (execution-level)

This commit is contained in:
2026-05-05 20:28:43 +03:00
parent 3c3f0e846a
commit b1513a28ef
6 changed files with 157 additions and 9 deletions

View File

@@ -0,0 +1,130 @@
# 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)