Перейти к содержимому
Все стратегии

Стратегии

Сбор теты календарного времени за выходные на недельных опционах Deribit BTC — продажа стрэддла около ATM на дневном закрытии пятницы и выкуп на дневном закрытии понедельника (без хеджа, стоп по спотовому диапазону, 2 параметр)

Итог: Проверка

BtcDeribitWeekendCalendarThetaHarvestStraddle

Сначала исправь время цен ног, затем оптимизируй. Текущий P&L не измеряет заранее зарегистрированное окно от закрытия пятницы до закрытия понедельника. (1) Оценивай исполнение опционов в тот же момент, что и решение по…

Гипотеза

Стратегия SHORT-VOLATILITY, MARKET-NEUTRAL-AT-ENTRY, основанная на сезонности календаря, для недельных опционов DERIBIT BTC. Раз в неделю, при закрытии пятничного бара 1-DAY (00:00 UTC в субботу), продать ONE почти ATM стрэддл (короткий колл 1 + короткий пут 1, один страйк и один срок экспирации) с ближайшей недельной экспирацией в пятницу (~6 дней до экспирации на момент входа), затем выкупить обе ноги при закрытии понедельничного бара 1-DAY (00:00 UTC во вторник). Позиция NEVER удерживается до экспирации и……Показать большеСвернуть

Стратегия SHORT-VOLATILITY, MARKET-NEUTRAL-AT-ENTRY, основанная на сезонности календаря, для недельных опционов DERIBIT BTC. Раз в неделю, при закрытии пятничного бара 1-DAY (00:00 UTC в субботу), продать ONE почти ATM стрэддл (короткий колл 1 + короткий пут 1, один страйк и один срок экспирации) с ближайшей недельной экспирацией в пятницу (~6 дней до экспирации на момент входа), затем выкупить обе ноги при закрытии понедельничного бара 1-DAY (00:00 UTC во вторник). Позиция NEVER удерживается до экспирации и NEVER хеджируется по дельте бессрочным фьючерсом — она открывается и закрывается только двумя опционными ногами, поэтому исполнение требует 4 сделок с опционами в неделю и не требует цикла хеджирования между площадками (два тайм-аута площадки опционов в журнале сбоев возникли из-за повторного сканирования цепочки на каждом баре и кода хеджирования нескольких ног; этой стратегии не нужно ни то, ни другое). Утверждение NOT — «подразумеваемая волатильность завышена» (эта безусловная формулировка VRP уже проверялась и была отвергнута в этой работе). Утверждение уже и основано на структуре рынка: опционы теряют временную стоимость CALENDAR, тогда как реализованная волатильность BTC в субботу и воскресенье существенно LOWER, чем в будни, поскольку основной институциональный поток механически отсутствует — торги фьючерсами CME BTC закрываются в пятницу 21:00 UTC и не возобновляются до воскресенья 22:00 UTC, создание и погашение US спотовых BTC-ETF и хеджирование уполномоченных участников полностью прекращаются, а макроэкономические данные US (CPI/FOMC/NFP/PCE) по выходным не публикуются. За три дня (субботу, воскресенье и понедельник) премия опциона уменьшается, хотя полноценный поток торгов фактически действует лишь около одного дня — в понедельник. Сделка монетизирует расхождение между часами ценообразования и часами рыночного потока, а не ставку на уровень волатильности. Примечания по реализации для разработчика, чтобы решение было экономичным и надёжным: (1) создать карту экспирация->страйк->инструмент ONCE в __init__ по объявленным и дополнительным инструментам; никогда не сканировать цепочку внутри on_bar; (2) выбирать страйк стрэддла как страйк NEAREST к закрытию пятницы среди страйков, для которых есть данные баров BOTH по коллу и путу; пропускать неделю, если ближайший пригодный страйк удалён от спотовой цены более чем на max_strike_dist_pct; (3) рассчитывать размер так, чтобы эквивалентный базовому активу номинал стрэддла составлял notional_pct капитала (по умолчанию около 25%, то есть примерно 0.25 в эквиваленте BTC на каждые $100 тыс. капитала при спотовой цене $100 тыс.), что ограничивает убыток при неблагоприятном гэпе за выходные 6% примерно 1.5% капитала; (4) стоп по риску: если базовый актив (закрытие BTCUSDT.BINANCE 1-DAY, опорная нога спотовой цены) закрывается в субботу или воскресенье дальше чем на breach_band_pct от страйка, закрыть обе ноги на этом баре, не дожидаясь понедельника. Проверка фактических данных (проверено по каталогу до подготовки предложения): 380 экспираций BTC на Deribit с 2019 по 2026 включительно имеют как минимум один страйк, для которого на барах 1-DAY есть BOTH колл и пут; стабильный темп — около 52 в год, то есть примерно 350 пригодных для инвестирования выходных. Это полноценная выборка, а не результат отбора лучших из множества.

Реализация

