feat: add market data architecture and complete migration through build 039
This commit is contained in:
191
docs/market_intelligence/builds/build-017-2-trading-protocol.md
Normal file
191
docs/market_intelligence/builds/build-017-2-trading-protocol.md
Normal 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
|
||||
```
|
||||
Reference in New Issue
Block a user