14. november 2026 · forskning

Backtesten din handlet på langfredag. Aksjemarkedet gjorde det ikke.

Backtesten din handlet på langfredag. Aksjemarkedet gjorde det ikke.

Torsdag 2. april, 16:02 Eastern. Paper-boken så ut slik vi hadde designet den: long rundt $240,000 i BTCUSDT-perpetualen, short en beta-vektet kurv av COIN, MSTR, MARA og RIOT, residual under $500. Fredags-hedgejobben hadde kjørt kl. 15:45 uken før. Funding kl. 16:00 UTC hadde vært en avrundingsfeil. Jeg logget av og tenkte at vi endelig hadde en kryptosleeve som ikke bare gjenskapte Nasdaq-beta.

Fredag var langfredag. Jeg skjønte det først fordi kryptochatten fortsatt la ut screenshots av likvideringer og aksjechatten hadde stilnet på den bestemte måten som betyr at ingen sitter i stolen. NYSE og Nasdaq var stengt. Binance var det ikke. Fra torsdagens kontantstenging til fredag 16:00 Eastern var perpen ned 4.8%. Aksjeshortene eksisterte ikke som et marked den dagen. De var en rad med torsdagspriser i et risikopanel.

Risikoboten postet likevel.

beta mot hedge-kurv: 0.04. residual 1d: −$11,184. status: NEUTRAL

Jeg har fortsatt det screenshotet. En kollega skrev det ut og klistret det på kjøleskapet på kontoret vi knapt bruker. Den grønne NEUTRAL-en gjorde mye av jobben. Boten beregnet beta ut fra de siste aksjeprintene den hadde, som var torsdagens sluttauksjon, mot et BTC-mark som hadde beveget seg i tjuefire timer. Et frosset mark er et fotografi av torsdag. Å kalle fotografiet en hedge er slik du går inn i påskehelgen med en naken kryptoposisjon og en rapport som gratulerer deg for det.

Mandag åpnet kontantmarkedet. Kurven gappet ned, men ikke 4.8%, og ikke i takt. COIN åpnet −2.1%. MSTR gjorde mer. MARA gjorde mindre. Vi brukte formiddagen på å handle oss inn i en bok som hadde levd en hel ekstra sesjon vi ikke kunne hedge, og trakk deretter frem backtesten som hadde velsignet dette designet og stilte den et uhøflig spørsmål. Hva gjorde du forrige langfredag, og den før det, og hver ukedag aksjemarkedet sto over mens BTC handlet gjennom helligdagen?

Forskningsagenten som kodet den første versjonen, hadde resamplet alt til 15-minutters barer og forward-fillt. Pandas freq='B' sto i notebooken, som ser ut som et voksent valg inntil du husker hva det faktisk gjør. 'B' betyr mandag til fredag. Langfredag er en fredag. Juneteenth 2026 var en fredag. Independence Day-observasjonen var en fredag. Kalenderfunksjonen hadde ikke en kalender. Den hadde et ukedagsfilter.

Hedge-jobben kjører fredager kl. 15:45 Eastern, som er et rimelig tidspunkt å handle mot kontantstengingen i en vanlig uke. Langfredag er alltid en fredag. I vinduet 2023–2026 traff den jobben fire langfredager, Juneteenth, den fulle stengingen 3. juli og fire sesjoner dagen etter Thanksgiving som allerede hadde ringt en 1:00 PM-bjelle. Ti fredagssesjoner. På hver eneste av dem hadde simulatoren godtatt aksjeordrer. Fillene var torsdagens close, eller fredagens siste vanlige print båret frem, kledd opp som live-handler i blotteren. Kryptomarks kjørte live. Residualserien fikk kreditt for hedge-bevegelser det ene beinet aldri fikk sjanse til å svare på.

10fredagssesjoner kontantmarkedet ikke var åpent for rebalanseringen
4.8%perp-bevegelse mens aksjehedgen satt på torsdagens print
1.14 → 0.61residual-Sharpe etter at sesjonskalenderen var ekte

