Automatic Option Rolling System
Система автоматичного ролювання опціонних позицій призначена для відкриття, перевідкриття або відстежування користувацької SHORT позиції з керуванням ризиками, відповідно до заданих параметрів.
Поля форми створення бота
Основні налаштування
Назва (Name)
Користувацький ідентифікатор для екземпляра бота
Приклади:
- "BTC_Call_Strategy_01" - нумерована стратегія для BTC Call
- "ETH_Put_Weekly" - тижнева стратегія для ETH Put
Біржа (Exchange)
Торгова платформа для виконання операцій
Підтримувані значення: BYBIT, BYBIT_DEMO, OKX, OKX_DEMO
BYBIT - www.bybit.com
BYBIT_DEMO - демо торгівля на www.bybit.com, ринкові дані ідентичні BYBIT, більше про бійбіт демо: https://www.bybit.com/uk-UA/promo/imc/demo-trading-risk-free-mastery
OKX - www.okx.com (інші домени, на зразок my.okx.com можуть не підтримуватися)
OKX_DEMO - демо торгівля на www.okx.com. Ринкові дані не пов'язані з OKX, і можуть суттєво відрізнятися, https://www.okx.com/ua/help/demo-trading
Під-акаунт (Sub-Account)
Дочірний акаунт для ізоляції торгівлі
Необхідно створити хоча б один під-акаунт для того щоб запустити бота
Для кожного під-акаунту можна додати один апі ключ для кожної із бірж
Приклади:
- "main" - основний рахунок
- "strategy_1" - перша стратегія
- "test_account" - тестовий рахунок
- "production" - продакшн рахунок
- "demo_trading" - демо торгівля
Базовий актив (Base Asset)
Основна криптовалюта для опціонної торгівлі
Підтримувані значення: BTC, ETH, SOL
Зверніть увагу! Для OKX та OKX DEMO доступні лише перші два активи через особливості бірж.
Таймфрейм експірації (Days to Expiration)
Очікувана тривалість опціонного контракту в днях від поточної дати
Якщо точна дата недоступна, буде обрана найближча дата, відповідно до правил округлення (Expiration Rounding Rule)
Максимальне значення обмежене доступними експіраціями на біржі
Обмеження: Мінімум 1 день
Округлення таймфрейму експірації (Expiration Rounding Rule)
Стратегія вибору найближчої доступної дати експірації
Можливі значення:
- "NextClosest" - наступна доступна дата після цільової
- "PreviousClosest" - попередня доступна дата до цільової
Приклади:
Ціль: 15 днів, доступні: 14, 21 день
PreviousClosest: система обере 14 днів (ближче на 1 день)
NextClosest: система обере 21 день (наступна після 15)
Обсяг (Quantity)
Обсяг опціонної позиції визначений в базовому активі (або в кількості контрактів у випадку ОКХ)
Повинен відповідати мінімальному розміру контракту біржі
Максимальна кількість обмежена балансом рахунку
Дробові значення дозволені в межах точності біржі
Обмеження:
- BTC: мінімум 0.01
- ETH: мінімум 0.1
- SOL: мінімум 1
Напрямок (Direction)
Тип опціону для торгівлі
Можливі значення: CALL, PUT
Впливає на діапазон дозволених значень дельти
CALL: дельта від 0 до 1
PUT: дельта від -1 до 0
Цільова дельта страйк-ціни (Target Strike Price Delta)
Значення цього поля використовується для відкриття базової позиції та подальшого перевідкриття позиції у випадку експірації або закриття в прибуток
Приклад, якщо позиція закривається в прибуток або наступає експірація, необхідно буде відкрити нову позицію і в такому випадку ціна страйку буде розрахована за допомогою цього параметру.
Обмеження:
- CALL опціони: 0 до 1
- PUT опціони: -1 до 0
Якщо точна дельта може бути недоступна, система вибере найближчу. У випадку однакових значень, округлення до меншої дельти (за абсолютним значенням).
Приклад CALL: задана дельта 0.2, доступні 0.15 і 0.25, буде обрана дельта 0.15
Приклад PUT: задана дельта -0.2, доступні -0.15 і -0.25, буде обрана дельта -0.15
Екстремальні значення (близько 0 або ±1) можуть мати низьку ліквідність
Відхилення справедливої ціни (%) (Fair Price Deviation)
Максимально допустиме відхилення (%) між розрахованою ціною продажу опціону (mark price) та його поточною маркетинговою ціною при розміщенні ордера на продаж. Fair Price не дозволяє продавати опціони занадто дешево, порівнюючи розраховану ціну з ринковою "справедливою" ціною та заданим відсотком відхилення.
Обмеження: 0-100%
Приклади:
Mark price = $100, відхилення 5% → мінімально допустима ціна продажу = $95
Налаштування ROI
Відсоток закриття ROI (Closing ROI Percentage)
Поріг прибутку для автоматичного закриття позиції та викупу опціону
Значення за замовчуванням - 100% (очікування повної експірації)
Приклад:
Премія $200, ROI 60% → закриття коли опціон коштує $80 (прибуток $120 = 60%)
Система відслідковує ціну верхнього рівня ордер буку і наявність ліквідності.
При досягненні цільової ціни, система намагається викупити позицію. У випадку невдачі, система повторює спробу, якщо ціна і ліквідність все ще задовільні.
Після успішного закриття бот припиняє роботу або починає новий цикл. В залежності від параметру "Кількість ітерацій роботи".
Зверніть увагу! Нереалізований PNL, що показує біржа для позиції, може не враховувати поточні значення ордер-бука. Рішення про купівлю опціона бот приймає на основі ордер-бука, а не нереалізованого PNL. Тому можливі ситуації, коли нереалізований PNL позиції вищий ніж налаштоване ROI закриття, однак позиція не закривається через відсутність відповідної пропозиції в ордер-буці.
Поріг перевідкриття в наступному таймфреймі (%) (Expiration Timeframe Transition Threshold)
Визначає, чи використовувати наступний або той самий часовий фрейм для нового опціону після закриття в прибуток.
0 - завжди продавати в наступному таймфреймі
100 - завжди продавати в тому самому таймфреймі
Значення за замовчуванням - 0
Приклади:
- 30% поріг, 7-денні опціони:
- Залишився 1 день: 1/7 = 14% < 30% → новий 7-денний цикл
- Залишилося 3 дні: 3/7 = 43% > 30% → використати поточні 3 дні
- 50% поріг, 14-денні опціони:
- Залишилося 6 днів: 6/14 = 43% < 50% → новий 14-денний цикл
- Залишилося 8 днів: 8/14 = 57% > 50% → використати поточні 8 днів
- 70% поріг, 30-денні опціони:
- Залишилося 15 днів: 15/30 = 50% < 70% → новий 30-денний цикл
- Залишилося 25 днів: 25/30 = 83% > 70% → використати поточні 25 днів
Налаштування екстренного ролінгу
Тригер ціна ролювання (%) (Roll Trigger Price)
Відхилення ціни базового активу від страйк-ціни, що запускає екстрений ролінг позиції
Приклади:
- 5% тригер, BTC Call страйк $50,000: Ролінг при BTC ≥ $47,500 (50,000 - 5%)
- 10% тригер, ETH Put страйк $3,000: Ролінг при ETH ≤ $3,300 (3,000 + 10%)
- 15% тригер, SOL Call страйк $100: Ролінг при SOL ≥$85 (100 - 15%)
Поведінка бота:
- Моніторить поточну ціну базового активу
- При перетині тригера закриває поточну позицію
- Шукає новий страйк згідно з налаштуваннями в наступних таймфреймах
Зверніть увагу! Якщо, відповідно до заданих налаштувань або умов ринку, не було знайдено опціон для перевідкриття, поточна позиція не закривається. Якщо таке трапилося, користувач отримає електронний лист про це.
Відсоток втрат при ролінгу (Rolling Loss Percentage)
Максимально прийнятна втрата під час операції ролінгу
Приклади:
10% ліміт втрат:
- Ціна викупу $550, ціна продажу $500 → втрата $50, що становить 9.1% від ціни викупу ($50/$550), що менше за ліміт 10%, тому ролінг дозволено.
- Ціна викупу $500, ціна продажу $400 → втрата $100, що становить 20% від ціни викупу ($100/$500), що більше за ліміт 10%, тому ролінг заблоковано.
Поведінка бота:
- Розраховує потенційну втрату від закриття поточної позиції
- Порівнює з лімітом втрат
- Відхиляє ролінг якщо втрата занадто велика і шукає інший підходящий варіант ролювання
Мінімальне відхилення страйк-ціни при ролінгу (%) (Rolling Min Strike Price Deviation)
Встановлює мінімальне відхилення (%) від поточної страйк-ціни, де бот починає пошук нових рівнів страйку під час ролінгу
Приклади:
- 3% відхилення, BTC страйк $50,000:
- Дозволені нові страйки: $51,500+ для CALL,$48,500- для PUT
- Заборонені: $50,500, $49,500 (менше 3%)
- 5% відхилення, ETH страйк $3,000:
- Дозволені нові страйки: $3,150+ (CALL), $2,850- (PUT)
- Заборонені: $3,100, $2,950 (менше 5%)
- 10% відхилення, SOL страйк $100:
- Дозволені нові страйки: $110+ (CALL) або $90- (PUT)
- Заборонені: $105, $95 (менше 10%)
Поведінка бота:
- Шукає доступні страйки з достатнім відхиленням
- Якщо підходящий страйк не знайдено, ролінг не виконується
- 0% дозволяє ролінг на той самий страйк
- Обмежена кількість доступних страйків може блокувати ролінг
Макс. днів для пошуку ролінгової позиції (Max Rolling Position Expiration Days)
Максимальна кількість днів у майбутньому, на яку бот шукатиме новий опціон для ролінгу після активації ролінгу
Приклади:
- 7 днів максимум:
- Доступні експірації: 1, 3, 7, 14, 30 днів
- Дозволені для ролінгу: 1, 3, 7 днів
- Заборонені: 14, 30 днів
- 14 днів максимум:
- Доступні експірації: 3, 7, 14, 21, 30 днів
- Дозволені для ролінгу: 3, 7, 14 днів
- Заборонені: 21, 30 днів
- 10 днів максимум:
- Поточна позиція: 7 днів до експірації
- Доступні для ролінгу: 3, 7 днів
- Недоступні: 14, 21, 30 днів
- Вибір бота: 7 днів (найближча до ліміту)
- 0 днів (обмеження вимкнено)
- Доступні експірації: 3, 7, 14, 21, 30 днів
- Дозволені для ролінгу: 3, 7, 14, 21, 30 днів
Поведінка бота:
- Фільтрує доступні експірації при пошуку нового страйку
- Вибирає найближчу підходящу експірацію в межах ліміту
Контроль виконання
Кількість ітерацій роботи бота (Max Iterations)
Кількість торгових циклів, які виконає бот
Можна задати 1 або більше ітерацій, або відмітити чекбокс безкінечного виконання до ручної зупинки
Поведінка бота:
- Кожен цикл включає відкриття, моніторинг та закриття позиції після досягнення заданого ROI або експірації
- Лічильник збільшується після кожного закриття
- Бот зупиняється після досягнення ліміту
- Екстренне ролювання не збільшує лічильник ітерацій
Тригер ціна відкладеного виконання (Deferred Execution Trigger Price)
Опис: SPOT ціна базового активу, при досягненні якої бот починає процес відкриття базової позиції
Спеціальні значення:
- 0 - негайний запуск (без очікування)
Поведінка бота:
- Моніторить поточну SPOT ціну
- Залишається в режимі очікування до досягнення тригера
- Після спрацювання починає стандартний цикл торгівлі
- Ціна може ніколи не досягти тригера
- Відкладене виконання можна застосувати лише для створення першої позиції бота.
Зверніть увагу! Всі перевідкриття (ролювання) позиції відбуваються на основі інших налаштувань, описаних вище. Якщо Ви хочете використати відкладене виконання наступних позицій, рекомендуємо використати значення 1 для кількості ітерацій. Після успішного закриття позиції Ви отримаєте електронного листа про завершення роботи бота, і зможете налаштувати нового.
При досягненні тригер ціни, користувач отримає електронний лист про це.
Технічні деталі
Підтримувані біржі
- BYBIT
- BYBIT DEMO
- OKX
- OKX DEMO
Підтримувані активи
- BTC (Bitcoin)
- ETH (Ethereum)
- SOL (Solana)
Зверніть увагу! Для OKX та OKX DEMO доступні лише перші два активи через особливості бірж.
Типи опціонів
- Call опціони (дельта від 0 до 1)
- Put опціони (дельта від -1 до 0)
Режими виконання
- Обмежені ітерації: Фіксована кількість торгових циклів
- Нескінченні ітерації: Безперервна торгівля до ручної зупинки
- Відкладене виконання: Очікування тригерної ціни перед початком
Edge Cases та особливі ситуації
Недостатня ліквідність
Ситуація: Бот не може закрити позицію за прийнятною ціною
Поведінка: Продовжує спроби з інтервалами, може утримувати до експірації
Відсутність підходящих опціонів при ролюванні або перевідкритті
Ситуація: Немає опціонів з потрібною дельтою або експірацією
Поведінка: Бот переходить в статус Suspended з можливістю повторної активації юзером
Технічні збої біржі
Ситуація: Біржа недоступна або API не відповідає
Поведінка: Бот робить декілька повторних спроб. У випадку невдача переходить в статус Suspended з повідомленням про помилку на імейл, позиції залишаються відкритими, юзер має можливість повторної активації
Ролювання
При ролюванні бот буде старатися підібрати нову позицію з найдальшим страйком в найближчому таймфреймі і буде задовольняти інші налаштування.
Детальні приклади поведінки бота
Сценарій 1: Успішний цикл Call опціону
Налаштування: BTC Call, дельта 0.3, Closing ROI 50%, Fair Price Deviation 5%, кількість ітерацій 1
Початкові умови: BTC = $60,000
Поведінка:
- Бот знаходить опціон з дельтою ~0.3 (страйк $65,000)
- Продає Call опціон за премію $1,000
- BTC залишається на $62,000 - опціон дешевшає до $500 (50% ROI досягнуто)
- Бот викуповує опціон за $500, фіксуючи $500 прибутку
- Бот припиняє роботу і переходить в статус Completed
Сценарій 2: Emergency Rolling Call опціону
Налаштування: BTC Call, Roll Trigger 5%, Rolling Loss 15%, тижневі опціони
Початкові умови: BTC = $60,000, страйк $65,000, премія $1,000
Поведінка:
- BTC зростає до $61,750 ($65,000 - 5% = $61,750) - тригер спрацьовує
- Бот розраховує ціну викупу поточного опціону: $1,120
- Бот шукає кандидатів для продажу нового Call в таймфреймі двотижневих опціонів (наступний після тижневих)
- Знаходить опціон страйк $67,000, розраховує можливу премію продажу: $850
- Перевіряє втрати у випадку викупу і продажу підібраних опціонів: ($1,120 - $850) = $270 = 27% > 15% ❌
- Продовжує шукати підходящу позицію для ролювання в наступних страйках поточного таймфрейму або в наступних таймфреймах, якщо це дозволяє параметр "Макс. днів для пошуку ролінгової позиції"
- Знаходить страйк $68,000, розраховує можливу премію продажу: $1000
- Перевіряє втрати у випадку викупу і продажу підібраних опціонів: ($1,120 - $1,000) = $120 = 12% < 15% ✅
- Виконує Emergency Rolling:
- Викуповує поточний Call опціон ($65,000 страйк) за $1,120
- Одночасно продає новий Call опціон ($68,000 страйк) за $1,000
- Оновлює позицію:
- Новий страйк: $68,000 (+$3,000 захисту порівняно з попереднім)
- Нова премія: $1,000
- Новий Roll Trigger: $68,000 - 5% = $64,600
- Термін дії: 2 тижні (подовжено з 1 тижня)
- Моніторить ціни для ролювання у випадку перетину рівня тригеру або викупу в прибуток
Сценарій 3: Emergency Rolling PUT опціону
Налаштування: BTC Put, Roll Trigger 5%, Rolling Loss 15%, тижневі опціони
Початкові умови: BTC = $60,000, страйк $55,000, премія $800
Поведінка:
- BTC падає до $58,250 (тригер на $55,000 + 5% = $57,750) - тригер спрацьовує
- Бот розраховує ціну викупу поточного PUT опціону: $920
- Бот шукає кандидатів для продажу нового PUT в таймфреймі двотижневих опціонів (наступний після тижневих)
- Знаходить опціон страйк $53,000, розраховує можливу премію продажу: $850
- Перевіряє втрати у випадку викупу і продажу підібраних опціонів: ($920 - $850) = $70 = 8.75% < 15% ✅
- Виконує Emergency Rolling:
- Викуповує поточний PUT опціон ($55,000 страйк) за $920
- Одночасно продає новий PUT опціон ($53,000 страйк) за $850
- Оновлює позицію:
- Новий страйк: $53,000 (-$2,000 захисту порівняно з попереднім)
- Нова премія: $850
- Новий Roll Trigger: $53,000 + 5% від дистанції до поточної ціни = $58,600
- Термін дії: 2 тижні (подовжено з 1 тижня)
- Моніторить ціни для ролювання у випадку перетину рівня тригеру або викупу в прибуток
Сценарій 4: Відкладене виконання (Deferred Execution)
Налаштування: SOL Call, тригер виконання $120
Початкові умови: SOL = $100
Поведінка:
- Бот у статусі "WaitingForInitTriggerPrice"
- SOL зростає до $120.50 - тригер спрацьовує
- Бот переходить до пошуку опціону з заданою дельтою
- Знаходить Call страйк $135 з дельтою 0.3
- Відкриває позицію та починає стандартний цикл