feat: add market data architecture and complete migration through build 039

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

View File

@@ -0,0 +1,224 @@
# Build 017.4 — Trading Validation
**Engineering Build Document**
---
# Контроль документа
| Свойство | Значение |
|----------|-----------|
| Build | 017.4 |
| Название | Trading Validation |
| Статус | **Accepted** |
| Подсистема | Trading |
| Layer | Trading |
| Тип | Architecture + Implementation |
| Версия | 1.0 |
| Язык | Русский |
---
# Цель Build
Создать компонент предварительной проверки входного `CoordinatorResult` перед началом работы Trading Layer.
---
# Причина появления Build
Trading Layer принимает торговое решение только на основании результата Coordinator Layer.
Перед применением торговых правил необходимо убедиться, что входной аналитический результат корректен и пригоден для дальнейшего использования.
Для этого вводится отдельный компонент:
```text
TradingValidation
```
Он отделяет проверку входных данных от бизнес-логики принятия решений.
---
# Architecture
TradingValidation является первым этапом жизненного цикла Trading Layer:
```text
CoordinatorResult
TradingValidation
TradingRules
TradingDecision
```
Validation выполняет исключительно проверку входного контракта и не содержит торговых правил.
---
# Architecture Review
Подтверждено:
- компонент принимает только `CoordinatorResult`;
- компонент не изменяет `CoordinatorResult`;
- компонент не формирует `TradingDecision`;
- компонент не содержит Trading Rules;
- компонент не взаимодействует с Runtime, Coordinator internals, биржей или внешними сервисами;
- используются только публичные свойства `CoordinatorResult`.
**Статус:** ✅ Passed
---
# ADR
Принято решение выделить проверку входного результата в самостоятельный компонент.
Trading Layer использует исключительно публичный API `CoordinatorResult`:
- `is_usable`;
- `has_errors`.
Trading Layer не анализирует внутренние статусы Coordinator и не зависит от его реализации.
**Статус:** Accepted
---
# Implementation
Создан файл:
```text
app/src/trading/market_intelligence/trading/validation.py
```
Реализован класс:
```text
TradingValidation
```
Публичный метод:
```python
validate(
coordinator_result: CoordinatorResult,
) -> None
```
Выполняемые проверки:
1. Передан ли `CoordinatorResult`;
2. Пригоден ли результат (`is_usable`);
3. Отсутствуют ли критические ошибки (`has_errors`).
---
# Compile Check
```bash
python -m compileall src/trading/market_intelligence
```
Результат:
```text
Passed
```
---
# Domain Review
Подтверждено:
- компонент проверяет только входной `CoordinatorResult`;
- компонент не изменяет входные данные;
- компонент не содержит Trading Rules;
- компонент не принимает торговых решений;
- компонент использует только публичные свойства `CoordinatorResult`;
- отсутствуют зависимости от Runtime, Coordinator internals и других слоёв.
**Статус:** ✅ Passed
---
# Code Review
Проверка пройдена.
Подтверждено:
- единственный публичный метод — `validate()`;
- используется специализированное исключение `TradingValidationError`;
- проверки разделены на приватные методы;
- отсутствует бизнес-логика;
- отсутствуют лишние зависимости.
Замечаний нет.
**Статус:** ✅ 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.4 завершил создание компонента предварительной проверки Trading Layer.
Теперь фундамент Trading содержит:
```text
Trading Foundation
├── Models
├── Protocol
├── Exceptions
└── Validation
```
Trading Layer получил собственный механизм проверки входного аналитического контракта без нарушения архитектурной изоляции между слоями.
---
# Следующий Build
```text
Build 017.5
Trading Rules
trading/rules.py
```