feat: add market data architecture and complete migration through build 039
This commit is contained in:
253
docs/market_intelligence/builds/build-017-6-trading-service.md
Normal file
253
docs/market_intelligence/builds/build-017-6-trading-service.md
Normal file
@@ -0,0 +1,253 @@
|
||||
# Build 017.6 — Trading Service
|
||||
|
||||
**Engineering Build Document**
|
||||
|
||||
---
|
||||
|
||||
# Контроль документа
|
||||
|
||||
| Свойство | Значение |
|
||||
|----------|-----------|
|
||||
| Build | 017.6 |
|
||||
| Название | Trading Service |
|
||||
| Статус | **Accepted** |
|
||||
| Подсистема | Trading |
|
||||
| Layer | Trading |
|
||||
| Тип | Architecture + Implementation |
|
||||
| Версия | 1.0 |
|
||||
| Язык | Русский |
|
||||
|
||||
---
|
||||
|
||||
# Цель Build
|
||||
|
||||
Создать единую публичную точку входа Trading Layer.
|
||||
|
||||
---
|
||||
|
||||
# Причина появления Build
|
||||
|
||||
После реализации компонентов:
|
||||
|
||||
- `TradingProtocol`;
|
||||
- `TradingValidation`;
|
||||
- `TradingRules`;
|
||||
|
||||
Trading Layer получил все необходимые внутренние элементы, однако отсутствовал компонент, объединяющий их в единый рабочий процесс.
|
||||
|
||||
Эту роль выполняет `TradingService`.
|
||||
|
||||
---
|
||||
|
||||
# Architecture
|
||||
|
||||
Создан компонент:
|
||||
|
||||
```text
|
||||
TradingService
|
||||
```
|
||||
|
||||
Он реализует официальный контракт:
|
||||
|
||||
```text
|
||||
TradingProtocol
|
||||
```
|
||||
|
||||
и обеспечивает последовательность выполнения:
|
||||
|
||||
```text
|
||||
CoordinatorResult
|
||||
│
|
||||
▼
|
||||
TradingValidation
|
||||
│
|
||||
▼
|
||||
TradingRules
|
||||
│
|
||||
▼
|
||||
TradingDecision
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Architecture Review
|
||||
|
||||
Подтверждено:
|
||||
|
||||
- Service является единственной публичной точкой входа Trading Layer;
|
||||
- Service принимает только `CoordinatorResult`;
|
||||
- Service возвращает только `TradingDecision`;
|
||||
- Service реализует `TradingProtocol`;
|
||||
- Service делегирует проверку `TradingValidation`;
|
||||
- Service делегирует формирование решения `TradingRules`;
|
||||
- Service не содержит собственной торговой логики;
|
||||
- Service не зависит от внутренних компонентов Runtime или Coordinator.
|
||||
|
||||
**Статус:** ✅ Passed
|
||||
|
||||
---
|
||||
|
||||
# ADR
|
||||
|
||||
Принято решение объединить внутренние компоненты Trading Layer через единый сервис.
|
||||
|
||||
`TradingService` становится единственной точкой взаимодействия внешних слоёв с Trading Layer.
|
||||
|
||||
Все внутренние компоненты Trading инкапсулируются внутри Service.
|
||||
|
||||
**Статус:** Accepted
|
||||
|
||||
---
|
||||
|
||||
# Implementation
|
||||
|
||||
Создан файл:
|
||||
|
||||
```text
|
||||
app/src/trading/market_intelligence/trading/service.py
|
||||
```
|
||||
|
||||
Реализован класс:
|
||||
|
||||
```text
|
||||
TradingService
|
||||
```
|
||||
|
||||
Публичный метод:
|
||||
|
||||
```python
|
||||
decide(
|
||||
coordinator_result: CoordinatorResult,
|
||||
) -> TradingDecision
|
||||
```
|
||||
|
||||
Внутренние зависимости:
|
||||
|
||||
```text
|
||||
TradingValidation
|
||||
TradingRules
|
||||
```
|
||||
|
||||
Последовательность работы:
|
||||
|
||||
```text
|
||||
Validation
|
||||
↓
|
||||
Rules
|
||||
↓
|
||||
TradingDecision
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Compile Check
|
||||
|
||||
```bash
|
||||
python -m compileall src/trading/market_intelligence
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
Passed
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Domain Review
|
||||
|
||||
Подтверждено:
|
||||
|
||||
- компонент является публичной точкой входа Trading Layer;
|
||||
- принимает только `CoordinatorResult`;
|
||||
- возвращает только `TradingDecision`;
|
||||
- не содержит торговых правил;
|
||||
- не изменяет `CoordinatorResult`;
|
||||
- не обращается к Runtime / Coordinator internals;
|
||||
- не работает с биржей;
|
||||
- не исполняет сделки.
|
||||
|
||||
**Статус:** ✅ Passed
|
||||
|
||||
---
|
||||
|
||||
# Code Review
|
||||
|
||||
Проверка пройдена.
|
||||
|
||||
Подтверждено:
|
||||
|
||||
- `TradingService` реализует `TradingProtocol`;
|
||||
- публичный метод только один;
|
||||
- Validation и Rules не дублируются;
|
||||
- отсутствуют лишние зависимости;
|
||||
- отсутствует торговая логика.
|
||||
|
||||
Замечаний нет.
|
||||
|
||||
**Статус:** ✅ Passed
|
||||
|
||||
---
|
||||
|
||||
# Acceptance
|
||||
|
||||
Build завершён.
|
||||
|
||||
Выполнены:
|
||||
|
||||
- ✅ Development Strategy
|
||||
- ✅ Architecture Design
|
||||
- ✅ Architecture Review
|
||||
- ✅ ADR
|
||||
- ✅ Build Design
|
||||
- ✅ Implementation
|
||||
- ✅ Compile Check
|
||||
- ✅ Domain Review
|
||||
- ✅ Code Review
|
||||
- ✅ Documentation
|
||||
|
||||
Статус Build:
|
||||
|
||||
```text
|
||||
Accepted
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Итог Build
|
||||
|
||||
Build 017.6 завершает построение **Trading Foundation**.
|
||||
|
||||
Trading Layer полностью сформирован и включает:
|
||||
|
||||
```text
|
||||
Trading
|
||||
|
||||
├── models
|
||||
├── protocol
|
||||
├── exceptions
|
||||
├── validation
|
||||
├── rules
|
||||
└── service
|
||||
```
|
||||
|
||||
Теперь Trading Layer обладает:
|
||||
|
||||
- единым публичным API;
|
||||
- собственными моделями;
|
||||
- собственным пространством исключений;
|
||||
- механизмом предварительной проверки входных данных;
|
||||
- базовыми правилами формирования торгового решения;
|
||||
- сервисом-оркестратором.
|
||||
|
||||
Архитектурный фундамент Trading завершён.
|
||||
|
||||
---
|
||||
|
||||
# Следующий Build
|
||||
|
||||
```text
|
||||
Build 018
|
||||
|
||||
Execution Layer Architecture
|
||||
```
|
||||
Reference in New Issue
Block a user