Криптоопционы — наиболее сложный и наименее изученный рынок в крипто. 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-соединение с биржей. Пример реализации класса хеджирования приведён ниже. Deribit превосходит 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. Управление позицией: partial 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 может привести к нехеджированной позиции.
Мы гарантируем стабильность бота под нагрузкой и предоставляем сертификат тестирования (включая формальную верификацию стратегии). Закажите разработку под ключ, чтобы получить готовое решение с документацией и поддержкой. Свяжитесь с нами для бесплатной консультации и оценки вашего проекта.







