Files
dzentra_bot/docs/market_intelligence/builds/build-017-trading-layer-architecture.md

8.1 KiB
Raw Blame History

Build 017 — Trading Layer Architecture

Engineering Architecture Document


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

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

Цель Build

Утвердить архитектуру Trading Layer как самостоятельного слоя платформы Dzentra.

Build не содержит реализации кода и фиксирует место Trading Layer в общей архитектуре системы.


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

После завершения Coordinator Layer аналитическая часть платформы заканчивается формированием объекта:

CoordinatorResult

Дальнейшая задача платформы — принять торговое решение на основе уже готовой аналитики.

Поэтому вводится отдельный слой Trading Layer.


Архитектурная роль

Trading Layer располагается между аналитической подсистемой Market Intelligence и слоем исполнения сделок.

Архитектурная цепочка выглядит следующим образом:

Market Data
        │
        ▼
Market Intelligence
        │
        ▼
CoordinatorResult
        │
        ▼
Trading Layer
        │
        ▼
TradingDecision
        │
        ▼
Execution Layer

Таким образом Trading Layer полностью отделяет аналитическую часть платформы от исполнения торговых операций.


Вход Trading Layer

Единственным входом является:

CoordinatorResult

Trading Layer не обращается напрямую к:

  • Engine;
  • Runtime;
  • Coordinator internals;
  • Market Data.

Вся аналитическая информация поступает исключительно через публичную модель CoordinatorResult.


Выход Trading Layer

Результатом работы Trading Layer станет:

TradingDecision

Модель TradingDecision будет разработана в последующих Build.

На данном этапе фиксируется только её архитектурная роль.


Ответственность Trading Layer

Trading Layer отвечает за:

  • интерпретацию аналитического состояния рынка;
  • применение торговых правил;
  • выбор торгового действия;
  • формирование итогового TradingDecision.

Trading Layer не отвечает за

Следующие задачи находятся вне ответственности Trading Layer:

  • анализ рыночных данных;
  • запуск Engine;
  • выполнение Runtime;
  • внутреннюю работу Coordinator;
  • исполнение ордеров;
  • управление биржевым API;
  • работу с Telegram;
  • управление позициями;
  • управление портфелем.

Архитектурная структура

Trading Layer повторяет архитектурный шаблон Runtime Layer и Coordinator Layer.

Предварительная структура:

trading/

├── common/
│
├── models.py
├── protocol.py
├── exceptions.py
├── validation.py
├── rules.py
└── service.py

Ответственность компонентов

models.py

Содержит модели Trading Layer.

Например:

  • TradingDecision;
  • диагностические модели;
  • служебные структуры.

protocol.py

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

Будущий интерфейс:

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

exceptions.py

Содержит собственную иерархию исключений Trading Layer.

Не использует исключения Coordinator Layer.


validation.py

Проверяет корректность входного CoordinatorResult.

Не содержит торговых правил.


rules.py

Центральный компонент Trading Layer.

Отвечает за:

  • интерпретацию аналитики;
  • применение торговых правил;
  • выбор итогового торгового решения;
  • формирование TradingDecision.

service.py

Единая публичная точка входа Trading Layer.

Связывает:

Validation
        │
        ▼
Rules

и предоставляет единый API внешним слоям платформы.


Ограничения зависимостей

Trading Layer не должен иметь прямых зависимостей от:

  • Engine Layer;
  • Runtime internals;
  • Coordinator internals;
  • Exchange API;
  • Telegram;
  • базы данных;
  • EventBus.

Взаимодействие с аналитической подсистемой осуществляется исключительно через CoordinatorResult.


Architecture Review

Проверка подтвердила:

  • Trading Layer является самостоятельным архитектурным слоем;
  • аналитика полностью отделена от торговых решений;
  • определены чёткие входные и выходные контракты;
  • соблюдена изоляция между слоями платформы.

Статус: Passed


Architecture Decision (ADR)

Принято решение выделить принятие торговых решений в отдельный слой платформы.

Trading Layer использует исключительно результат Coordinator и формирует независимый объект TradingDecision, который в дальнейшем станет входом для Execution Layer.

Статус: Accepted


Последовательность Build 017.x

План дальнейшего развития Trading Layer:

017      Trading Layer Architecture

017.1    Trading Models
017.2    Trading Protocol
017.3    Trading Exceptions
017.4    Trading Validation
017.5    Trading Rules
017.6    Trading Service

Acceptance

Build завершён.

Выполнены:

  • Development Strategy
  • Architecture Design
  • Architecture Review
  • Architecture Decision (ADR)
  • Build Design
  • Documentation

Build не содержит реализации программного кода, поэтому этапы Implementation и Compile Check не требуются.

Статус Build:

Accepted

Итог

Build 017 открывает новый этап развития платформы Dzentra.

Если Build 013016 сформировали аналитическую подсистему Market Intelligence, то начиная с Build 017 начинается построение Trading Layer — подсистемы принятия торговых решений.

Это завершает проектирование аналитической части платформы и создаёт фундамент для разработки профессиональной системы управления торговлей.


Следующий Build

Build 017.1

Trading Models

trading/common/models.py