Торговий бот для торгівлі на основі аналізу відкритого інтересу для USDT-контрактів біржі Bybit
Торговий бот для торгівлі на основі аналізу відкритого інтересу для USDT-контрактів біржі Bybit використовує ідею пошуку аномального розходження ціни активу і відкритого інтересу.
На чому побудований бот і в чому його ринкова перевага
Головна перевага бота полягає у відмові від простого аналізу лише ціни (Price Action). Він шукає приховані маніпуляції та дисбаланси між реальною поведінкою ціни та діями масиву гравців на ринку (відкритим інтересом і співвідношенням позицій).
Бот відбирає найліквідніші ф’ючерсні контракти за добовим обсягом торгів, що захищає від торгівлі на “мертвих” чи малоліквідних монетах, де можливі випадкові цінові викиди.
Як працює логіка бота (покроково)
- Формування базового показника (спреду). Бот паралельно завантажує історію свічок та дані відкритого інтересу, синхронізуючи їх за часом. На основі їхніх відхилень розраховується різниця (спред). Коли цей показник сильно відхиляється від нуля, це сигналізує про аномалію: наприклад, ціна різко падає, але масового закриття позицій не відбувається (або навпаки, набирається занадто багато попутників), що створює передумови для розвороту.
- Динамічні межі (конверти волатильності). Навколо цього показника розбіжності бот будує адаптивний коридор на основі істинного діапазону волатильності (ATR). Межі цього коридору автоматично звужуються або розширюються залежно від ринкових умов.
-
Потрійний фільтр для входу в угоду. Бот ніколи не відкриває позицію лише за однією умовою. Сигнал на покупку або продаж формується виключно за збігом трьох факторів:
-
Вихід за межі: Показник розбіжності має перетнути критичну екстремальну межу коридору. Бот «пам’ятає» цей стан стресу протягом заданого часового вікна.
-
Імпульсне підтвердження: Індикатор імпульсу (RSI) має підтвердити виснаження руху. Наприклад, для покупки індикатор повинен спершу зайти в зону перепроданості, а потім розвернутися і вийти з неї. Це страхує від передчасного заходу в занадто сильний тренд.
-
Фільтр натовпу (Long/Short індекс): Алгоритм підтверджує напрямок торгівлі: відкриває Long лише при значенні індексу в зоні 80–100, коли на ринку домінують лонги та покупці, і відкриває Short при падінні індексу до 0–20, коли переважають шорти та продавці. Тобто, підтримка моментуму.
-
-
Управління ризиками та усереднення. Якщо позиція пішла проти бота, він не набиває сітку ордерів на кожному мікро-відході ціни. Усереднення відбувається тільки тоді, коли на ринку знову виникає повноцінний новий сигнал (повторний збіг аномалії, імпульсу RSI та настроїв натовпу) через визначену часову паузу. При цьому обсяг кожної наступної докупки може збільшуватися за математичною прогресією (мартінгейл).
-
Двохетапний вихід з позиції (Тейк-профіт):
-
Швидкий фінансовий вихід: Для кожної позиції одразу виставляється лімітний ордер на фіксований відсоток прибутку від середньої ціни входу, щоб забрати раптовий імпульс.
-
Статистичний вихід: Паралельно бот моніторить розбіжність: щойно ринкова аномалія згасає і показник повертається до нормальних внутрішніх меж, бот закриває угоду за ринковою ціною.
-
Інструкція
Давайте розглянемо інструкцію по експлуатації бота, та пройдемось по усім налаштуванням. Вікно підключення до біржі:
Після запуску програми відкривається вікно авторизації. Щоби торгувати на основному рахунку, потрібно ввести відкритий ключ (API Key) і секретний ключ (API Secret). Програма перевіряє API-ключ через Bybit, отримує ID акаунта та виконує вбудовану перевірку партнерської прив’язки. Якщо перевірка не пройдена, основне вікно бота не відкриється.
Якщо ви плануєте торгувати на субакаунті, то натисніть галочку “Торгувати на субакаунті”:
Тут потрібно ввести ключі від основного акаунта (можна для читання, це тільки для перевірки приналежності субакаунта), і у розділі “ключі субакаунта” ввести ключі від субакаунта, де буде торгувати бот.
Основний API-ключ використовується для отримання списку субакаунтів. Після цього програма перемикається на ключі субакаунта та перевіряє, чи дійсно він належить вказаному основному акаунту. Якщо список субакаунтів отримати неможливо, програма окремо повідомляє про необхідність дозволу Subaccount для основного API-ключа.
Після успішної авторизації саме ключі субакаунта стають активними для торгової частини програми.
Якщо ви не знаєте як створити API ключі, ось тут описано.
Після успішного підключення програма автоматично зберігає введені ключі. Вони зберігаються не відкритим текстом, а зашифрованими. Для шифрування використовується інформація прив’язка до комп’ютера/сервера. При наступному запуску програма автоматично намагається завантажити й розшифрувати збережені ключі.
Оскільки ключ шифрування залежить від комп’ютера, просте копіювання папки програми на інший комп’ютер або в інший профіль Windows може призвести до того, що старі API-ключі більше не розшифруються. Це є заходи безпеки. І у такому випадку їх потрібно ввести повторно.
Після успішного підключення до Bybit відкривається основне вікно торгового бота. Основне вікно розділене на декілька функціональних блоків: управління ботом, налаштування торгової стратегії, графік, список відкритих позицій та журнал роботи. Пройдемось по блокам.
Блок «Управління»
Даний блок знаходиться у верхній частині програми та призначений для управління роботою торгового бота, а також вибору контракту для перегляду на графіку. У блоці присутні кнопки «Старт», «Стоп», «Закрити усі угоди», список для вибору ф’ючерсного контракту та кнопка «Побудувати дані».
Для запуску автоматичної торгівлі натискаємо кнопку «Старт». Перед запуском бот збереже поточні налаштування та сформує список контрактів, які відповідають встановленому фільтру торгового обсягу. Після цього блок налаштувань буде заблокований і бот почне автоматично аналізувати ринок та управляти позиціями.
Для зупинки автоматичної торгівлі використовується кнопка «Стоп». Важливо розуміти, що кнопка «Стоп» не закриває вже відкриті позиції. Вона зупиняє подальшу автоматичну роботу торгового модуля. Позиції та активні ордери при цьому залишаються на біржі. Також зупинка не завжди відбувається моментально. Якщо бот уже виконує поточний цикл аналізу, частина розпочатих операцій може завершитися перед повною зупинкою.
Кнопка «Закрити усі угоди» призначена для екстреного виходу з ринку. Після її натискання платформа додатково запитає підтвердження. Якщо користувач погодиться, бот спочатку скасує активні ордери, а потім спробує закрити всі відкриті ф’ючерсні позиції ринковими ордерами.
Важливо! Дана функція працює зі всіма відкритими ф’ючерсними позиціями на підключеному акаунті Bybit, а не лише з позиціями, які були відкриті ботом. Тому для роботи торгового бота рекомендується використовувати окремий субакаунт.
У правій частині блоку знаходиться список доступних контрактів. Тут можна вибрати потрібний інструмент для виводу на графік.
Після вибору інструменту натискаємо кнопку «Побудувати дані». Бот завантажить актуальні свічки, відкритий інтерес, Long/Short Ratio, позиції, ордери та історію угод і побудує аналітичні графіки по вибраному контракту. Цю функцію можна використовувати незалежно від автоматичної торгівлі — наприклад, для ручного аналізу потрібного контракту.
Якщо встановити значення у полі “Плече” і натиснути “Встановити“, то бот спробує встановити вказане плече по усім торговим парам.
Блок «Графік»
Основну частину лівої сторони програми займає графічний модуль. Він призначений не лише для відображення ціни, а й для візуального контролю всіх основних даних, які використовує торгова стратегія. Графічний модуль складається із чотирьох синхронізованих областей:
- графік ціни та відкритого інтересу;
- графік Spread;
- графік RSI;
- графік Long/Short Index.
При зміні масштабу одного графіка часовий масштаб інших графіків також синхронізується. Це дозволяє аналізувати всі показники на одному й тому самому часовому відрізку.
Графік ціни та Open Interest
У верхній частині відображається звичайний свічковий графік вибраного ф’ючерсного контракту. Разом із ціною на правій шкалі синьою лінією виводиться Open Interest – відкритий інтерес.
Відкритий інтерес – це загальна кількість відкритих ф’ючерсних контрактів, які на даний момент залишаються активними на ринку.
Також безпосередньо на ціновому графіку бот відображає поточні відкриті позиції. Для позиції показується:
- напрямок Long або Short;
- обсяг;
- середня ціна входу;
- поточний нереалізований PnL.
Long-позиція позначається зеленою лінією, Short – червоною. На цьому ж графіку відображаються активні ордери. ReduceOnly-ордери (тільки скорочення), які призначені для фіксації позиції, підписуються як «Тейк-профіт».
Також бот наносить на графік історію виконаних угод. Покупки позначаються зеленими маркерами, продажі – червоними. Біля кожної операції показується обсяг та ціна виконання. Таким чином, на одному графіку можна побачити не тільки рух ринку, а й фактичні дії торгового бота.
Графік Spread
Другий графік показує основний кількісний показник торгової стратегії – Spread між стандартизованою ціною та відкритим інтересом. Бот окремо стандартизує ціну та Open Interest через Z-score, після чого розраховує:
Spread = Z-score ціни − Z-score Open Interest
Навколо середнього значення Spread будуються динамічні діапазони. На графіку відображаються:
- поточний Spread;
- його середня лінія;
- зовнішні межі екстремального відхилення;
- внутрішні межі для виходу з позиції.
Зовнішні межі використовуються при формуванні торгового сигналу, а внутрішні — як один із механізмів закриття вже відкритої позиції.
Графік RSI
Третій блок показує класичний індикатор RSI для вибраного контракту. На графіку додатково нанесені два рівні, задані у налаштуваннях:
- Купівля RSI;
- Продаж RSI.
Також показується нейтральний рівень 50. RSI використовується як підтверджуюча частина торгового сигналу. Для Long бот шукає перетин рівня «Купівля RSI» знизу вверх. Для Short – перетин рівня «Продаж RSI» зверху вниз.
Графік Long/Short Index
Найнижчий графік показує Long/Short Index. Бот отримує Long/Short Ratio з Bybit та перетворює його у відносний індекс від 0 до 100 відносно його локального діапазону. На графіку нанесені два основні рівні:
80;20.
Для відкриття Long торговий алгоритм використовує зону 80–100. Для Short — 0–20. Важливо розуміти, що значення 80 тут не означає, що «80% трейдерів знаходяться у Long». Це нормалізований внутрішній індекс, який показує положення поточного Long/Short Ratio відносно його недавнього діапазону.
Блок «Налаштування»
У правій верхній частині програми знаходиться основний блок налаштувань торгової стратегії. Перед натисканням кнопки «Старт» необхідно перевірити всі значення, оскільки саме на основі цих параметрів бот буде відкривати, усереднювати та закривати реальні ф’ючерсні позиції.
Після запуску торгового модуля блок налаштувань автоматично блокується. Для зміни параметрів спочатку потрібно зупинити бота. Розглянемо поля окремо.
«Обсяг угоди, %»
У даному полі вказується розмір першого входу в позицію у відсотках від доступного USDT-балансу ф’ючерсного акаунта. Наприклад, якщо доступний баланс становить 1 000 USDT, а у полі встановлено 1%, бот розрахує початкову позицію приблизно на 10 USDT. Після цього розрахований обсяг приводиться до дозволеного Bybit кроку контракту. Якщо отриманий ордер менший за мінімально дозволений біржею, позиція не відкривається.
«Усереднень (макс)»
Вказує максимально дозволену кількість етапів збільшення вже відкритої позиції. Усереднення проводиться не просто після руху ціни проти позиції. Для нього повинен повторно виникнути повноцінний торговий сигнал у тому самому напрямку. Тобто Long-позиція усереднюється тільки при повторному Long-сигналі, а Short – при повторному Short-сигналі.
«Час між усеред. (хв)»
Вказує мінімальний час між попереднім входом у позицію та можливістю наступного усереднення. Наприклад, якщо встановлено 60, повторне усереднення може відбутися не раніше ніж через 60 хвилин після попереднього входу або попереднього усереднення. Сам факт того, що цей час минув, не запускає усереднення – для цього все одно потрібен новий торговий сигнал.
«Мартінгейл»
Встановлює коефіцієнт зміни обсягу наступних усереднень. При значенні 1 додаткового математичного збільшення обсягу немає. Якщо значення більше 1, кожне наступне усереднення стає більшим відповідно до заданого коефіцієнта. Використовувати даний параметр потрібно обережно, оскільки агресивне збільшення коефіцієнта може дуже швидко збільшувати загальний обсяг позиції.
«Одночасно (Long)»
Вказує максимальну кількість Long-позицій, які бот може тримати одночасно. Наприклад, якщо встановлено 3, після відкриття трьох Long нові сигнали на покупку будуть пропускатися до моменту закриття хоча б однієї позиції.
«Одночасно (Short)»
Аналогічне обмеження для Short-позицій. Бот окремо контролює кількість Long та Short і не відкриває нову позицію, якщо відповідний ліміт уже досягнутий.
«Мін обсяг (тис USDT)»
Мінімальний 24-годинний торговий обсяг контракту, який бот буде аналізувати для відкриття нових позицій. Значення вводиться у тисячах USDT. Наприклад:
10000 = 10 000 000 USDT
Контракти із меншим добовим обсягом будуть відсіяні. Це зроблено, щоби можна було відсіяти неліквіди.
«Макс обсяг (тис USDT)»
Максимальний дозволений 24-годинний торговий обсяг контракту. Також задається у тисячах USDT. Якщо встановити значення 0, верхня межа не використовується.
Таким способом можна обмежити торгову стратегію певним сегментом ринку – наприклад, виключити як зовсім неліквідні контракти, так і найбільші криптовалюти (це корисно, якщо торгувати тільки в шорт – “шлакові” монети падають краще).
«Таймфрейм»
Робочий таймфрейм торгової системи. Доступні:
1m, 5m, 15m, 30m, 1h, 4h.
На вибраному таймфреймі бот отримує цінові свічки, Open Interest та розраховує всі основні індикатори.
«Період (спред)»
Основний розрахунковий період Spread. Він використовується для розрахунку середньої лінії та динамічних діапазонів Spread. Також цей параметр використовується при нормалізації Long/Short Ratio у внутрішній індекс від 0 до 100.
«Відхилення (розт)»
Встановлює відстань зовнішнього діапазону Spread від його середнього значення (так звана “розтяжка” волатильності). Саме вихід Spread за дану межу створює першу частину потенційного торгового сигналу. Чим більше значення, тим більш екстремального відхилення потрібно дочекатися.
«Відхилення (вихід)»
Встановлює внутрішню межу Spread, яка використовується для автоматичного виходу з уже відкритої позиції. Для Long бот закриває позицію при досягненні верхньої Exit-межі. Для Short – нижньої.
«Період RSI»
Встановлює період розрахунку індикатора RSI.
«Купівля RSI (рівень)»
Рівень RSI для підтвердження Long-сигналу. Бот чекає, коли RSI на закритих свічках перетне заданий рівень знизу вверх (вихід із зони перепроданості).
«Продаж RSI (рівень)»
Рівень RSI для підтвердження Short-сигналу. У цьому випадку необхідний перетин заданого рівня зверху вниз (вихід із зони перекупленості).
«Активний сигнал, хв»
Встановлює, скільки часу залишається актуальним попередній вихід Spread у екстремальну зону. Наприклад, при значенні 30 хв бот перевіряє, чи був необхідний екстремум Spread протягом попередніх 30 хвилин. Таким чином, вихід Spread за межу та підтвердження RSI не обов’язково повинні відбутися на одній свічці.
«Відображати свічок»
Вказує кількість історичних свічок, яку бот завантажує для аналізу та побудови графіків. Цей параметр впливає не тільки на візуальне відображення, але й на обсяг історичних даних, які використовуються при розрахунках. Тому кількість свічок повинна бути достатньою відносно встановленого періоду Spread та RSI.
«Тейк профіт, %»
Встановлює класичний тейк-профіт у відсотках від середньої ціни поточної позиції. Для Long тейк-профіт розташовується вище середньої ціни позиції, для Short – нижче. Ордер виставляється на весь поточний обсяг позиції як ReduceOnly.
Після усереднення бот автоматично перераховує середню ціну та за необхідності перебудовує тейк-профіт. Якщо встановити 0, процентний тейк-профіт не використовується. При цьому вихід за сигналом Spread продовжує працювати.
«Стоп лосс, %»
Встановлює класичний стоп-лосс у відсотках від середньої ціни поточної позиції. Якщо потрібно, щоби не було встановлено стоп-лосс, поставте у полі значення 0 (нуль).
«Пауза між угодами, хв»
Мінімальний проміжок часу між торговими діями та відкриттям наступної нової позиції. Якщо новий сигнал з’явився раніше, бот його пропустить та виведе відповідне повідомлення у журнал.
«Тільки вихід»
Даний режим призначений для припинення відкриття нових позицій. Якщо поставити галку, бот не буде сканувати вільні контракти для нового входу, але продовжить управляти позиціями, які вже відкриті.
Важлива особливість: режим «Тільки вихід» не відключає повторне усереднення вже відкритої позиції при виникненні нового сигналу. Тому, якщо потрібно повністю заборонити збільшення позицій, це необхідно враховувати окремо.
“Вихід по розвороту”
Вихід по розвороту – функція захисту від передчасного закриття позиції з малим прибутком або збитком при досягненні межі спреду.
Принцип роботи:
-
Контроль прибутку: Коли спред досягає сигнальної лінії виходу, бот перевіряє поточний PnL позиції:
-
Якщо прибуток досяг мінімального порогу (у 1%), позиція закривається миттєво.
-
Якщо прибуток менший за 1% (або позиція в мінусі), бот її не закриває, а переводить у режим «Очікування розвороту».
-
-
Очікування сигналу: У режимі очікування позиція ігнорує поточний PnL і чекає на підтвердження розвороту ринку додатково за двома індикаторами:
-
для Long:
RSI > 50таL/S Index < 50; -
для Short:
RSI < 50таL/S Index > 50.
-
-
Фіксація: Угода закривається ринковим ордером лише після виконання обох умов (досягнення межі спреду + перетин рівня 50 індикаторами RSI та L/S). Фактично, йде очікування повного розвороту по сигналу.
Блок «Відкриті позиції»
У правій центральній частині програми знаходиться таблиця «Відкриті позиції». У ній бот виводить актуальні ф’ючерсні позиції підключеного акаунта.
Таблиця містить:
- Пара – назва ф’ючерсного контракту;
- Ціна – середня ціна відкритої позиції;
- Об’єм – поточний обсяг;
- PnL, USDT – поточний нереалізований прибуток або збиток.
Для Long обсяг відображається позитивним числом, для Short – зі знаком мінус.
Також таблиця використовується для швидкої навігації по графіках. Якщо натиснути на потрібну позицію, бот автоматично завантажить графік відповідного контракту. Це дозволяє швидко перейти від загального списку позицій до детального аналізу конкретної угоди.
Блок «Логування»
У нижній правій частині основного вікна знаходиться блок «Логування». Тут у реальному часі виводиться інформація про роботу торгового бота.
У журналі можна побачити:
- запуск і завершення торгового циклу;
- баланс рахунку;
- кількість контрактів, які пройшли фільтрацію;
- знайдені Long та Short сигнали;
- відкриття нових позицій;
- усереднення;
- виставлення та перебудову тейк-профіту;
- закриття позицій;
- пропущені сигнали;
- перевищення лімітів Long або Short;
- дію паузи між угодами;
- помилки API та інші системні повідомлення.
Для зручності повідомлення розділені за кольорами:
- чорний – звичайна інформація;
- синій – системні повідомлення;
- темно-помаранчевий – попередження;
- червоний – помилки;
- темно-зелений – торгові операції.
Крім відображення у програмі, всі повідомлення автоматично записуються у папку Logs. Файл створюється окремо для кожного дня у форматі:
log_YYYYMMDD.txt
Наприклад:
log_20260907.txt
Якщо розмір одного файлу перевищує приблизно 5 МБ, бот автоматично створює наступний файл із додатковим номером. Таким чином, навіть якщо повідомлення вже зникло з вікна програми, до нього можна повернутися через лог-файл.
Як основне вікно працює в цілому
Після запуску торгового модуля платформа циклічно отримує актуальний стан акаунта Bybit та ринку. Спочатку бот перевіряє відкриті позиції та синхронізує їх зі своєю внутрішньою базою.
Якщо позиція була закрита безпосередньо на Bybit, бот видалить її зі своєї бази. Якщо навпаки – бот знайде на акаунті відкриту позицію, якої немає у його локальній базі, він додасть її та почне враховувати у подальшій роботі.
Далі бот обробляє вже відкриті позиції: перевіряє умови виходу, можливість усереднення та стан тейк-профіту. Після цього, якщо не активовано режим «Тільки вихід», платформа проходить по відібраних контрактах та шукає нові торгові сигнали.
Для відкриття позиції використовується поєднання трьох факторів:
Spread + RSI + Long/Short Index.
Для Long необхідно, щоб Spread перед цим знаходився у нижній екстремальній зоні, RSI підтвердив розворот перетином заданого рівня вверх, а Long/Short Index знаходився у зоні 80–100. Для Short умови дзеркальні: верхня екстремальна зона Spread, перетин RSI вниз та Long/Short Index у зоні 0–20.
Таким чином, основне вікно дозволяє одночасно керувати торговим ботом, змінювати параметри стратегії, спостерігати за відкритими позиціями та візуально контролювати дані, на основі яких приймаються торгові рішення.
Інші деталі торгового бота
Торговий бот є повністю безкоштовним. Єдина вимога – бути зареєстрованим за партнерським посиланням. Якщо у вас уже є акаунт на Bybit – то це не проблема, є просте рішення, як рахунок можна перенести (ось посилання).
Посилання для завантаження торгового бота.
Торговий бот працює під управлінням ОС Windows, тобто, якщо ви вибираєте сервер – зверніть на це увагу. Та й узагалі, я рекомендую запускати торгового бота на VPS (віртуальний приватний сервер). Особисто я використовую Zomro – висока якість і помірна ціна.
Також, по цьому боту є публічний моніторинг, щоби можна було проаналізувати його ефективність.
Важливо! Антивіруси та схоже ПЗ може лаятись на криптовалютний робот – це пов’язане із тим, що програма завантажена із інтернету, а Algo Trading UA є невідомим для них видавцем. Тому, якщо не довіряєте торговому боту, запускайте його на віддаленому сервері (я узагалі рекомендую працювати виключно на віддаленому сервері).
Користуючись ботом ви підтверджуєте, що розумієте і приймаєте застереження та ризики.
Перелік оновлень платформи
У даному підрозділі вказані оновлення платформи із вказанням поточної версії (номер версії знаходиться у квадратних дужках в шапці бота). Завантажити останню версію можна тут.
Версія 0.4 (від 25.10.2026). Що змінилося:
- Виправлене відсіювання контрактів, щоби залишити тільки криптові
- Добавлений стоп-лосс
Версія 0.3 (від 12.10.2026). Що змінилося:
- Виправлений баг із розрахунків усереднень
- Прибрані строкові контракти (працює тільки на безстрокових – свопах)
Версія 0.2 (від 04.10.2026). Що змінилося:
🐞 Виправлені баги:
✔️ Помилка деномінації у фільтрі обсягів (рахувалося у монетах)
✔️ Баг у коефіцієнті мартінгейлу (занадто агресивно рахувався)
✔️ Баг у періодичному оновленні даних по контрактах
🛠 Інші зміни (апгрейд):
✅ Кількість усереднень виводиться у позиціях
✅ Зміна перевірки при відкритті – якщо розмір позиції (розрахунковий) менший за мінімальний (специфікація біржі) – то відкриється угода мінімальним обсягом
✅ Поправлена робота із рейт-лімітами (частими запитами)
✅ Добавлена можливість змінювати плече
✅ Добавлена опція “Вихід по розвороту”







