Руководство по интеграции
Анализ просадки виртуального скальпера 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 преждевременных выходов и сбивало общую статистику.
### 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 преждевременных выходов и сбивало общую статистику.