Четвер, 2 квітня, 16:02 за східним часом. Паперова книга виглядала саме так, як ми її задумали: лонг приблизно на $240,000 перпетуала BTCUSDT, шорт бета-зваженого кошика з COIN, MSTR, MARA і RIOT, залишок менше $500. П'ятничний хедж-джоб відпрацював о 15:45 тижнем раніше. Фандинг о 16:00 UTC був похибкою округлення. Я вилогінився з думкою, що в нас нарешті є криптовий рукав, який не просто відтворює бету Nasdaq.
П'ятниця була Страсною п'ятницею. Я це засік лише тому, що крипточат далі кидав скріншоти ліквідацій, а акційний чат затих у той особливий спосіб, який означає, що нікого немає в кріслі. NYSE і Nasdaq були закриті. Binance — ні. Від кеш-закриття четверга до 16:00 за східним часом у п'ятницю perp просів на 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 |
| Звичайна субота | Закритий | Акційні бари з forward-fill, живий perp | Заморожені імена, живий perp |
Ми перезапустили книгу з файлом сесій по майданчиках: регулярні години, свята, ранні закриття, закриття 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 усе одно з радістю назве ту п'ятницю робочим днем, якщо я йому дозволю.
← Усі статті


