Files
dzentra_bot/docs/market_intelligence/builds/build-017-4-trading-validation.md

5.5 KiB
Raw Permalink Blame History

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

Выполняемые проверки:

  1. Передан ли CoordinatorResult;
  2. Пригоден ли результат (is_usable);
  3. Отсутствуют ли критические ошибки (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