# 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
```