5.5 KiB
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.
Перед применением торговых правил необходимо убедиться, что входной аналитический результат корректен и пригоден для дальнейшего использования.
Для этого вводится отдельный компонент:
TradingValidation
Он отделяет проверку входных данных от бизнес-логики принятия решений.
Architecture
TradingValidation является первым этапом жизненного цикла Trading Layer:
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
Создан файл:
app/src/trading/market_intelligence/trading/validation.py
Реализован класс:
TradingValidation
Публичный метод:
validate(
coordinator_result: CoordinatorResult,
) -> None
Выполняемые проверки:
- Передан ли
CoordinatorResult; - Пригоден ли результат (
is_usable); - Отсутствуют ли критические ошибки (
has_errors).
Compile Check
python -m compileall src/trading/market_intelligence
Результат:
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:
Accepted
Итог Build
Build 017.4 завершил создание компонента предварительной проверки Trading Layer.
Теперь фундамент Trading содержит:
Trading Foundation
├── Models
├── Protocol
├── Exceptions
└── Validation
Trading Layer получил собственный механизм проверки входного аналитического контракта без нарушения архитектурной изоляции между слоями.
Следующий Build
Build 017.5
Trading Rules
trading/rules.py