Drawdown Deep-dive

Sovereign Scalper: Глубокий анализ просадки

Published: 2026-06-13 · Trading

Анализ пяти критических уязвимостей в логике ведения позиций и фильтрации сигналов робота Sovereign Core, приведших к полной просадке виртуального капитала.

⚡ Быстрый ответ

  • Sovereign Core drawdown audit.
  • Identify 5 root causes: incomplete candle execution (df.iloc[-1]), sampling miss (interval desync), 0.3% trailing stop hyper-sensitivity, 1% capped swing stop loss, and legacy startup cleanup (0 PnL closes).
  • Recommend mitigation steps.
MemIR AI Agent Summary
Sovereign Core drawdown audit. Identify 5 root causes: incomplete candle execution (df.iloc[-1]), sampling miss (interval desync), 0.3% trailing stop hyper-sensitivity, 1% capped swing stop loss, and legacy startup cleanup (0 PnL closes). Recommend mitigation steps.

Executable Parameters

Contracts

RPC Endpoints

Constants

starting_capital: 1000
total_trades_analyzed: 1494
win_rate_percent: 22.69
net_loss_usd: -1708.61
profit_factor: 0.75

Safety Guards

Rule Max Limit Action On Breach
max_drawdown_stop 500 halt_trading

Руководство по интеграции

Анализ просадки виртуального скальпера Sovereign Core в период с апреля по июнь 2026 года выявил пять структурных дефектов в коде торговой логики:

### 1. Исполнение на незакрытой свече (Incomplete Candle)
Бот считывал паттерны BOS и SFP с последней строки датафрейма (`df.iloc[-1]`), которая представляет собой незакрытый, динамически формирующийся в реальном времени минутный или 5-минутный бар. Бот входил в сделку до того, как свеча закроется. В моменты сильных движений цена выходила за уровень свинга (генерируя ложный сигнал SFP/BOS), но затем откатывалась или пробивала его дальше, превращая контр-трендовый вход в ловушку.

### 2. Десинхронизация интервала сканирования (Sampling Miss)
Бот запускал сканирование рынка каждые 5 минут (`interval = 300`), но рассчитывал сигналы на 1-минутном и 5-минутном таймфреймах. При каждом запуске он проверял только ОДИН текущий бар (`df.iloc[-1]`). Предыдущие 4 балла (на 1m) полностью игнорировались. Бот упускал 80% подтвержденных сигналов, а те, что находил, оценивались хаотично.

### 3. Сверхчувствительный трейлинг-стоп (Trailing Stop 0.3%)
Трейлинг-стоп перемещал стоп-лосс на безубыток при +1R, а затем подтягивал его на расстоянии 0.3% от максимума при достижении +1.5R. BTC регулярно совершает волатильные шумы в 0.4%-0.7% даже во время сильных трендов. Любая прибыльная сделка немедленно выбивалась по трейлинг-стопу с копеечной прибылью, обрезая математическое ожидание прибыли, в то время как убыточные сделки закрывались по полноценному стопу.

### 4. Ограничение защитного стоп-лосса (Capped Stop Loss)
Для предотвращения слишком далеких стопов при экстремальных свингах код жестко ограничивал максимальную дистанцию стопа величиной 1% от цены входа. Если реальный свинг-уровень находился на расстоянии 1.5% или 2%, стоп-лосс сдвигался ближе, оказываясь прямо в зоне случайного рыночного шума. Робот закрывался с убытком до того, как структура свинга была нарушена.

### 5. Срез позиций при перезапусках (Orphan Cleanup)
(Исправлено в Wave 9). До мая 2026 года при каждом техническом перезапуске бот не восстанавливал сессии, а закрывал все открытые сделки по цене входа (`pnl_usd = 0.0`, причина `orphan_cleanup_startup`), что зафиксировало 566 преждевременных выходов и сбивало общую статистику.