Donderdag 2 april, 16:02 Eastern. Het paperboek zag eruit zoals we het hadden ontworpen: long zo'n $240,000 van de BTCUSDT-perpetual, short een bètagewogen mandje van COIN, MSTR, MARA en RIOT, residu onder de $500. De vrijdagse hedgejob had de week ervoor om 15:45 gedraaid. Funding om 16:00 UTC was een afrondingsfout geweest. Ik logde uit in de gedachte dat we eindelijk een cryptosleeve hadden die niet simpelweg Nasdaq-bèta naspeelde.
Vrijdag was Goede Vrijdag. Ik had dat pas door omdat de cryptochat nog steeds liquidatiescreenshots postte en de equitychat was stilgevallen op de specifieke manier die betekent dat er niemand in een stoel zit. NYSE en Nasdaq waren gesloten. Binance niet. Van de cash close van donderdag tot vrijdag 16:00 Eastern stond de perp 4.8% lager. De equityshorts bestonden die dag niet als markt. Het was een rij donderdagprijzen in een risicopaneel.
De risicobot postte toch.
bèta t.o.v. hedgemandje: 0.04. residu 1d: −$11,184. status: NEUTRAL
Ik heb die screenshot nog. Een collega printte hem uit en plakte hem op de koelkast in het kantoor dat we nauwelijks gebruiken. Het groene NEUTRAL deed een hoop werk. De bot berekende bèta uit de laatste equityprints die hij had, de closing auction van donderdag, tegen een BTC-mark die al vierentwintig uur in beweging was. Een bevroren mark is een foto van donderdag. Die foto een hedge noemen is hoe je het paasweekend inloopt met een naakte cryptopositie en een rapport dat je daarvoor feliciteert.
Maandag opende de cashmarkt. Het mandje gatte omlaag, maar niet 4.8%, en niet gezamenlijk. COIN opende −2.1%. MSTR deed meer. MARA deed minder. We brachten de ochtend door met handelen in een boek dat een hele extra sessie had geleefd die we niet konden hedgen, en haalden toen de backtest tevoorschijn die dit ontwerp had gezegend en stelden hem een onbeschofte vraag. Wat deed jij afgelopen Goede Vrijdag, en die daarvoor, en elke weekdag dat de aandelenmarkt thuisbleef terwijl BTC door de feestdag heen handelde?
De research-agent die de eerste versie had gecodeerd, had alles geresampled naar 15-minutenbars en forward-filled. Pandas freq='B' stond in de notebook, wat als een volwassen keuze oogt totdat je je herinnert wat het daadwerkelijk doet. 'B' betekent maandag tot en met vrijdag. Goede Vrijdag is een vrijdag. Juneteenth 2026 was een vrijdag. De Independence Day-observance was een vrijdag. De kalenderfunctie had geen kalender. Hij had een weekdagfilter.
De hedgejob draait op vrijdagen om 15:45 Eastern, een redelijk tijdstip om in een normale week naar de cash close toe te handelen. Goede Vrijdag valt altijd op een vrijdag. In het venster 2023–2026 viel die job samen met vier Goede Vrijdagen, Juneteenth, de volledige sluiting op 3 juli, en vier sessies de dag na Thanksgiving die al om 1:00 PM de bel hadden geluid. Tien vrijdagsessies. Op elk daarvan had de simulator equityorders geaccepteerd. De fills waren de close van donderdag, of de laatste reguliere print van vrijdag die was doorgeschoven, opgedirkt als live trades in de blotter. Cryptomarks liepen live. De residureeks kreeg krediet voor hedgebewegingen die het ene been nooit de kans had gehad te beantwoorden.
Weekenden waren dezelfde bug op een schema waar we tenminste over hadden gegrapt bij het bier. Feestdagen waren de versie waar niemand over grapte, omdat de notebook business days zei en Goede Vrijdag nog steeds, visceraal, voelt als een dag waarop het volwassen financiële systeem aan het werk is. Banken zijn open. Fedwire is up. Een broker-API kan wakker lijken en toch nergens een COIN-order naartoe kunnen sturen.
Vroege sluitingen waren stiller en, in de blotter, botter. Op 28 november 2025, de dag na Thanksgiving, sloot NYSE om 1:00 PM. Onze job werd nog steeds wakker om 15:45, keek naar een 15-minutenreeks die de laatste print van 12:59 al bijna drie uur meedroeg, en "handelde de close." Het fillmodel rekende ons zelfs closing-auction-slippage aan. Er was geen auction om 16:00. De auction had om 13:00 plaatsgevonden, zonder ons. Paper had die middag de eerlijkere mislukking: nieuwe orders geweigerd, working orders geannuleerd bij de vroege sluiting, een fill rate van nul.
| Sessie | Cashmarkt | Backtest-fill | Paper |
|---|---|---|---|
| Goede Vrijdag 2026 | Hele dag gesloten | Mandje gevuld tegen de close van donderdag | Rejects; marks stale vanaf donderdag |
| Juneteenth 2026 | Hele dag gesloten | Dezelfde vrijdagjob, dezelfde fantoomfills | Later betrapt, in de replay |
| 3 juli 2026 | Gesloten (4 juli observed) | Vrijdag 15:45 tegen een donderdagprint | Geen cashsessie om in te stappen |
| 28 nov 2025 | Sluiting 1:00 PM | Rebalance 15:45, laatste print 12:59, auction-slippage | Rejects na 13:00 |
| Gewone zaterdag | Gesloten | Forward-filled equitybars, live perp | Bevroren namen, live perp |
We draaiden het boek opnieuw met een sessiebestand per venue: reguliere uren, feestdagen, vroege sluitingen, de close van 16:00 vs 13:00, en een stale-hours-teller op elke mark. Orders in een gesloten cashsessie fillen niet tegen last. Ze rejecten. Het risicopaneel mag geen NEUTRAL printen als een hedgebeen meer dan een paar uur stale is. De unit test is lelijk en ik vind hem mooi: neem een gewone vrijdag, schilder hem dicht, assert nul COIN-fills en een stale-flag op het mandje. En schilder daarna 13:00 als de close en assert dat de 15:45-job niet eens naar het auction-model kijkt.
De residual Sharpe ging van 1.14 naar 0.61. Ik behandel geen van beide getallen als een reden om te handelen. Ik behandel het gat als een bekentenis. Een groot deel van wat we hedgeresidu hadden genoemd, was crypto-feestdagvolatiliteit, binnengehaald op dagen dat het short-aandelenbeen een souvenir van de vorige sessie was. Weekenden deden een deel van dat werk ook, en dat hadden we in gesprekken al weggestreept. De feestdagen zaten verstopt in de business-day-resample, een veel gênantere plek om je te verstoppen.
We draaien de vrijdagjob van 15:45 nog steeds. Hij leest nu een bestand met twaalf rijen voor 2026, waarvan er twee nog niet hebben plaatsgevonden. Thanksgiving is de 26e. De dag erna sterft de cashmarkt om 13:00. Ik heb die sluiting van 1:00 PM twee keer in de kalender gezet, onder twee verschillende namen, omdat ik mezelf in november niet vertrouw, en omdat pandas die vrijdag nog steeds vrolijk een business day noemt als ik het toelaat.
← Alle artikelen


