# 07.4.1 — BaseStrategy + SignalResult

## Цель

Создать базовую архитектуру стратегий:

- единый контракт для стратегий;
- стандартизированный результат сигнала;
- подготовка к расширяемой системе автоторговли.

---

## Проблема

До этого:

- логика сигналов была захардкожена;
- отсутствовала структура стратегий;
- невозможно масштабировать и добавлять новые алгоритмы.

---

## Решение

Введены базовые сущности:

StrategyContext → Strategy → SignalResult

---

## Архитектура

### StrategyContext

Контекст выполнения стратегии:

- symbol — инструмент
- status — режим (RUNNING / OBSERVING)
- risk_percent — риск

---

### BaseStrategy (Protocol)

Контракт стратегии:

analyze(context) → SignalResult

---

### SignalType

Типы сигналов:

- BUY
- SELL
- HOLD

---

### SignalResult

Результат анализа:

- signal — итоговый сигнал
- reason — причина
- confidence — уверенность
- payload — доп. данные

---

### HoldStrategy

Базовая безопасная стратегия:

- всегда возвращает HOLD;
- используется как default;
- предотвращает случайные сделки.

---

## Интеграция

Добавлено в AutoTradeService:

- _build_strategy_context()
- _get_strategy()
- использование strategy.analyze()

---

## Поведение

Теперь:

- каждый цикл вызывает стратегию;
- результат записывается в state:
  - last_signal
  - last_check_at

---

## Ограничения

- только HOLD стратегия
- нет логирования
- нет execution

---

## Следующий шаг

07.4.2 — Strategy Registry

---

## Итог

✔ введён BaseStrategy  
✔ введён SignalResult  
✔ реализован HoldStrategy  
✔ интеграция с AutoTradeService
