Как бот защищает позицию

Обновлено:

Когда спрашивают, как бот защищает позицию, ответ состоит из нескольких слоёв: защитные ордера на самой бирже, проверки перед входом, восстановление после сбоев и лимиты на риск. Ни один слой по отдельности ничего не гарантирует, но вместе они уменьшают вероятность худших сценариев. Ниже по порядку, что именно делает Snapback.

1. Перед входом: размер и плечо

Прежде чем выставить заявку, сервис считает план сделки: цену входа, объём, стоп и тейки. Все округления идут в худшую для вас сторону, поэтому реальная сделка может оказаться лучше плана, но не хуже: стоп срабатывает не позже запланированного, тейк забирает не больше запланированного.

Также проверяется плечо. Если ликвидация наступила бы раньше стопа, сделку не открывают. Подробно в статье плечо и ликвидация на фьючерсах.

Перед каждой заявкой действуют дополнительные проверки: не отключён ли бот, нет ли уже позиции по этой монете, не прошла ли пауза после предыдущей сделки, не превышены ли «Макс. одновременных позиций» и «Макс. суммарная маржа». Также проверяется «Дневной лимит убытка».

2. Вход

Бот выставляет лимитную заявку на продажу. По умолчанию это заявка «только maker» (post-only): если бы она сразу исполнилась по рынку, биржа её отклоняет, поэтому комиссия соответствует расчётной. Заявка ждёт заданное время («Ждать исполнения, секунд»). Если не исполнилась, её отменяют, и сделки нет: в списке это «отменено», причина «отменена по истечении срока».

3. Сразу после исполнения: стоп и тейки

Когда заявка на вход исполнилась (даже частично), бот ставит защиту одним набором.

  • Стоп-лосс. Это условный ордер, который закрывает всю позицию (closePosition) и срабатывает по маркировочной цене. Поскольку он закрывает «всё, что есть», его не нужно пересчитывать при частичном исполнении входа или после тейков.
  • Тейк-профиты. Каждый тейк — условный ордер на свою долю объёма. Последняя доля закрывает весь остаток. Если вход исполнился частично, доли тейков пропорционально пересчитываются.
  • Если биржа отклонила отдельный тейк, а цена уже прошла его уровень, бот сразу закрывает эту долю по рынку, чтобы не оставить позицию с целью, до которой цена уже не дойдёт. Стоп и остальные тейки от этого не страдают.

4. Во время сделки

  • Когда сработал тейк, бот фиксирует это и, если включён «Безубыток», переносит стоп: стоп в безубыток. Перенос — это отмена старого стопа и выставление нового, поэтому на мгновение стоп отсутствует.
  • Когда сработал последний тейк или стоп, бот отменяет остальные ордера по монете. На фьючерсах нет автоматической связки «одно исполнилось, другое отменилось», поэтому остатки убирает сам бот.
  • На каждое событие (заявка, тейк, безубыток, закрытие) приходит сообщение в Telegram, если он подключён: как подключить Telegram.

5. Если защиту поставить не удалось

Это самый опасный момент: позиция уже открыта, а защиты нет. Бот не ждёт, пока человек заметит. Он отменяет свои ордера и закрывает позицию по рынку. Причина записывается как «закрыта по рынку - не удалось защитить» (внутреннее название protection_failed). Результат такой сделки может быть и минусовым, и нулевым, и даже плюсовым, но цель здесь не прибыль, а не оставить открытый шорт без стопа.

6. Восстановление после сбоев

Сервис — это отдельный процесс, который может перезапускаться, а связь с биржей может обрываться. Поэтому он не полагается на собственную память.

  • При каждом запуске сервис для каждой записанной как открытая позиции спрашивает биржу, что с ней на самом деле. Если она уже закрыта, сделку дописывают как закрытую, с фактическими ценой выхода, комиссиями и фандингом, взятыми из истории биржи. Если ещё открыта, бот подхватывает её и ставит защиту, если её нет. Если защиту поставить уже нельзя (например, цена уже за уровнем, где должен стоять стоп), позицию закрывают по рынку.
  • При каждом восстановлении потока событий биржи такая сверка повторяется для вашего аккаунта: событие, случившееся между обрывом и новым соединением, могло потеряться, и позиция осталась бы без защиты до следующего перезапуска. Позиции, которые бот и так ведёт, при этом не трогают, чтобы не забыть, какие тейки уже сработали.
  • Позиция без записи. Если на бирже нашли позицию, о которой сервис ничего не знает, она появляется на странице «Сделки» в блоке «Неназначенные позиции» с пометкой, есть ли стоп. Там её можно привязать к боту кнопкой «Привязать».
  • Пропущенное событие закрытия. Если событие о закрытии потерялось, сервис восстанавливает сделку из истории биржи, чтобы в списке была реальная цена выхода и правильная причина, а не пустая строка.

7. Лимиты риска

  • «Макс. одновременных позиций» и «Макс. суммарная маржа, % депозита» ограничивают, сколько сделок и маржи открыто одновременно.
  • «Пауза по монете, мин» не даёт открывать новую сделку по той же монете сразу после предыдущей.
  • «Дневной лимит убытка, %»: сервис считает реализованный результат за сутки (по UTC) вместе с комиссиями и фандингом. Если убыток достиг заданной доли депозита, ботов отключают, а ожидающие входа заявки отменяют. На странице «Боты» есть кнопка «Сбросить счётчик и запустить ботов», так что решение о возврате к торговле остаётся за вами. Нереализованный убыток открытых позиций в этот лимит не входит.
  • Также существует аварийный выключатель на уровне сервиса, который запрещает новые сделки или закрывает все позиции.

Границы защиты

Честно о том, что эта защита не решает.

  • Она не гарантирует цену выхода: стоп и тейки срабатывают по рынку.
  • Она не работает, если недоступна сама биржа или ваш ключ отозван либо ограничен.
  • Включённый бот ничего не делает, если не запущен сканер рынка: на странице «Боты» тогда видно предупреждение. Защитные ордера, которые уже стоят на бирже, продолжают действовать и без сервиса.
  • Она не меняет риск стратегии: у шорта против пампа бывают убытки, и сериями.

Как читать результат уже закрытой сделки, описано в статье страница «Сделки» и причины выхода.

Частые вопросы

Что будет, если бот не смог поставить стоп-лосс?

Бот не держит позицию без защиты: он отменяет свои ордера и закрывает позицию по рынку. В списке сделок у такой сделки причина «закрыта по рынку - не удалось защитить».

Что станет с открытой сделкой, если сервис перезапустили?

При каждом запуске и после восстановления связи с биржей сервис заново сверяет свои записи с реальным состоянием на Binance: подхватывает открытые позиции, ставит защиту, если её нет, или закрывает позицию, если защиту поставить уже нельзя.

Гарантирует ли защита, что убыток не превысит стоп?

Нет. Стоп срабатывает по рынку, и при резком движении исполнение может быть хуже. Защита уменьшает риск, а не снимает его.

Можно ли остановить всех ботов сразу после большого убытка?

Есть дневной лимит убытка: когда реализованный убыток за сутки доходит до заданной доли депозита, сервис отключает ботов. После этого их нужно запускать вручную.

Читайте также