Files
dzentra_bot/docs/market_intelligence/builds/build-017-2-trading-protocol.md

3.5 KiB
Raw Blame History

Build 017.2 — Trading Protocol

Engineering Build Document


Контроль документа

Свойство Значение
Build 017.2
Название Trading Protocol
Статус Accepted
Подсистема Trading
Layer Trading
Тип Architecture + Implementation
Версия 1.0
Язык Русский

Цель Build

Создать официальный публичный контракт Trading Layer.


Причина появления Build

После появления модели TradingDecision Trading Layer должен получить стабильный интерфейс взаимодействия.

Контракт Trading определяет единственную модель взаимодействия:

CoordinatorResult
        ↓
Trading
        ↓
TradingDecision

Architecture

TradingProtocol описывает только внешний интерфейс Trading Layer.

Он не содержит:

  • реализации;
  • Validation;
  • Rules;
  • Execution;
  • Risk;
  • Portfolio;
  • биржевой логики;
  • логики исполнения сделок.

Architecture Review

Подтверждено:

  • вход — только CoordinatorResult;
  • выход — только TradingDecision;
  • контракт не содержит реализации;
  • контракт не зависит от Runtime;
  • контракт не зависит от Coordinator internals;
  • контракт не работает с биржей;
  • контракт не исполняет сделки.

Статус: Passed


ADR

Принято решение добавить официальный контракт:

TradingProtocol

Утверждённый метод:

async def decide(
    coordinator_result: CoordinatorResult,
) -> TradingDecision:
    ...

Статус: Accepted


Implementation

Создан файл:

app/src/trading/market_intelligence/trading/protocol.py

Содержимое контракта:

class TradingProtocol(Protocol):
    async def decide(
        self,
        coordinator_result: CoordinatorResult,
    ) -> TradingDecision:
        ...

Compile Check

python -m compileall src/trading/market_intelligence

Результат:

Passed

Domain Review

Подтверждено:

  • Trading принимает только CoordinatorResult;
  • Trading возвращает только TradingDecision;
  • протокол не содержит реализации;
  • протокол не содержит торговых правил;
  • протокол не содержит логики исполнения сделок;
  • протокол не зависит от Runtime;
  • протокол не зависит от Coordinator internals.

Статус: Passed


Code Review

Проверка пройдена.

Замечаний нет.

Статус: Passed


Acceptance

Build завершён.

Выполнены:

  • Architecture Design
  • Architecture Review
  • ADR
  • Build Design
  • Implementation
  • Compile Check
  • Domain Review
  • Code Review
  • Documentation

Статус Build:

Accepted

Следующий Build

Build 017.3

Trading Exceptions

trading/exceptions.py