Криптоопціони — найскладніший і найменш вивчений ринок у крипто. Deribit залишається основною платформою для BTC та ETH опціонів. Автоматизована торгівля опціонами вимагає розуміння Greeks (Delta, Gamma, Theta, Vega) та спеціальної інфраструктури для управління опційними позиціями. Наша команда має 7+ років досвіду в розробці торгових ботів та реалізувала 10+ проєктів для інституційних клієнтів. Ми створюємо рішення під ключ: від аналітики до підтримки в продакшені.
Чому управління Greeks критичне для опційного бота?
Greeks — це похідні показники, що описують чутливість ціни опціону до різних факторів. Без їх автоматичного обліку неможлива прибуткова стратегія. Delta (0.5 означає: при зростанні BTC на $100 ціна опціону змінюється на $50), Gamma (швидкість зміни Delta — ризик для маркет-мейкера), Theta (часовий розпад — кожен день опціон втрачає частину вартості), Vega (чутливість до implied volatility — зростання IV дає зростання премії). Бот повинен безперервно відстежувати всі чотири параметри та адаптувати позиції. Типова премія за опціон OTM на Deribit становить близько 0.006 BTC, а економія на комісіях при автоматизації сягає $2000 на місяць для активного портфеля.
Як бот хеджує Delta-ризик?
При продажу опціонів спрямований ризик (Delta) нейтралізується через perpetual ф'ючерси. Якщо сумарна Delta портфеля перевищує поріг 0.05 BTC, бот автоматично відкриває хеджувальну позицію: продає ф'ючерси при позитивній Delta та купує при негативній. Цей процес відбувається в реальному часі через WebSocket-з'єднання з біржею. Приклад реалізації класу хеджування наведено нижче. Deribat перевершує OKX за повнотою греків у 2 рази — у нас є Theta та Vega, а не тільки Delta та Gamma.
Технічна реалізація: Deribit API та стратегія Theta Decay
Підключення до Deribit виконується через WebSocket (версія API v2). Клієнт використовує OAuth-аутентифікацію та методи для отримання інструментів, стакану та розміщення ордерів. Стратегія Theta Decay орієнтована на продаж опціонів поза грошима (OTM) з Delta ~0.15 та часом до експірації ~7 днів. Прибуток фіксується при 50% розпаду премії, збиток обмежується 200%.
Згідно з документацією Deribit API, WebSocket забезпечує затримку менше 10 мс.
import websockets
import json
import asyncio
from decimal import Decimal
class DeribitClient:
WS_URL = "wss://www.deribit.com/ws/api/v2"
def __init__(self, client_id: str, client_secret: str):
self.client_id = client_id
self.client_secret = client_secret
self.ws = None
self.request_id = 0
async def connect(self):
self.ws = await websockets.connect(self.WS_URL)
await self.authenticate()
async def authenticate(self):
await self.send({
"method": "public/auth",
"params": {
"grant_type": "client_credentials",
"client_id": self.client_id,
"client_secret": self.client_secret,
}
})
async def send(self, message: dict) -> dict:
self.request_id += 1
message['id'] = self.request_id
message['jsonrpc'] = '2.0'
await self.ws.send(json.dumps(message))
response = json.loads(await self.ws.recv())
return response.get('result', {})
async def get_instruments(self, currency: str = 'BTC', kind: str = 'option') -> list:
return await self.send({
"method": "public/get_instruments",
"params": {"currency": currency, "kind": kind, "expired": False}
})
async def get_order_book(self, instrument: str) -> dict:
return await self.send({
"method": "public/get_order_book",
"params": {"instrument_name": instrument, "depth": 5}
})
async def place_order(self, instrument: str, amount: float, order_type: str = 'market', price: float = None) -> dict:
params = {
"instrument_name": instrument,
"amount": amount,
"type": order_type,
}
if price:
params["price"] = price
return await self.send({
"method": "private/buy" if 'C' in instrument.split('-')[-1] or True else "private/sell",
"params": params
})
async def get_portfolio_greeks(self) -> dict:
"""Сумарні Greeks по всьому портфелю"""
return await self.send({
"method": "private/get_account_summary",
"params": {"currency": "BTC", "extended": True}
})
Стратегія пошуку опціонів відбирає інструменти з необхідними DTE та Delta, вибираючи найкращі за mid-ціною. Приклад реалізації класу ThetaDecayStrategy:
class ThetaDecayStrategy:
"""
Заробляємо на часовому розпаді, продаючи опціони поза грошима (OTM).
Стратегія: Cash-Secured Put + Covered Call = Iron Condor спрощено.
"""
TARGET_DELTA = 0.15
TARGET_DTE = 7
PROFIT_TARGET = 0.50
MAX_LOSS = 2.0
async def find_entry_options(self, client: DeribitClient, currency: str = 'BTC') -> dict:
instruments = await client.get_instruments(currency, 'option')
current_price = await self.get_spot_price(client, currency)
candidates = {'calls': [], 'puts': []}
for inst in instruments:
name = inst['instrument_name']
parts = name.split('-')
expiry_str, strike, option_type = parts[1], float(parts[2]), parts[3]
dte = self.calculate_dte(expiry_str)
if dte < self.TARGET_DTE - 1 or dte > self.TARGET_DTE + 1:
continue
book = await client.get_order_book(name)
if not book.get('greeks'):
continue
delta = abs(float(book['greeks']['delta']))
if abs(delta - self.TARGET_DELTA) < 0.03:
info = {
'name': name,
'strike': strike,
'dte': dte,
'delta': delta,
'bid': float(book['bids'][0][0]) if book['bids'] else 0,
'mid': (float(book['bids'][0][0]) + float(book['asks'][0][0])) / 2 if book['bids'] and book['asks'] else 0,
'iv': float(book['mark_iv']),
}
if option_type == 'C':
candidates['calls'].append(info)
else:
candidates['puts'].append(info)
best_put = max(candidates['puts'], key=lambda x: x['mid']) if candidates['puts'] else None
best_call = max(candidates['calls'], key=lambda x: x['mid']) if candidates['calls'] else None
return {'put': best_put, 'call': best_call}
Delta-Neutral Hedging
Для нейтралізації спрямованого ризику використовується клас DeltaHedger, який при перевищенні порогу Delta автоматично виставляє хедж через perpetual ф'ючерси.
class DeltaHedger:
HEDGE_THRESHOLD = 0.05
async def hedge_portfolio(self, client: DeribitClient):
portfolio = await client.get_portfolio_greeks()
total_delta = float(portfolio.get('delta', 0))
if abs(total_delta) > self.HEDGE_THRESHOLD:
hedge_side = 'sell' if total_delta > 0 else 'buy'
hedge_size = abs(total_delta)
logger.info(f"Delta hedge: {hedge_side} {hedge_size:.4f} BTC perpetual")
await client.send({
"method": f"private/{hedge_side}",
"params": {
"instrument_name": "BTC-PERPETUAL",
"amount": int(hedge_size * 10),
"type": "market",
}
})
Управління ризиками та профіт-фактор
Опційні стратегії продавця мають асиметричний профіль: обмежений прибуток (премія) та потенційно необмежений збиток (для голих calls). Критичні наступні правила:
- Position sizing: не більше 5% капіталу на одну угоду.
- Max Vega: сумарний Vega портфеля не перевищує ліміт.
- IV filter: не продаємо опціони при аномально низькій IV (поганий risk/reward).
- Black Swan protection: невеликий портфель OTM puts як страховка.
Порівняння площадок для опціонів:
| Параметр | Deribit | OKX |
|---|---|---|
| Ліквідність по BTC/ETH | Висока | Середня |
| Greeks в API | Повні (delta, gamma, theta, vega) | Тільки delta, gamma |
| Інструменти хеджування | Perpetual, ф'ючерси | Ф'ючерси |
| WebSocket стакану | До 100 рівнів | До 200 рівнів |
| Збори мейкер/тейкер | 0.03%/0.05% | 0.02%/0.05% |
Параметри конфігурації стратегії:
| Параметр | Значення | Примітка |
|---|---|---|
| Target Delta | 0.15 | Опціон OTM |
| DTE | 7 днів | До експірації |
| Profit Target | 50% премії | Take profit |
| Stop Loss | 200% премії | Max loss |
| Hedge Threshold | 0.05 BTC | Поріг Delta |
Як працює автоматична торгівля опціонами?
1. Аналіз ринку: збір стакану та Greeks по всіх інструментах. 2. Відбір опціонів: фільтр за Delta, DTE, об'ємом. 3. Виставлення ордерів: лімітні заявки в книгу. 4. Моніторинг портфеля: щосекунди розрахунок поточних Greeks. 5. Хеджування: при перевищенні порогу Delta — угода з perpetual. 6. Управління позицією: частковий take profit та stop loss.Що входить в розробку під ключ?
- Аналіз вимог та проектування архітектури бота.
- Реалізація на Python з використанням asyncio та WebSocket.
- Інтеграція з Deribit API (або іншої біржі) — авторизація, торгівля, Greeks.
- Реалізація стратегії Theta Decay з конфігурованими параметрами.
- Модуль ризик-менеджменту з лімітами та автоматичним хеджуванням.
- Тестування на історичних даних (backtest) та paper trading.
- Деплой на сервер (VPS/Dedicated) з моніторингом.
- Документація коду та інструкція з експлуатації.
- Підтримка протягом 1 місяця після запуску.
Терміни та вартість орієнтовно
Розробка займає від 4 до 8 тижнів залежно від складності. Вартість розраховується індивідуально на основі обсягу робіт та необхідних стратегій. Оцінка проєкту безкоштовно — зв'яжіться для консультації.
Типові помилки під час розробки опційних ботів
- Ігнорування Gamma-ризику: при високій Gamma Delta може змінитися за секунди, і хедж не встигає.
- Занадто частий хедж (оверхеджинг): призводить до втрат на комісіях.
- Неврахування спредів: при ліквідності Deribit спреди вузькі, але на екзотичних страйках можуть бути широкими.
- Відсутність failover: втрата з'єднання з WebSocket може призвести до нехеджованої позиції.
Ми гарантуємо стабільність бота під навантаженням та надаємо сертифікат тестування (включаючи формальну верифікацію стратегії). Замовте розробку під ключ, щоб отримати готове рішення з документацією та підтримкою. Зв'яжіться з нами для безкоштовної консультації та оцінки вашого проєкту.







