Четверг, 2 апреля, 16:02 по восточному времени. Бумажная книга выглядела так, как мы её задумали: лонг примерно на $240,000 в перпетуале BTCUSDT, шорт бета-взвешенной корзины COIN, MSTR, MARA и RIOT, остаток меньше $500. Пятничный хедж-джоб отработал в 15:45 на прошлой неделе. Фондирование в 16:00 UTC было ошибкой округления. Я отключился с мыслью, что у нас наконец есть крипто-рукав, который не просто воспроизводит бету Nasdaq.
Пятница была Страстной пятницей. Я это засёк только потому, что в крипто-чате всё ещё кидали скриншоты ликвидаций, а чат по акциям затих тем особым образом, который означает: никого нет в кресле. NYSE и Nasdaq были закрыты. Binance — нет. С четвергового закрытия спота до пятницы 16:00 по восточному времени перп просел на 4.8%. Шорты по акциям в тот день рынком не существовали. Это была строка четверговых цен в риск-панели.
Риск-бот всё равно написал.
бета к хедж-корзине: 0.04. остаток 1d: −$11,184. статус: NEUTRAL
У меня до сих пор есть этот скриншот. Коллега распечатал его и прилепил на холодильник в офисе, которым мы почти не пользуемся. Зелёный NEUTRAL тянул на себе слишком много. Бот считал бету по последним принтам акций, которые у него были, — а это был четверговый аукцион закрытия, — против марки BTC, которая двигалась уже двадцать четыре часа. Замороженная марка — это фотография четверга. Назвать фотографию хеджем — вот как входишь в пасхальные выходные с голой крипто-позицией и отчётом, который тебя за это поздравляет.
В понедельник спотовый рынок открылся. Корзина гэпнула вниз, но не на 4.8% и не вместе. COIN открылся на −2.1%. MSTR — сильнее. MARA — слабее. Мы провели утро, торгуя в книгу, которая прожила целую лишнюю сессию, которую мы не могли хеджировать, потом вытащили бэктест, который освятил эту конструкцию, и задали ему грубый вопрос. Что ты делал в прошлую Страстную пятницу, и в ту, что была до неё, и в каждый будний день, когда фондовый рынок сидел в стороне, а BTC торговался сквозь праздник?
Исследовательский агент, который закодил первую версию, пересэмплировал всё в 15-минутные бары и сделал forward-fill. Pandas freq='B' стоял в ноутбуке — выглядит как взрослый выбор, пока не вспомнишь, что он на самом деле делает. 'B' означает с понедельника по пятницу. Страстная пятница — это пятница. Juneteenth 2026 выпал на пятницу. Перенос Дня независимости выпал на пятницу. У календарной функции не было календаря. Был фильтр дней недели.
Хедж-джоб запускается по пятницам в 15:45 по восточному времени — разумное время, чтобы торговать к закрытию спота на обычной неделе. Страстная пятница всегда пятница. В окне 2023–2026 этот джоб совпал с четырьмя Страстными пятницами, Juneteenth, полным закрытием 3 июля и четырьмя сессиями на следующий день после Дня благодарения, которые уже прозвонили колокол в 1:00 PM. Десять пятничных сессий. На каждой из них симулятор принимал заявки по акциям. Исполнениями были четверговое закрытие или последний регулярный принт пятницы, протянутый вперёд и наряженный под живые сделки в блоттере. Крипто-марки шли вживую. Ряд остатка получал зачёт за хеджирующие движения, на которые одна нога так и не успела ответить.
Выходные были тем же багом по расписанию, над которым мы хотя бы шутили за пивом. Праздники были версией, над которой никто не шутил: ноутбук говорил «рабочие дни», а Страстная пятница нутром всё равно ощущается как день, когда взрослая финансовая система работает. Банки открыты. Fedwire поднят. API брокера может выглядеть бодрым — и всё равно некуда отправить заявку по COIN.
Ранние закрытия были тише и, в блоттере, грубее. 28 ноября 2025 года, на следующий день после Дня благодарения, NYSE закрылась в 1:00 PM. Наш джоб всё равно проснулся в 15:45, посмотрел на 15-минутный ряд, который почти три часа нёс последний принт 12:59, и «торговал закрытие». Модель исполнения даже начислила нам проскальзывание аукциона закрытия. Аукциона в 16:00 не было. Аукцион прошёл в 13:00 — без нас. Бумага в тот день дала более честный отказ: новые заявки отклонены, рабочие заявки сняты к раннему закрытию, fill rate — ноль.
| Сессия | Спотовый рынок | Исполнение в бэктесте | Бумага |
|---|---|---|---|
| Страстная пятница 2026 | Закрыт весь день | Корзина исполнена по четверговому закрытию | Отклонения; марки протухшие с четверга |
| Juneteenth 2026 | Закрыт весь день | Тот же пятничный джоб, те же фантомные исполнения | Поймали позже, на реплее |
| 3 июля 2026 | Закрыт (перенос 4 июля) | Пятница 15:45 против четвергового принта | Нет спотовой сессии, к которой присоединиться |
| 28 ноября 2025 | закрытие в 1:00 PM | ребаланс в 15:45, последний принт 12:59, проскальзывание аукциона | Отклонения после 13:00 |
| Обычная суббота | Закрыт | Форвард-заполненные бары акций, живой перп | Замороженные имена, живой перп |
Мы перезапустили книгу с файлом сессий по площадкам: регулярные часы, праздники, ранние закрытия, закрытие 16:00 vs 13:00 и счётчик часов протухания на каждой марке. Заявки в закрытую спотовую сессию не исполняются по last. Они отклоняются. Риск-панели нельзя печатать NEUTRAL, если любая нога хеджа протухла больше чем на несколько часов. Юнит-тест уродливый — и мне это нравится: взять обычную пятницу, закрасить её закрытой, assert ноль исполнений COIN и флаг stale на корзине. А потом закрасить 13:00 как закрытие и assert, что джоб в 15:45 даже не взглянет в сторону модели аукциона.
Sharpe остатка упал с 1.14 до 0.61. Я не считаю ни то ни другое число причиной торговать. Я считаю этот разрыв признанием. Многое из того, что мы называли остатком хеджа, было праздничной волатильностью крипты, собранной в дни, когда шортовая нога по акциям была сувениром предыдущей сессии. Выходные тоже делали часть этой работы — это мы уже дисконтировали в разговорах. Праздники прятались в ресэмпле рабочих дней, а это куда более постыдное место, чтобы прятаться.
Мы по-прежнему запускаем пятничный джоб в 15:45. Теперь он читает файл с двенадцатью строками на 2026 год, две из которых ещё не случились. День благодарения — 26-е. На следующий день спотовый рынок умирает в 13:00. Я занёс это закрытие в 1:00 PM в календарь дважды, под двумя разными именами, потому что не доверяю себе в ноябре и потому что pandas по-прежнему с радостью назовёт эту пятницу рабочим днём, если я ему позволю.
← Все статьи


