feat: 07.4.1 base strategy + 07.4.2 strategy registry + docs sync

This commit is contained in:
2026-04-29 23:26:46 +03:00
parent 7c8895c3a5
commit 80f29443d4
22 changed files with 961 additions and 237 deletions

View File

@@ -0,0 +1,122 @@
# 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

View File

@@ -0,0 +1,102 @@
# 07.4.2 — Strategy Registry
## Цель
Создать централизованный реестр стратегий:
- управление стратегиями;
- динамический выбор;
- подготовка plug-in архитектуры.
---
## Проблема
После 07.4.1:
- стратегия захардкожена;
- нет переключения;
- нет масштабируемости.
---
## Решение
Добавлен StrategyRegistry:
AutoTradeService → StrategyRegistry → Strategy
---
## Архитектура
### StrategyRegistry
Хранилище стратегий:
- HOLD
- TREND
- GRID
- SCALP
(пока все = HoldStrategy)
---
### Методы
get(name):
- нормализация имени
- возврат стратегии
- fallback → HOLD
names():
- список доступных стратегий
---
### Интеграция
AutoTradeService:
_get_strategy() → StrategyRegistry.get()
run_cycle:
→ strategy.analyze()
→ state.last_signal
---
## Поведение
Теперь:
- стратегия выбирается через state.strategy
- fallback при ошибках
- все стратегии пока безопасные
---
## Ограничения
- нет реальных стратегий
- нет логирования
- нет execution
---
## Следующий шаг
07.4.3 — Trend Strategy
---
## Итог
✔ добавлен StrategyRegistry
✔ реализован fallback
✔ интеграция с AutoTradeService
✔ подготовка plug-in архитектуры