Joi, 2 aprilie, 16:02 Eastern. Cartea de paper arăta exact cum o proiectasem: long circa $240,000 pe perpetualul BTCUSDT, short pe un coș ponderat cu beta din COIN, MSTR, MARA și RIOT, rezidual sub $500. Jobul de hedge de vineri rulase la 15:45 săptămâna precedentă. Funding-ul de la 16:00 UTC fusese o eroare de rotunjire. M-am deconectat cu gândul că, în sfârșit, aveam un sleeve crypto care nu recrea doar beta-ul Nasdaq.
Vinerea era Vinerea Mare. Mi-am dat seama abia pentru că chatul de crypto tot punea screenshot-uri cu lichidări, iar chatul de acțiuni tăcuse în felul acela precis care înseamnă că nimeni nu e pe scaun. NYSE și Nasdaq erau închise. Binance, nu. De la close-ul cash de joi până vineri la 16:00 Eastern, perp-ul era jos 4.8%. Short-urile pe acțiuni nu existau ca piață în ziua aceea. Erau un rând de prețuri de joi într-un panou de risc.
Botul de risc a postat oricum.
beta față de coșul de hedge: 0.04. rezidual 1d: −$11,184. status: NEUTRAL
Încă am screenshot-ul ăla. Un coleg l-a printat și l-a lipit pe frigiderul din biroul pe care abia îl folosim. Verdele NEUTRAL muncea din greu. Botul calcula beta din ultimele printuri pe acțiuni pe care le avea, care erau auction-ul de închidere de joi, față de un mark BTC care se mișcase de douăzeci și patru de ore. Un mark înghețat e o fotografie de joi. Să numești fotografia un hedge e felul în care ajungi în weekendul de Paște cu o poziție crypto descoperită și un raport care te felicită pentru asta.
Luni s-a deschis piața cash. Coșul a făcut gap în jos, dar nu 4.8%, și nu împreună. COIN a deschis −2.1%. MSTR a făcut mai mult. MARA a făcut mai puțin. Am petrecut dimineața tranzacționând într-o carte care trăise o sesiune întreagă în plus pe care n-o putusem hedga, apoi am scos backtestul care binecuvântase designul ăsta și i-am pus o întrebare obraznică. Ce-ai făcut Vinerea Mare trecută, și pe cea dinainte, și în fiecare zi lucrătoare în care piața de acțiuni a stat deoparte în timp ce BTC se tranzacționa prin sărbătoare?
Agentul de research care a scris prima versiune resample-ase totul pe bare de 15 minute și făcuse forward-fill. Pandas freq='B' era în notebook, ceea ce pare o alegere de om mare până îți amintești ce face de fapt. 'B' înseamnă de luni până vineri. Vinerea Mare e o vineri. Juneteenth 2026 a fost o vineri. Observarea Zilei Independenței a fost o vineri. Funcția de calendar nu avea un calendar. Avea un filtru de zile ale săptămânii.
Jobul de hedge rulează vinerea la 15:45 Eastern, o oră rezonabilă ca să tranzacționezi spre close-ul cash într-o săptămână normală. Vinerea Mare e întotdeauna o vineri. În fereastra 2023–2026, jobul s-a aliniat cu patru Vineri Mari, Juneteenth, închiderea completă din 3 iulie și patru sesiuni din ziua de după Ziua Recunoștinței care bătuseră deja clopotul la 1:00 PM. Zece sesiuni de vineri. În fiecare dintre ele simulatorul acceptase ordine pe acțiuni. Fill-urile erau close-ul de joi, sau ultimul print regulat de vineri purtat înainte, deghizate în tranzacții live în blotter. Mark-urile crypto rulau live. Seria reziduală a primit credit pentru mișcări de hedge pe care un picior n-a avut nicio șansă să le răspundă.
Weekendurile erau același bug pe un program despre care măcar glumisem la o bere. Sărbătorile erau varianta despre care nimeni nu glumea, pentru că notebook-ul spunea zile lucrătoare, iar Vinerea Mare încă se simte, visceral, ca o zi în care sistemul financiar adult e la treabă. Băncile sunt deschise. Fedwire e sus. Un API de broker poate părea treaz și totuși să n-aibă unde să trimită un ordin pe COIN.
Închiderile anticipate erau mai tăcute și, în blotter, mai obraznice. Pe 28 noiembrie 2025, a doua zi după Ziua Recunoștinței, NYSE s-a închis la 1:00 PM. Jobul nostru s-a trezit tot la 15:45, s-a uitat la o serie de 15 minute care ducea ultimul print de la 12:59 de aproape trei ore și „a tranzacționat close-ul”. Modelul de fill ne-a taxat până și slippage de auction de închidere. Nu a existat auction la 16:00. Auction-ul avusese loc la 13:00, fără noi. Paper-ul, în după-amiaza aia, a avut eșecul mai cinstit: ordine noi respinse, ordine active anulate în închiderea anticipată, o rată de fill de zero.
| Sesiune | Piața cash | Fill în backtest | Paper |
|---|---|---|---|
| Vinerea Mare 2026 | Închisă toată ziua | Coșul umplut la close-ul de joi | Respingeri; mark-uri stale de joi |
| Juneteenth 2026 | Închisă toată ziua | Același job de vineri, aceleași fill-uri fantomă | Prins mai târziu, în replay |
| 3 iulie 2026 | Închisă (4 iulie observată) | Vineri 15:45 pe un print de joi | Nicio sesiune cash de prins |
| 28 nov. 2025 | Închidere 1:00 PM | Rebalansare 15:45, ultimul print 12:59, slippage de auction | Respingeri după 13:00 |
| Sâmbătă obișnuită | Închisă | Bare de acțiuni cu forward-fill, perp live | Nume înghețate, perp live |
Am rulat din nou cartea cu un fișier de sesiuni per venue: program regulat, sărbători, închideri anticipate, close-ul 16:00 vs 13:00 și un contor de ore stale pe fiecare mark. Ordinele într-o sesiune cash închisă nu primesc fill la last. Se resping. Panoul de risc n-are voie să afișeze NEUTRAL dacă vreun picior de hedge e stale de mai mult de câteva ore. Unit testul e urât și îmi place: iei o vineri normală, o pictezi închisă, asertezi zero fill-uri pe COIN și un flag stale pe coș. Apoi pictezi 13:00 ca close și asertezi că jobul de 15:45 nici măcar nu se uită la modelul de auction.
Sharpe-ul rezidual a trecut de la 1.14 la 0.61. Nu tratez niciunul dintre numere ca pe un motiv de a tranzacționa. Tratez decalajul ca pe o mărturisire. Mult din ce numeam rezidual de hedge era volatilitate crypto de sărbătoare, strânsă în zilele în care piciorul short pe acțiuni era un suvenir al sesiunii precedente. Weekendurile au făcut și ele o parte din treaba asta, pe care o treceam deja cu discount în conversație. Sărbătorile se ascundeau în resample-ul pe zile lucrătoare, un loc mult mai jenant în care să te ascunzi.
Încă rulăm jobul de vineri de la 15:45. Acum citește un fișier cu douăsprezece rânduri pentru 2026, două dintre ele încă nu s-au întâmplat. Ziua Recunoștinței e pe 26. A doua zi, piața cash moare la 13:00. Am băgat close-ul ăla de 1:00 PM în calendar de două ori, sub două nume diferite, pentru că nu am încredere în mine în noiembrie și pentru că pandas tot va numi cu plăcere vinerea aia o zi lucrătoare dacă îl las.
← Toate articolele


