Automatic Option Rolling System

Система автоматичного ролювання опціонних позицій призначена для відкриття, перевідкриття або відстежування користувацької SHORT позиції з керуванням ризиками, відповідно до заданих параметрів.

Зміст

Поля форми створення бота

Основні налаштування

Назва (Name)

Користувацький ідентифікатор для екземпляра бота

Приклади:

Біржа (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)

Дочірний акаунт для ізоляції торгівлі

Необхідно створити хоча б один під-акаунт для того щоб запустити бота

Для кожного під-акаунту можна додати один апі ключ для кожної із бірж

Приклади:

Базовий актив (Base Asset)

Основна криптовалюта для опціонної торгівлі

Підтримувані значення: BTC, ETH, SOL
Зверніть увагу! Для OKX та OKX DEMO доступні лише перші два активи через особливості бірж.

Таймфрейм експірації (Days to Expiration)

Очікувана тривалість опціонного контракту в днях від поточної дати

Якщо точна дата недоступна, буде обрана найближча дата, відповідно до правил округлення (Expiration Rounding Rule)

Максимальне значення обмежене доступними експіраціями на біржі

Обмеження: Мінімум 1 день

Округлення таймфрейму експірації (Expiration Rounding Rule)

Стратегія вибору найближчої доступної дати експірації

Можливі значення:
Приклади:
Ціль: 15 днів, доступні: 14, 21 день
PreviousClosest: система обере 14 днів (ближче на 1 день)
NextClosest: система обере 21 день (наступна після 15)

Обсяг (Quantity)

Обсяг опціонної позиції визначений в базовому активі (або в кількості контрактів у випадку ОКХ)

Повинен відповідати мінімальному розміру контракту біржі

Максимальна кількість обмежена балансом рахунку

Дробові значення дозволені в межах точності біржі

Обмеження:

Напрямок (Direction)

Тип опціону для торгівлі

Можливі значення: CALL, PUT

Впливає на діапазон дозволених значень дельти

CALL: дельта від 0 до 1

PUT: дельта від -1 до 0

Цільова дельта страйк-ціни (Target Strike Price Delta)

Значення цього поля використовується для відкриття базової позиції та подальшого перевідкриття позиції у випадку експірації або закриття в прибуток

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

Обмеження:

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

Приклад 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

Приклади:

Налаштування екстренного ролінгу

Тригер ціна ролювання (%) (Roll Trigger Price)

Відхилення ціни базового активу від страйк-ціни, що запускає екстрений ролінг позиції

Приклади:

Поведінка бота:

Зверніть увагу! Якщо, відповідно до заданих налаштувань або умов ринку, не було знайдено опціон для перевідкриття, поточна позиція не закривається. Якщо таке трапилося, користувач отримає електронний лист про це.

Відсоток втрат при ролінгу (Rolling Loss Percentage)

Максимально прийнятна втрата під час операції ролінгу

Приклади: 10% ліміт втрат:

Поведінка бота:

Мінімальне відхилення страйк-ціни при ролінгу (%) (Rolling Min Strike Price Deviation)

Встановлює мінімальне відхилення (%) від поточної страйк-ціни, де бот починає пошук нових рівнів страйку під час ролінгу

Приклади:

Поведінка бота:

Макс. днів для пошуку ролінгової позиції (Max Rolling Position Expiration Days)

Максимальна кількість днів у майбутньому, на яку бот шукатиме новий опціон для ролінгу після активації ролінгу

Приклади:

Поведінка бота:

Контроль виконання

Кількість ітерацій роботи бота (Max Iterations)

Кількість торгових циклів, які виконає бот

Можна задати 1 або більше ітерацій, або відмітити чекбокс безкінечного виконання до ручної зупинки

Поведінка бота:

Тригер ціна відкладеного виконання (Deferred Execution Trigger Price)

Опис: SPOT ціна базового активу, при досягненні якої бот починає процес відкриття базової позиції

Спеціальні значення:

Поведінка бота:

Зверніть увагу! Всі перевідкриття (ролювання) позиції відбуваються на основі інших налаштувань, описаних вище. Якщо Ви хочете використати відкладене виконання наступних позицій, рекомендуємо використати значення 1 для кількості ітерацій. Після успішного закриття позиції Ви отримаєте електронного листа про завершення роботи бота, і зможете налаштувати нового.
При досягненні тригер ціни, користувач отримає електронний лист про це.

Технічні деталі

Підтримувані біржі

Підтримувані активи

Зверніть увагу! Для OKX та OKX DEMO доступні лише перші два активи через особливості бірж.

Типи опціонів

Режими виконання

Edge Cases та особливі ситуації

Недостатня ліквідність

Ситуація: Бот не може закрити позицію за прийнятною ціною

Поведінка: Продовжує спроби з інтервалами, може утримувати до експірації

