# Build 017.5 — Trading Rules

**Engineering Build Document**

---

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

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

---

# Цель Build

Создать компонент базового формирования `TradingDecision` из `CoordinatorResult`.

---

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

После реализации `TradingValidation` Trading Layer получил механизм проверки входного `CoordinatorResult`.

Следующим шагом стал компонент, который преобразует:

```text
CoordinatorResult
```

в:

```text
TradingDecision
```

---

# Architecture

Создан компонент:

```text
TradingRules
```

В Build 017.5 реализован базовый каркас правил без BUY / SELL / HOLD / EXIT логики.

---

# Architecture Review

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

- Rules не выполняет Validation;
- Rules не обращается к Runtime;
- Rules не обращается к Coordinator internals;
- Rules не работает с биржей;
- Rules не исполняет сделки;
- Rules не управляет позицией;
- Rules формирует только базовый `TradingDecision`.

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

---

# ADR

Принято решение выделить правила формирования торгового решения в отдельный компонент Trading Layer.

`TradingRules` отвечает за формирование `TradingDecision` из `CoordinatorResult`.

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

---

# Implementation

Создан файл:

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

Реализован класс:

```text
TradingRules
```

Публичный метод:

```python
decide(coordinator_result)
```

Внутренние методы:

```text
_resolve_status()
_resolve_score()
_resolve_confidence()
_resolve_reason()
```

---

# Compile Check

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

Результат:

```text
Passed
```

---

# Domain Review

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

- компонент преобразует `CoordinatorResult` в `TradingDecision`;
- компонент не выполняет Validation;
- компонент не обращается к Runtime;
- компонент не обращается к Coordinator internals;
- компонент не исполняет сделки;
- компонент не управляет позициями;
- компонент не содержит BUY / SELL / HOLD / EXIT логики;
- компонент формирует только базовый каркас `TradingDecision`.

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

---

# Code Review

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

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

- компонент минимален;
- публичный метод только один;
- Validation не дублируется;
- торговая логика не добавлена преждевременно;
- лишние зависимости отсутствуют.

**Статус:** ✅ 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.6

Trading Service

trading/service.py
```