Як бот захищає позицію

Оновлено:

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

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

Перш ніж виставити заявку, сервіс рахує план угоди: ціну входу, обсяг, стоп і тейки. Усі округлення йдуть у гірший для вас бік, тож реальна угода може бути кращою за план, але не гіршою: стоп спрацьовує не пізніше запланованого, тейк забирає не більше запланованого.

Також перевіряється плече. Якщо ліквідація настала б раніше за стоп, угоду не відкривають. Докладно в статті плече й ліквідація на ф'ючерсах.

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

2. Вхід

Бот виставляє лімітну заявку на продаж. За замовчуванням це заявка «лише maker» (post-only): якщо б вона одразу виконалась по ринку, біржа її відхиляє, тому комісія відповідає розрахунковій. Заявка чекає заданий час («Чекати на виконання, секунд»). Якщо не виконалась, її скасовують, і угоди немає: у списку це «скасовано», причина «скасована за терміном».

3. Одразу після виконання: стоп і тейки

Коли заявка на вхід виконалась (навіть частково), бот ставить захист одним набором.

  • Стоп-лос. Це умовний ордер, що закриває всю позицію (closePosition) і спрацьовує за маркувальною ціною. Оскільки він закриває «все, що є», його не треба перераховувати при частковому виконанні входу чи після тейків.
  • Тейк-профіти. Кожен тейк це умовний ордер на свою частку обсягу. Остання частка закриває весь залишок. Якщо вхід виконався частково, частки тейків пропорційно перераховуються.
  • Якщо біржа відхилила окремий тейк, а ціна вже пройшла його рівень, бот одразу закриває цю частку по ринку, щоб не лишити позицію з ціллю, до якої ціна вже не дійде. Стоп і решта тейків від цього не страждають.

4. Під час угоди

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

5. Якщо захист поставити не вдалось

Це найнебезпечніший момент: позиція вже відкрита, а захисту немає. Бот не чекає, поки людина помітить. Він скасовує свої ордери й закриває позицію по ринку. Причина записується як «закрито по ринку - не вдалось захистити» (внутрішня назва protection_failed). Результат такої угоди може бути і мінусовим, і нульовим, і навіть плюсовим, але ціль тут не прибуток, а не лишити відкритий шорт без стопа.

6. Відновлення після збоїв

Сервіс це окремий процес, який може перезапускатись, а зв'язок з біржею може обриватись. Тому він не покладається на власну пам'ять.

  • При кожному запуску сервіс для кожної записаної як відкрита позиції питає біржу, що з нею насправді. Якщо вона вже закрита, угоду дописують як закриту, із фактичними ціною виходу, комісіями та фандингом, взятими з історії біржі. Якщо ще відкрита, бот підхоплює її й ставить захист, якщо його немає. Якщо захисту поставити вже не можна (наприклад, ціна вже за рівнем, де мав стояти стоп), позицію закривають по ринку.
  • При кожному відновленні потоку подій біржі така звірка повторюється для вашого акаунта: подія, що сталась між обривом і новим з'єднанням, могла загубитись, і позиція лишилась би без захисту до наступного перезапуску. Позиції, які бот і так веде, при цьому не чіпають, щоб не забути, які тейки вже спрацювали.
  • Позиція без запису. Якщо на біржі знайшли позицію, про яку сервіс нічого не знає, вона з'являється на сторінці «Угоди» у блоці «Непризначені позиції» з позначкою, чи є стоп. Там її можна прив'язати до бота кнопкою «Прив'язати».
  • Пропущена подія закриття. Якщо подія про закриття загубилась, сервіс відновлює угоду з історії біржі, щоб у списку була реальна ціна виходу й правильна причина, а не порожній рядок.

7. Ліміти ризику

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

Межі захисту

Чесно про те, що цей захист не вирішує.

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

Як читати результат уже закритої угоди, описано в статті сторінка «Угоди» та причини виходу.

Часті питання

Що буде, якщо бот не зміг поставити стоп-лос?

Бот не тримає позицію без захисту: він скасовує свої ордери й закриває позицію по ринку. У списку угод така угода має причину «закрито по ринку - не вдалось захистити».

Що станеться з відкритою угодою, якщо сервіс перезапустили?

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

Чи гарантує захист, що збиток не перевищить стоп?

Ні. Стоп спрацьовує по ринку, і при різкому русі виконання може бути гіршим. Захист зменшує ризик, а не знімає його.

Чи можна зупинити всі боти одразу після великого збитку?

Є денний ліміт збитку: коли реалізований збиток за добу доходить до заданої частки депозиту, сервіс вимикає ботів. Після цього їх треба запускати вручну.

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