# Build 017.2 — Trading Protocol

**Engineering Build Document**

---

# Контроль документа

| Свойство | Значение |
|----------|-----------|
| Build | 017.2 |
| Название | Trading Protocol |
| Статус | **Accepted** |
| Подсистема | Trading |
| Layer | Trading |
| Тип | Architecture + Implementation |
| Версия | 1.0 |
| Язык | Русский |

---

# Цель Build

Создать официальный публичный контракт Trading Layer.

---

# Причина появления Build

После появления модели `TradingDecision` Trading Layer должен получить стабильный интерфейс взаимодействия.

Контракт Trading определяет единственную модель взаимодействия:

```text
CoordinatorResult
        ↓
Trading
        ↓
TradingDecision
```

---

# Architecture

`TradingProtocol` описывает только внешний интерфейс Trading Layer.

Он не содержит:

- реализации;
- Validation;
- Rules;
- Execution;
- Risk;
- Portfolio;
- биржевой логики;
- логики исполнения сделок.

---

# Architecture Review

Подтверждено:

- вход — только `CoordinatorResult`;
- выход — только `TradingDecision`;
- контракт не содержит реализации;
- контракт не зависит от Runtime;
- контракт не зависит от Coordinator internals;
- контракт не работает с биржей;
- контракт не исполняет сделки.

**Статус:** ✅ Passed

---

# ADR

Принято решение добавить официальный контракт:

```text
TradingProtocol
```

Утверждённый метод:

```python
async def decide(
    coordinator_result: CoordinatorResult,
) -> TradingDecision:
    ...
```

**Статус:** Accepted

---

# Implementation

Создан файл:

```text
app/src/trading/market_intelligence/trading/protocol.py
```

Содержимое контракта:

```python
class TradingProtocol(Protocol):
    async def decide(
        self,
        coordinator_result: CoordinatorResult,
    ) -> TradingDecision:
        ...
```

---

# Compile Check

```bash
python -m compileall src/trading/market_intelligence
```

Результат:

```text
Passed
```

---

# Domain Review

Подтверждено:

- Trading принимает только `CoordinatorResult`;
- Trading возвращает только `TradingDecision`;
- протокол не содержит реализации;
- протокол не содержит торговых правил;
- протокол не содержит логики исполнения сделок;
- протокол не зависит от Runtime;
- протокол не зависит от Coordinator internals.

**Статус:** ✅ Passed

---

# Code Review

Проверка пройдена.

Замечаний нет.

**Статус:** ✅ Passed

---

# Acceptance

Build завершён.

Выполнены:

- ✅ Architecture Design
- ✅ Architecture Review
- ✅ ADR
- ✅ Build Design
- ✅ Implementation
- ✅ Compile Check
- ✅ Domain Review
- ✅ Code Review
- ✅ Documentation

Статус Build:

```text
Accepted
```

---

# Следующий Build

```text
Build 017.3

Trading Exceptions

trading/exceptions.py
```