Відсутність підходящих опціонів при ролюванні або перевідкритті

Ситуація: Немає опціонів з потрібною дельтою або експірацією

Поведінка: Бот переходить в статус Suspended з можливістю повторної активації юзером

Технічні збої біржі

Ситуація: Біржа недоступна або API не відповідає

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

Ролювання

При ролюванні бот буде старатися підібрати нову позицію з найдальшим страйком в найближчому таймфреймі і буде задовольняти інші налаштування.

Детальні приклади поведінки бота

Сценарій 1: Успішний цикл Call опціону

Налаштування: BTC Call, дельта 0.3, Closing ROI 50%, Fair Price Deviation 5%, кількість ітерацій 1

Початкові умови: BTC = $60,000

Поведінка:

  1. Бот знаходить опціон з дельтою ~0.3 (страйк $65,000)
  2. Продає Call опціон за премію $1,000
  3. BTC залишається на $62,000 - опціон дешевшає до $500 (50% ROI досягнуто)
  4. Бот викуповує опціон за $500, фіксуючи $500 прибутку
  5. Бот припиняє роботу і переходить в статус Completed

Сценарій 2: Emergency Rolling Call опціону

Налаштування: BTC Call, Roll Trigger 5%, Rolling Loss 15%, тижневі опціони

Початкові умови: BTC = $60,000, страйк $65,000, премія $1,000

Поведінка:

  1. BTC зростає до $61,750 ($65,000 - 5% = $61,750) - тригер спрацьовує
  2. Бот розраховує ціну викупу поточного опціону: $1,120
  3. Бот шукає кандидатів для продажу нового Call в таймфреймі двотижневих опціонів (наступний після тижневих)
  4. Знаходить опціон страйк $67,000, розраховує можливу премію продажу: $850
  5. Перевіряє втрати у випадку викупу і продажу підібраних опціонів: ($1,120 - $850) = $270 = 27% > 15% ❌
  6. Продовжує шукати підходящу позицію для ролювання в наступних страйках поточного таймфрейму або в наступних таймфреймах, якщо це дозволяє параметр "Макс. днів для пошуку ролінгової позиції"
  7. Знаходить страйк $68,000, розраховує можливу премію продажу: $1000
  8. Перевіряє втрати у випадку викупу і продажу підібраних опціонів: ($1,120 - $1,000) = $120 = 12% < 15% ✅
  9. Виконує Emergency Rolling:
    • Викуповує поточний Call опціон ($65,000 страйк) за $1,120
    • Одночасно продає новий Call опціон ($68,000 страйк) за $1,000
  10. Оновлює позицію:
    • Новий страйк: $68,000 (+$3,000 захисту порівняно з попереднім)
    • Нова премія: $1,000
    • Новий Roll Trigger: $68,000 - 5% = $64,600
    • Термін дії: 2 тижні (подовжено з 1 тижня)
  11. Моніторить ціни для ролювання у випадку перетину рівня тригеру або викупу в прибуток

Сценарій 3: Emergency Rolling PUT опціону

Налаштування: BTC Put, Roll Trigger 5%, Rolling Loss 15%, тижневі опціони

Початкові умови: BTC = $60,000, страйк $55,000, премія $800

Поведінка:

  1. BTC падає до $58,250 (тригер на $55,000 + 5% = $57,750) - тригер спрацьовує
  2. Бот розраховує ціну викупу поточного PUT опціону: $920
  3. Бот шукає кандидатів для продажу нового PUT в таймфреймі двотижневих опціонів (наступний після тижневих)
  4. Знаходить опціон страйк $53,000, розраховує можливу премію продажу: $850
  5. Перевіряє втрати у випадку викупу і продажу підібраних опціонів: ($920 - $850) = $70 = 8.75% < 15% ✅
  6. Виконує Emergency Rolling:
    • Викуповує поточний PUT опціон ($55,000 страйк) за $920
    • Одночасно продає новий PUT опціон ($53,000 страйк) за $850
  7. Оновлює позицію:
    • Новий страйк: $53,000 (-$2,000 захисту порівняно з попереднім)
    • Нова премія: $850
    • Новий Roll Trigger: $53,000 + 5% від дистанції до поточної ціни = $58,600
    • Термін дії: 2 тижні (подовжено з 1 тижня)
  8. Моніторить ціни для ролювання у випадку перетину рівня тригеру або викупу в прибуток

Сценарій 4: Відкладене виконання (Deferred Execution)

Налаштування: SOL Call, тригер виконання $120

Початкові умови: SOL = $100

Поведінка:

  1. Бот у статусі "WaitingForInitTriggerPrice"
  2. SOL зростає до $120.50 - тригер спрацьовує
  3. Бот переходить до пошуку опціону з заданою дельтою
  4. Знаходить Call страйк $135 з дельтою 0.3
  5. Відкриває позицію та починає стандартний цикл