Konfigurasjonen sa starting_capital: 100000, og y-aksen på grafen sa USD. Hver fill i loggen var et USDC-tall. I elleve måneder av den kjøringen bodde de to faktaene i samme celle, og ingen hadde grunn til å skille dem.
Så kollapset Silicon Valley Bank, Circle sa at $3.3 milliarder av USDC-reservene satt fast der, og USDC ble handlet til 87 cent. «Dollar»-boken vår gikk opp. BTC priset i USDC skjøt i været. Perpen printet grønt. Kontantene vi hadde behandlet som en risikofri 100,000, var det som beveget seg.
Jeg støter fortsatt på research-pipelines som behandler USDC, USDT og USD som én kolonne. Dette er den helgen, plukket fra hverandre i den rekkefølgen ledgeren så det.
Linjen som sa $100,000
Papirkonto, USDC-margined BTC-perpetual, beskjeden long. 30,000 USDC i BTC-notional, om lag 1.5 BTC til fredagsmarken nær $20,150. De andre 70,000 sto som USDC-sikkerhet. Underallokert med vilje. Vi varmet opp en strategi. Resten av stakken satt i kontanter.
NAV-funksjonen gjorde det de fleste av dem gjør. Den la USDC-kontanter til urealisert USDC-pnl og skrev summen inn i en serie kalt equity_usd. Det sto en kommentar i konfigurasjonen jeg hadde skrevet selv:
stablecoins = 1 dollar. ikke dobbeltell FX.
Jeg hadde ment: ikke gjør om en USDT-funding-betaling til en ekstra dollarbevegelse ved å konvertere den to ganger. Det jeg faktisk hadde gjort, var å fryse FX-kursen på 1.0 for resten av filen.
quote_asset = "USDC"
Venuen var en USDC-venue. Fills, margin, funding, likvidasjonsmarkeringer, lot size, min notional, alt sammen. Hyperliquid, dYdX v3, Coinbase International, et dusin andre, samme form. Research-notatboken importerte et BTCUSDC-candle og et BTCUSD-candle, brukte det første til trading, og merket det andre på plottet fordi plottet så mer profesjonelt ut i dollar.
Og dette er den lille, dumme detaljen jeg fortsatt tenker på i utide: plottingbibliotekets standard aksetittel er «USD». Jeg overstyrte den aldri. Folk gikk forbi skjermen og leste en enhet som serien ikke hadde.
Fredag kveld, Circles tweet
10. mars 2023. SVB er allerede borte. Circle opplyser at $3.3 milliarder av dens daværende ~$40 milliarder USDC-reserve sto i den konkursrammede banken, om lag 8%. Coinbase stanser USDC-konverteringer samme kveld. Innløsning, den egentlige peg-mekanismen, er stengt for helgen.
Backtesten hadde ingen rad for noe av dette. Ingen flagg for innløsningsstans, ingen utsteder-reservefelt, ingen «kan jeg få dollar for denne tokenen før mandag». Den hadde en close. Closet på fredag var fortsatt 1.0000 i FX-filen vår, fordi FX-filen var en stub som returnerte 1.0 for alt hvis ticker startet med USD.
Jeg pleide å behandle en USDT-premium som lærebokstøy, den slags du nevner i en fotnote og så ignorerer. Vi brukte en gang tjue minutter på et kjøkken på å krangle om hvorvidt 1.03 var «verdt å bokføre». Vi drev begge med meningsytring. Paret er en serie. Lagre den. Slutt å stemme over den.
0.8789
Lørdag morgen. CoinGeckos bunnotering for USDC er $0.8789. Andre tapper printer $0.87. Noen DEX-pooler går gjennom $0.80. DAI, stappet med USDC som sikkerhet, følger den ned. USDT går den andre veien, $1.03 på noen skjermer, $1.06 på Kraken.
Stub-FX-filen returnerer fortsatt 1.0. Backtestens klokke vet at det er lørdag. Den vet ikke at enheten i boken nå er en kriserammet token.
Kraken-printet på 26,000
Bitstamp BTC/USD kretser rundt $20,200. Kraken BTC/USDC printer over $26,000. Det er den samme bitcoinen. Det andre tallet er en dollarpris delt på en ødelagt peg, pluss den luften en tynn USDC-bok tilfører på en lørdag.
Venuen vår merket perpetuellen i USDC. Ta en konservativ tape, BTC/USDC på ~$23,000, som er $20,200 / 0.88. Longen på 1.5 BTC er opp om lag 4,300 USDC. Konto i native enheter: 104,300 USDC. Motoren rapporterer $104,300, en 4.3% opp-helg, og en funding-betaling lander oppå det i samme enhet.
I dollar er de 70,000 USDC i ledig sikkerhet verdt om lag $61,600. Hele de 104,300 USDC er verdt om lag $91,800. Boken som «tjente» 4.3%, tapte 8% av dollarkapitalen sin mens den for det meste satt i kontanter.
Helgeavkastningen var et enhetsskifte, ikke et formueskifte. En long BTC/USDC-posisjon på en USDC-ned-dag er mekanisk long depeggen. Du kan ønske deg den betten. Du kan ikke oppdage den i ettertid i en serie merket USD.
cash_usd = cash_usdc * 1.0
Den linjen er den jeg beholder. Den kjørte på hver bar, inkludert barene der USDCUSD var 0.87. Å gange med 1.0 føles som en no-op, og det er derfor den overlever kodegjennomgang. Det er et FX-mark. Et frosset slikt.
De 70,000 USDC i sikkerhet utløste aldri en trade, så ingen slippage-modell så noen gang på dem, ingen gebyrtabell, ingen funding. Kontanter skal være den kjedelige kolonnen. På denne boken var det den største risikoen, og den eneste vi ikke prissatte.
En maker-rabatt på BTC-fillene den helgen var 2 eller 3 bps, hvis du i det hele tatt fikk fill. Bevegelsen i quote-assetet var 1,300 bps. Vi har en hel stakk for de 3 og en stub for de 1,300.
Den grønne helgen på grafen
Mandag morgen på Slack, før noen hadde åpnet USDCUSD: vi printet 4% over natten. Noen spurte om vi burde skalere papirstørrelsen. Jeg så på grafen, så på Kraken, så på stubben.
| Hovedbokspost | Det motoren lagret | Lørdag, native | Samme øyeblikk, i dollar |
|---|---|---|---|
| Ledig sikkerhet | 70,000 USDC × 1.00 | 70,000 USDC | ~$61,600 |
| BTC-perp-mark | BTCUSDC last | ~23,000 USDC (26,000 på Kraken) | BTCUSD ~$20,200 |
| Urealisert på 1.5 BTC | +4,300 USDC | +4,300 USDC | mest peggen, noe bitcoin |
| Rapportert NAV | 104,300 «USD» | 104,300 USDC | ~$91,800 |
USDT-bøker hadde den motsatte karikaturen. USDT ble handlet over pari, så en USDT-margined flat konto viste en dollargevinst den heller ikke hadde tjent, og en BTCUSDT-markering som var for lav relativt til BTCUSD. Hvis du rangerte to «identiske» BTC-perps den helgen, én på en USDC-venue og én på en USDT-venue, rangerte du quote-tokenene og kalte det alfa.
Papirkontoen, den som faktisk holdt USDC, var nærmere sannheten enn research-dashbordet. Den hevdet aldri å være dollar. Det gjorde vi i eksporten.
Eksporten vi sendte mandag
USDC krabbet tilbake mot $1 etter at Treasury, Fed og FDIC sa at SVB-innskyterne ville bli holdt skadesløse, og etter at Circle sa at de ville dekke et underskudd. Innen mandag var peggen stort sett lappet. Stub-FX-filen, som hadde vært feil i 48 timer, var riktig igjen.
Men daglige barer skjulte det. 00:00 UTC-utvalget 11. mars fanget USDC allerede av, eller allerede i oppsving, avhengig av leverandøren, og 12. mars-utvalget var en annen film. Hvis du bare lagret NAV og ikke quote-markeringen, kunne du ikke rekonstruere hvilken. Den stygge helgen ble flatet ut til et blipp lite nok til å ignorere, noe vi gjorde, fordi vi samplet daglig.
Det vi nå fører på boken, er tre serier, alltid, selv når de ligger oppå hverandre i månedsvis:
- NAV i venuens quote-asset, enheten du faktisk kan ta ut.
- Quote-asset versus USD, en ekte tape, inkludert lørdag, inkludert 0.87, inkludert timene Coinbase ikke konverterte.
- NAV i dollar, som en avledet serie, slik at en plotetikett med USD har en forelder.
Hvis en agent skriver backtesten, er sjekken den samme. Spør den om quote-assetet til hver posisjon og til kontanter. Hvis den svarer USD på en USDC-venue, er kjøringen ikke en dollarkjøring. Mars 2023 er uken jeg spiller av når noen forteller meg at skillet ikke flytter Sharpen. Det flyttet denne mer enn strategien gjorde, og strategien var den delen vi hadde modeller for.
← Alle innlegg