Сбор теты короткой волатильности за выходные на недельных опционах Deribit BTC. На закрытии пятницы в 1-DAY (00:00 UTC субботы) продай один стрэддл около ATM (короткий колл + короткий пут, одинаковый страйк, ближайшая недельная экспирация, примерно 6 DTE); размер позиции — так, чтобы эквивалентный номинал базового актива составлял notional_pct капитала. Выкупи обе ноги на дневном закрытии понедельника (00:00 UTC вторника). Закрой позицию досрочно, если в субботу или воскресенье спотовый ориентир BTCUSDT.BINANCE закроется дальше чем на breach_band_pct от страйка. Без хеджирования дельты, никогда не держать до экспирации. Замена исполнения: рыночный ордер на закрытии бара 00:00 UTC (= открытие следующего бара на рынке 24/7). Поток спотового ориентира — это бар 1-HOUR BTCUSDT.BINANCE, из которого используется ONLY: бар, закрывающийся в 00:00 UTC (его закрытие совпадает с закрытием 1-DAY), поэтому каждое решение остаётся привязано к дневному закрытию.

Итерация 7 исправляет вывод о размере для слоя 3: 687 типов баров за окно в 2,400 дней. Тестовое окно слоя 3 рассчитывается только по типу бара PRIMARY, а основной таймфрейм 1-DAY задаёт максимум в 2,400 дней. Это окно охватывает около 343 недельных экспираций × 2 дневных опционных ног, расчётное время — около 3,800 с. Если переключить основной спотовый ориентир на BTCUSDT.BINANCE-1-HOUR, тестовое окно сократится примерно до 833 дней (около 119 экспираций, 240 типов баров, расчётное время около 500 с, в пределах лимита 1800 с). Ноги, спецификация цепочки (1-DAY баров опционов) и бэктест по всей истории не изменены. Теперь on_bar игнорирует все часовые основные бары, кроме закрывающегося в 00:00 UTC. Его закрытие — это дневное закрытие, поэтому вход на закрытии пятницы, стоп по диапазону закрытий субботы/воскресенья и выход на закрытии понедельника в точности соответствуют гипотезе и прежней логике. Другой код не менялся.

Результаты верификации

Проверка не пройдена (слой 3 — бэктест в песочнице): при тесте работоспособности будет загружено около 1,648,800 баров для 687 типов баров (окно начинается с 2020-03-15). Слой 3 не может выполнить это в пределах лимита 1800 с, поэтому вводные не позволят завершить запуск; это ограничение размера стратегии, а не сбой инфраструктуры. Сократи объём загрузки: используй меньше ног, более крупный таймфрейм или один тип баров на инструмент, а более медленные таймфреймы получай из него.

Расчёт комиссии площадки DERIBIT занижает реальные издержки опционов примерно на 20-30x (номинал премии относительно базового актива).

Оба стопа на хвостовой риск срабатывают только на закрытиях 1-DAY; mark-цены ног могут отставать на один бар (только запаздывание назад, без заглядывания вперёд).

entry_premium берётся по закрытию бара ноги, а не по исполнению; нулевая mark-цена ноги занижает базу стопа по премии.

Анализ

Сначала исправь время цен ног, затем оптимизируй. Текущий P&L не измеряет заранее зарегистрированное окно от закрытия пятницы до закрытия понедельника. (1) Оценивай исполнение опционов в тот же момент, что и решение по споту (00:00 UTC). Варианты: используй бары опционов Deribit с интервалом 1-HOUR (или меньше) и бери бар, закрытие которого приходится на 00:00 UTC; либо используй цену mark Deribit на 00:00, если эти данные доступны. Не используй бары опционов 08:00 с отметкой времени 1-DAY. (2) Добавь проверку……Показать большеСвернуть

