feat: add market data architecture and complete migration through build 039

This commit is contained in:
2026-07-14 09:58:16 +03:00
parent 26deb861bc
commit a996f2f797
443 changed files with 80452 additions and 1335 deletions

View File

@@ -0,0 +1,126 @@
# Build №003 — Common Constants
## Файл
```text
app/src/trading/market_intelligence/common/constants.py
```
## Назначение
Создание общего набора архитектурных констант Market Intelligence.
Файл определяет безопасные диапазоны значений, ограничения диагностики, базовые настройки свежести данных и защитные ограничения аналитического слоя.
---
## Реализовано
Добавлены группы констант:
- диапазоны `score`;
- диапазоны `confidence`;
- диапазоны `probability`;
- диапазоны `weight`;
- значения по умолчанию;
- пороги человекочитаемой оценки;
- время устаревания аналитического результата;
- время жизни аналитического сигнала;
- ограничения количества зависимостей Engine;
- ограничения количества метрик;
- ограничения количества предупреждений и ошибок;
- базовая конфигурация таймфреймов;
- запрещённые торговые поля.
---
## Архитектурные решения
- `common/constants.py` содержит только архитектурные ограничения платформы;
- файл не содержит параметров технических индикаторов;
- файл не содержит параметров торговых стратегий;
- файл не содержит настроек открытия или закрытия сделок;
- константы не зависят от конкретного Engine;
- `FORBIDDEN_TRADING_FIELDS` вводит защиту границ между аналитикой и торговыми действиями.
---
## Compile Check
```text
PASSED
```
## Architecture Review
```text
PASSED
```
## Domain Review
```text
PASSED
```
## Обязательные замечания
Нет.
## Post Review Notes
### Решение №001
Архитектурные константы должны содержать только ограничения платформы.
В `common/constants.py` запрещается размещать:
- параметры технических индикаторов;
- параметры торговых стратегий;
- настройки открытия и закрытия сделок;
- параметры биржи;
- параметры управления позицией.
Такие константы должны размещаться внутри соответствующих Engine.
### Решение №002
Константы должны быть сгруппированы по смысловым разделам:
```text
Score
Confidence
Probability
Runtime
Diagnostics
Architecture
Timeframes
Safety
```
### Решение №003
Таймфреймы являются частью конфигурации платформы, а не жёстким ограничением архитектуры.
`DEFAULT_TIMEFRAMES` описывает базовую конфигурацию первого этапа Market Intelligence.
### Решение №004
Возраст результата анализа и возраст торгового сигнала являются разными понятиями.
- `DEFAULT_STALE_AFTER_SECONDS` — когда аналитический результат считается устаревшим.
- `DEFAULT_SIGNAL_TTL_SECONDS` — когда влияние аналитического сигнала начинает уменьшаться.
### Решение №005
Константы, относящиеся только к одному Engine, не должны находиться в `common/constants.py`.
Они должны переноситься в каталог соответствующего Engine.
---
## Статус
```text
ACCEPTED
```