build 039: complete Quotes Feed migration foundation

This commit is contained in:
2026-07-14 09:58:16 +03:00
parent 26deb861bc
commit 7b62873832
443 changed files with 80452 additions and 1335 deletions

View File

@@ -0,0 +1,191 @@
# 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
```