Сначала исправь время цен ног, затем оптимизируй. Текущий P&L не измеряет заранее зарегистрированное окно от закрытия пятницы до закрытия понедельника. (1) Оценивай исполнение опционов в тот же момент, что и решение по споту (00:00 UTC). Варианты: используй бары опционов Deribit с интервалом 1-HOUR (или меньше) и бери бар, закрытие которого приходится на 00:00 UTC; либо используй цену mark Deribit на 00:00, если эти данные доступны. Не используй бары опционов 08:00 с отметкой времени 1-DAY. (2) Добавь проверку устаревания: пропускай неделю, если последний бар любой из ног старше времени решения более чем на 1-2 часов. (3) Добавь проверку паритета при входе: пропускай неделю, если |(C-P) - (S-K)| > примерно 1% от S. (4) Учитывай реальную комиссию Deribit за опционы (0.0003 BTC за контракт за исполнение, но не более 12.5% премии) в расчёте P&L стратегии или указывай её отдельно; также закладывай не менее половины спреда на каждое исполнение. (5) Помимо показателя по отдельной ноге указывай P&L стрэддла в процентах от эквивалентного номинала базового актива и от собранной премии, чтобы оценивать экономику в единицах, сопоставимых с комиссиями. (6) Как недорогую дополнительную проверку по предложению QA, запусти такой же 3-дневный стрэддл с входом на закрытии вторника: это позволит отделить эффект выходных от обычного дохода за короткую волатильность. Оставь окно, правило выбора страйка, notional_pct и breach_band_pct заранее зарегистрированными. Если синхронных данных на 00:00 для этих экспираций нет, верни результат как data_wall, а не запускай повторно на барах 08:00. ## Уточнения библиотеки (из базы знаний; проверь их, не считай доказанными) Библиотека рекомендует до оптимизации исправить синхронизацию временных меток, транзакционные издержки опционов и расчёт доходности парного стрэддла. Она не подтверждает наличие BTC преимущества теты выходных. 1. [вход] Синхронизируй цены опционов с решениями по споту: для входа, запланированного выхода и ежедневных решений о стопе используй бары обеих опционных ног 1-HOUR, закрывающиеся точно в 00:00 UTC. Требуй совпадения временных меток, страйка и экспирации; отклоняй будущие наблюдения и пропускай вход, если бар любой ноги устарел более чем на 1 час. Никогда не подставляй дневные закрытия 08:00. Если синхронные оценочные цены недоступны, укажи data_wall; отмечай отсутствие цен выхода, а не предполагай исполнение. — Вывод аналитика о времени показывает, что заявленная доходность не подтверждает зарегистрированное окно. В исследовании стрэддлов библиотеки явно указано время наблюдения опционов, а цены входа и выхода извлекаются для конкретной позиции. Точная синхронизация 00:00 и порог устаревания адаптированы к этому заданию. (источник: Variance Risk Premium capture with Tail Protection, с. 1) 2. [издержки] Учитывай издержки всех четырёх исполнений опционов: продавай по синхронному bid и выкупай по ask, начисляя 1.0 котируемой половины спреда на каждое исполнение относительно mid. Проверь устойчивость при издержках в 1.5 и 2.0 половины спреда, не меняя торговые параметры. Отдельно учти все четыре комиссии, не дублируя комиссии движка. Предположение в отзыве о комиссии — контракты * min(0.0003 BTC, 0.125 * премия за контракт в BTC); перед реализацией сверь его с официальными настройками площадки. Отсутствие исторических данных о спреде укажи как ограничение данных об издержках. — Библиотека предупреждает, что спреды опционов могут поглотить значительную долю премии. Предложенный там вариант держать до погашения позволяет избежать спреда при выходе, но эта гипотеза требует выкупить обе ноги. Библиотека независимо не подтверждает переданное предположение о комиссии Deribit. (источник: Case Study: S&P 500 Options (Straddles), с. 1) 3. [параметры] Указывай доходность завершённых парных стрэддлов: во время исправления измерений зафиксируй notional_pct=0.25, breach_band_pct=0.04 и трёхдневное окно. Суммируй денежные потоки и издержки обеих ног в единой валюте, конвертируя денежные потоки в BTC по текущему на тот момент споту. При равном количестве контрактов q на каждой ноге и споте входа S0 указывай 100 * net_PnL / (q*S0), 100 * net_PnL / gross_entry_premium и 100 * net_PnL / entry_equity. Отдельно раскрывай валовой номинал двух ног 2*q*S0. Рассчитывай долю прибыльных сделок, фактор прибыли и число наблюдений на уровне конструкции; статистику ног оставь диагностической. — Положительный фактор прибыли и отрицательная средняя доходность ноги рассчитаны с разным взвешиванием экономики. Библиотека делает акцент на доходности стрэддла по позиции и издержках с учётом премии, а в обсуждении короткого стрэддла объясняет асимметрию убытков. Отчёт по паре проясняет знаменатель, не исключая убыточные ноги и не меняя гипотезу. (источник: Case Study: S&P 500 Options (Straddles), с. 1; Variance Risk Premium capture with Tail Protection, с. 1)

История итераций

no_change: итерация 4 в точности воспроизвела итерацию 3 (204 сделок, коэффициент Шарпа 4.507202383895712) — изменение кода не повлияло на торговлю; аналитику больше нечего оценивать

Проверка не пройдена (слой 3 — бэктест в песочнице): при тесте работоспособности будет загружено около 39,516,000 баров для 687 типов баров (окно начинается с 2020-03-15). Слой 3 не может выполнить это в пределах лимита 1800 с, поэтому вводные не позволят завершить запуск; это ограничение размера стратегии, а не сбой инфраструктуры. Сократи объём загрузки: используй меньше ног, более крупный таймфрейм или один тип баров на инструмент, а более медленные таймфреймы получай из него.

Обзор бэктеста

Шарп
4,51
Общая доходность
10,71%
Максимальная просадка
0,47%
Всего сделок
204
Доля прибыльных
62,3%
Профит-фактор
1,93

Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.