Stage 07.4.3.3 — Paper Position & Execution Engineg

This commit is contained in:
2026-05-03 07:45:07 +03:00
parent bd6b40fcb2
commit 24c910fade
8 changed files with 398 additions and 8 deletions

View File

@@ -0,0 +1,165 @@
# Stage 07.4.3.3 — Paper Position & Execution Engine
### 📌 Overview
На этом этапе реализован базовый Execution Engine и paper-позиции (без реальных ордеров).
Система теперь:
* принимает решение READY
* открывает paper-позицию (LONG / SHORT)
* синхронизирует её с UI
* логирует событие
* генерирует событие через EventBus
---
### 🧠 Архитектура
Добавлены новые слои:
Strategy → Signal → Decision → ExecutionEngine → PositionState
---
📂 Новые модули
## 1. Position Layer
app/src/trading/position/state.py
Хранит текущее состояние позиции:
* side (NONE / LONG / SHORT)
* entry_price
* size
* leverage
* unrealized_pnl_usd
---
## 2. Execution Models
app/src/trading/execution/models.py
ExecutionDecision:
action: str
can_execute: bool
reason: str
---
## 3. Execution Engine
app/src/trading/execution/engine.py
Основные функции:
* принимает AutoTradeState
* проверяет:
* RUNNING
* READY
* is_signal_ready
* открывает paper-позицию
* пишет в журнал
* эмитит событие
---
### ⚙️ Логика execution
Условия открытия позиции:
status == RUNNING
decision_status == READY
is_signal_ready == True
нет открытой позиции
---
### Mapping сигналов:
BUY → OPEN_LONG
SELL → OPEN_SHORT
---
### 📊 Расчёт позиции (временно)
size = (risk_percent * leverage) / 100
Это placeholder для будущего risk engine.
---
### 🔄 Интеграция с AutoTradeService
В run_cycle() добавлено:
ExecutionEngine().process(state)
Теперь execution вызывается автоматически после анализа.
---
### 🖥 UI изменения
Экран автоторговли теперь показывает:
Pos: LONG | Entry: $ ... | PnL: ...
или:
Pos: NONE
---
### 🧾 Журнал
При открытии позиции:
event_type = paper_position_opened
payload:
{
"symbol": "...",
"side": "LONG | SHORT",
"entry_price": ...,
"size": ...,
"leverage": ...,
"signal": "...",
"confidence": ...
}
---
### ⚡ EventBus
Новое событие:
paper_position_opened
---
### 🚧 Ограничения текущего этапа
* ❌ Нет закрытия позиции
* ❌ Нет расчёта PnL
* ❌ Нет реальных ордеров
* ❌ Нет стопов / тейков
* ❌ Нет multi-position
---
### ✅ Результат
Теперь система полностью проходит путь:
Strategy → Signal → Decision → Execution → Position → UI
---
### 🔜 Next
07.4.3.4 — Strong Signal Alerts (Telegram notifications)