Мы выпустили важное обновление торгового движка Martin Bots, направленное на повышение надёжности защитных ордеров и точности учёта результатов. Обновление уже применено — вам не нужно ничего делать, все боты автоматически работают с новой логикой.
📢 Что изменилось
Атомарная установка Take Profit и Stop Loss
Ранее при добавлении нового слоя (докупке) бот последовательно отменял старые ордера TP и SL, а затем выставлял новые с обновлёнными ценами. Между отменой и созданием проходило некоторое время, и в этот момент позиция оставалась без защиты. Если цена резко двигалась именно в этот промежуток, новый ордер мог не выставиться, и бот вынужден был закрывать позицию по рынку — зачастую по невыгодной цене.
Теперь бот использует биржевой механизм TP/SL на уровне позиции:

Это означает, что обновление цен Take Profit и Stop Loss происходит одним вызовом — без промежуточной отмены. Позиция всегда защищена, даже в момент пересчёта после добавления слоя. Кроме того, позиционные TP/SL автоматически покрывают 100% объёма позиции, поэтому проблема с несовпадением объёмов ордера и позиции полностью исключена.

Защита от дублирования закрытия
В редких случаях при резком движении цены несколько внутренних проверок могли одновременно обнаружить пробитие стоп-лосса и инициировать закрытие позиции параллельно. Это приводило к конфликтам: первый процесс корректно обрабатывал закрытие, а второй находил позицию уже закрытой и мог записать некорректный результат цикла.
Теперь все процессы закрытия координируются через единый механизм блокировки. Если закрытие уже выполняется, повторные попытки игнорируются. Это гарантирует, что каждый цикл обрабатывается ровно один раз.
Точный учёт PnL
Мы значительно улучшили систему получения реального PnL с биржи после закрытия цикла.
Раньше система делала один запрос к бирже через 60 секунд после закрытия. Если по какой-то причине запись ещё не появилась или не удавалось её сопоставить — оставался приблизительный расчёт, который мог отличаться от реального результата.

Теперь система делает до трёх попыток с увеличивающимися интервалами, использует расширенное окно поиска и несколько методов сопоставления записей. Помимо этого, даже аварийный расчёт PnL (если реальные данные временно недоступны) стал значительно точнее — система использует последнее известное значение нереализованного PnL вместо того, чтобы записывать нулевой результат.

📈 Как это отразится на торговле
Для большинства пользователей обновление работает незаметно — боты продолжают торговать как обычно, но с более высокой надёжностью «под капотом».
Основные улучшения, которые вы заметите:
- Меньше неожиданных убытков при докупке. Позиция больше не остаётся без защиты при добавлении слоёв, даже если цена двигается быстро.
- Точные результаты в истории циклов. PnL каждого цикла теперь соответствует реальному результату на бирже. Статусы «unknown» и нулевые результаты при фактическом убытке или прибыли остались в прошлом.
- Корректные причины закрытия. Каждый цикл получает правильный статус — Take Profit или Stop Loss — вместо неопределённого «unknown».
👤 Нужно ли что-то делать
Нет. Обновление уже активно для всех ботов. Если ваш бот сейчас работает, он уже использует новую логику. Перезапускать ботов не требуется.
Если у вас есть вопросы по обновлению, обращайтесь в поддержку.