07.4.4.1.5 — Runtime Window Cleanup & Symbol Lifecycle Isolation
This commit is contained in:
@@ -467,6 +467,32 @@
|
||||
- подготовлена база для анализа частоты причин отказа от входа
|
||||
- подготовлена база для adaptive thresholds и настройки чувствительности стратегии
|
||||
|
||||
#### 07.4.4.1.5 ✅ Runtime Window Cleanup & Symbol Lifecycle Isolation
|
||||
- внедрён lifecycle cleanup runtime-окон стратегий
|
||||
- BaseStrategy расширен методом reset_runtime()
|
||||
- TrendStrategy и ScalpStrategy получили runtime cleanup API
|
||||
- StrategyRegistry получил reset_runtime() и reset_all_runtime()
|
||||
- устранено смешивание _price_window между разными активами
|
||||
- устранено смешивание runtime между TREND и SCALP
|
||||
- runtime окна теперь изолированы по symbol lifecycle
|
||||
- runtime окна теперь изолированы по strategy lifecycle
|
||||
- при смене symbol очищается runtime старого и нового актива
|
||||
- при смене strategy очищается runtime обеих стратегий
|
||||
- устранены ложные BUY/SELL после переключения актива
|
||||
- устранены ложные сигналы после смены стратегии
|
||||
- AutoTradeService теперь полностью сбрасывает market diagnostics при reset
|
||||
- очищаются market_state / market_trend / market_volatility
|
||||
- очищаются market_analysis_interval / market_analysis_reason
|
||||
- очищаются entry_block_reason / entry_block_message
|
||||
- устранено визуальное залипание TREND_UP / TREND_DOWN в UI
|
||||
- после смены актива UI возвращается в состояние “⏳ Идёт анализ”
|
||||
- удалено дублирующее journal событие market_symbol_changed
|
||||
- journal приведён к single-result event модели
|
||||
- runtime lifecycle отделён от user-facing settings events
|
||||
- подготовлена база для multi-symbol runtime engine
|
||||
- подготовлена база для signal aging/reset system
|
||||
- подготовлена база для adaptive runtime memory management
|
||||
|
||||
---
|
||||
|
||||
### 07.4.5
|
||||
|
||||
@@ -443,6 +443,33 @@
|
||||
- подготовлена база для анализа частоты причин отказа от входа
|
||||
- подготовлена база для adaptive thresholds и настройки чувствительности стратегии
|
||||
|
||||
#### 07.4.4.1.5 ✅ Runtime Window Cleanup & Symbol Lifecycle Isolation
|
||||
- внедрён lifecycle cleanup runtime-окон стратегий
|
||||
- BaseStrategy расширен методом reset_runtime()
|
||||
- TrendStrategy и ScalpStrategy получили runtime cleanup API
|
||||
- StrategyRegistry получил reset_runtime() и reset_all_runtime()
|
||||
- устранено смешивание _price_window между разными активами
|
||||
- устранено смешивание runtime между TREND и SCALP
|
||||
- runtime окна теперь изолированы по symbol lifecycle
|
||||
- runtime окна теперь изолированы по strategy lifecycle
|
||||
- при смене symbol очищается runtime старого и нового актива
|
||||
- при смене strategy очищается runtime обеих стратегий
|
||||
- устранены ложные BUY/SELL после переключения актива
|
||||
- устранены ложные сигналы после смены стратегии
|
||||
- AutoTradeService теперь полностью сбрасывает market diagnostics при reset
|
||||
- очищаются market_state / market_trend / market_volatility
|
||||
- очищаются market_analysis_interval / market_analysis_reason
|
||||
- очищаются entry_block_reason / entry_block_message
|
||||
- устранено визуальное залипание TREND_UP / TREND_DOWN в UI
|
||||
- после смены актива UI возвращается в состояние “⏳ Идёт анализ”
|
||||
- удалено дублирующее journal событие market_symbol_changed
|
||||
- journal приведён к single-result event модели
|
||||
- runtime lifecycle отделён от user-facing settings events
|
||||
- подготовлена база для multi-symbol runtime engine
|
||||
- подготовлена база для signal aging/reset system
|
||||
- подготовлена база для adaptive runtime memory management
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 07.4.5
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
# 07.4.4.1.5 — Runtime Window Cleanup & Symbol Lifecycle Isolation
|
||||
|
||||
## Цель этапа
|
||||
|
||||
Устранить смешивание runtime-состояния между:
|
||||
- разными активами,
|
||||
- разными стратегиями,
|
||||
- разными lifecycle-сессиями автоторговли.
|
||||
|
||||
Этап стабилизирует:
|
||||
- `_price_window`,
|
||||
- signal tracking,
|
||||
- market diagnostics,
|
||||
- runtime memory.
|
||||
|
||||
---
|
||||
|
||||
# Проблема до внедрения
|
||||
|
||||
До этапа `07.4.4.1.5` runtime-окна стратегий жили бесконечно:
|
||||
|
||||
```python
|
||||
_price_window: dict[str, list[float]]
|
||||
```
|
||||
|
||||
Из-за этого возникали проблемы:
|
||||
|
||||
## 1. Смешивание активов
|
||||
|
||||
```text
|
||||
BTC → накопилось 8 цен
|
||||
↓
|
||||
переключение на ETH
|
||||
↓
|
||||
TREND уже имеет готовое окно
|
||||
↓
|
||||
ложный BUY/SELL
|
||||
```
|
||||
|
||||
## 2. Смешивание стратегий
|
||||
|
||||
```text
|
||||
TREND накопил runtime
|
||||
↓
|
||||
SCALP получил старый runtime
|
||||
↓
|
||||
моментальный сигнал
|
||||
```
|
||||
|
||||
## 3. Залипание market state
|
||||
|
||||
После смены актива UI мог показывать:
|
||||
|
||||
```text
|
||||
📉 Тренд · Нисходящий
|
||||
```
|
||||
|
||||
хотя новый актив ещё не анализировался.
|
||||
|
||||
## 4. Дублирование journal-событий
|
||||
|
||||
Одно изменение актива вызывало:
|
||||
- runtime market event,
|
||||
- user settings event.
|
||||
|
||||
Журнал становился шумным.
|
||||
|
||||
---
|
||||
|
||||
# Что внедрено
|
||||
|
||||
## 1. Runtime lifecycle API стратегий
|
||||
|
||||
Добавлен lifecycle hook:
|
||||
|
||||
```python
|
||||
def reset_runtime(self, symbol: str | None = None) -> None
|
||||
```
|
||||
|
||||
## 2. Runtime cleanup в TREND и SCALP
|
||||
|
||||
Теперь стратегии умеют:
|
||||
- очищать live runtime,
|
||||
- сбрасывать окна,
|
||||
- изолировать symbol runtime.
|
||||
|
||||
## 3. Runtime cleanup registry
|
||||
|
||||
В `StrategyRegistry` добавлены:
|
||||
|
||||
```python
|
||||
reset_runtime(...)
|
||||
reset_all_runtime()
|
||||
```
|
||||
|
||||
## 4. Symbol lifecycle isolation
|
||||
|
||||
При смене symbol:
|
||||
|
||||
```python
|
||||
StrategyRegistry.reset_runtime(previous_symbol)
|
||||
StrategyRegistry.reset_runtime(new_symbol)
|
||||
```
|
||||
|
||||
### Результат
|
||||
|
||||
```text
|
||||
BTC runtime уничтожается
|
||||
ETH runtime стартует с нуля
|
||||
```
|
||||
|
||||
## 5. Strategy lifecycle isolation
|
||||
|
||||
При смене стратегии:
|
||||
|
||||
```python
|
||||
StrategyRegistry.reset_runtime(previous_strategy)
|
||||
StrategyRegistry.reset_runtime(new_strategy)
|
||||
```
|
||||
|
||||
### Результат
|
||||
|
||||
- не наследуются старые окна,
|
||||
- не переносятся старые сигналы,
|
||||
- не переносится momentum.
|
||||
|
||||
## 6. Signal lifecycle cleanup
|
||||
|
||||
Теперь очищаются:
|
||||
|
||||
```python
|
||||
market_state
|
||||
market_trend
|
||||
market_volatility
|
||||
market_analysis_interval
|
||||
market_analysis_reason
|
||||
entry_block_reason
|
||||
entry_block_message
|
||||
```
|
||||
|
||||
### Результат
|
||||
|
||||
После смены актива UI показывает:
|
||||
|
||||
```text
|
||||
⏳ Рынок · Идёт анализ
|
||||
```
|
||||
|
||||
## 7. Journal cleanup
|
||||
|
||||
Удалено runtime событие:
|
||||
|
||||
```text
|
||||
market_symbol_changed
|
||||
```
|
||||
|
||||
Пользователю остаётся только итоговое событие:
|
||||
|
||||
```text
|
||||
Автоторговля | Актив изменён: ETH
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Итог архитектуры
|
||||
|
||||
## До этапа
|
||||
|
||||
```text
|
||||
Strategy runtime = бесконечная память
|
||||
```
|
||||
|
||||
## После этапа
|
||||
|
||||
```text
|
||||
Runtime привязан к:
|
||||
- symbol
|
||||
- strategy
|
||||
- lifecycle session
|
||||
```
|
||||
Reference in New Issue
Block a user