feat: 07.4.1 base strategy + 07.4.2 strategy registry + docs sync
This commit is contained in:
122
docs/stages/stage-07_4_1-base_strategy.md
Normal file
122
docs/stages/stage-07_4_1-base_strategy.md
Normal 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
|
||||
102
docs/stages/stage-07_4_2-strategy_registry.md
Normal file
102
docs/stages/stage-07_4_2-strategy_registry.md
Normal 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 архитектуры
|
||||
Reference in New Issue
Block a user