build 039: complete Quotes Feed migration foundation
This commit is contained in:
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user