Helger var den samme bugen på en timeplan vi i det minste hadde spøkt om over øl. Helligdager var versjonen ingen spøkte om, fordi notebooken sa virkedager, og langfredag føles fortsatt, visceralt, som en dag det voksne finanssystemet er i arbeid. Bankene er åpne. Fedwire er oppe. Et megler-API kan se våkent ut og likevel ikke ha noe sted å sende en COIN-ordre.

Langfredag er ikke en føderal helligdag. Hvis sesjonssjekken din er "er bankkalenderen av," vil du handle et stengt aksjemarked. Columbus Day er speilbildet: kontantaksjer åpne, obligasjonsmarkedet stengt. Venue-åpningstider er en join-nøkkel, ikke en vibe.

Tidligstenginger var stillere og, i blotteren, grovere. 28. november 2025, dagen etter Thanksgiving, stengte NYSE kl. 1:00 PM. Jobben vår våknet likevel kl. 15:45, så på en 15-minutters serie som hadde båret 12:59s siste print i nesten tre timer, og "handlet closen." Fill-modellen belastet oss til og med closing-auction-slippage. Det var ingen auksjon kl. 16:00. Auksjonen hadde skjedd kl. 13:00, uten oss. Paper, den ettermiddagen, hadde den ærligere feilen: nye ordrer avvist, working orders kansellert inn i tidligstengingen, en fill-rate på null.

SesjonKontantmarkedBacktest-fillPaper
Langfredag 2026Stengt hele dagenKurv fylt til torsdagens closeAvvisninger; marks stale fra torsdag
Juneteenth 2026Stengt hele dagenSamme fredagsjobb, samme fantom-fillsOppdaget senere, i replayen
3. juli 2026Stengt (4. juli observert)Fredag 15:45 mot et torsdagsprintIngen kontantsesjon å bli med i
28. nov. 20251:00 PM-stenging15:45-rebalansering, 12:59 siste print, auksjonsslippageAvvisninger etter 13:00
Vanlig lørdagStengtForward-fillte aksjebarer, live perpFrosne navn, live perp

Vi kjørte boken på nytt med en sesjonsfil per venue: vanlige åpningstider, helligdager, tidligstenginger, 16:00 vs 13:00-stengingen og en stale-hours-teller på hvert mark. Ordrer inn i en stengt kontantsesjon fylles ikke til last. De avvises. Risikopanelet får ikke skrive NEUTRAL hvis noe hedge-bein har vært stale mer enn noen få timer. Enhetstesten er stygg, og jeg liker den: ta en vanlig fredag, mal den stengt, assert null COIN-fills og et stale-flagg på kurven. Og så mal 13:00 som close og assert at 15:45-jobben ikke engang kikker på auksjonsmodellen.

Residual-Sharpen gikk fra 1.14 til 0.61. Jeg behandler ikke noen av tallene som en grunn til å handle. Jeg behandler gapet som en tilståelse. Mye av det vi hadde kalt hedge-residual var krypto-helligdagsvolatilitet, samlet inn på dager det korte aksjebeinet var en suvenir fra forrige sesjon. Helger gjorde noe av den jobben også, som vi allerede diskonterte i samtalen. Helligdagene gjemte seg i virkedags-resamplet, som er et langt mer pinlig sted å gjemme seg.

Vi kjører fortsatt fredagsjobben kl. 15:45. Den leser nå en fil med tolv rader for 2026, hvorav to ennå ikke har skjedd. Thanksgiving er den 26. Dagen etter dør kontantmarkedet kl. 13:00. Jeg la inn den 1:00 PM-stengingen i kalenderen to ganger, under to forskjellige navn, fordi jeg ikke stoler på meg selv i november, og fordi pandas fortsatt gladelig vil kalle den fredagen en virkedag hvis jeg lar den.

helligdagermulti-assetkryptoaksjerbacktesting
← Alle innlegg