8.1 KiB
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 013–016 сформировали аналитическую подсистему Market Intelligence, то начиная с Build 017 начинается построение Trading Layer — подсистемы принятия торговых решений.
Это завершает проектирование аналитической части платформы и создаёт фундамент для разработки профессиональной системы управления торговлей.
Следующий Build
Build 017.1
Trading Models
trading/common/models.py