A konfig azt mondta: starting_capital: 100000, a grafikon y-tengelye pedig USD-t. A logban minden kötés egy USDC-szám volt. Annak a futtatásnak tizenegy hónapján a két tény ugyanabban a cellában élt, és senkinek nem volt oka szétválasztani őket.
Aztán bedőlt a Silicon Valley Bank, a Circle közölte, hogy $3.3 milliárdnyi USDC-tartalék ragadt ott, és a USDC 87 centen kereskedett. A „dollár” könyvünk felment. A USDC-ben árazott BTC elszállt. A perp zöldet nyomott. A készpénz, amit kockázatmentes 100,000-nek kezeltünk, volt az, ami megmozdult.
Még mindig belefutok olyan kutatási pipeline-okba, amelyek a USDC-t, az USDT-t és a USD-t egy oszlopnak jelölik. Ez az a hétvége, szétszedve abban a sorrendben, ahogy a főkönyv látta.
A sor, amelyen $100,000 állt
Papírszámla, USDC-marginált BTC-perpetual, szerény long. 30,000 USDC BTC-nominális, körülbelül 1.5 BTC a pénteki jegyzésen, $20,150 közelében. A másik 70,000 USDC-fedezetként ült. Szándékosan alulallokálva. Egy stratégiát melegítettünk be. A stack többi része készpénzben ült.
A NAV-függvény azt csinálta, amit a legtöbbjük. Hozzáadta a USDC-készpénzt a USDC nem realizált pnl-hez, és az összeget egy equity_usd nevű sorozatba írta. A konfigban volt egy komment, amit magam írtam:
stablecoins = 1 dollar. don't double-count FX.
Arra gondoltam: ne legyen egy USDT funding-fizetésből második dollármozgás attól, hogy kétszer váltod át. Amit valójában csináltam, az az volt, hogy 1.0-ra fagyasztottam az FX-árfolyamot a fájl hátralévő részére.
quote_asset = "USDC"
A tőzsde USDC-tőzsde volt. Kötések, margin, funding, likvidációs jegyzések, a lotméret, a min notional, az egész. Hyperliquid, dYdX v3, Coinbase International, egy tucat másik, ugyanaz a forma. A kutatási notebook beimportált egy BTCUSDC-gyertyát és egy BTCUSD-gyertyát, az elsőt használta a kereskedéshez, a másodikat pedig a ploton címkézte, mert a plot dollárban professzionálisabbnak hatott.
És ez az a kicsi, ostoba rész, amin még mindig a nap furcsa óráiban gondolkodom: a plotkönyvtár alapértelmezett tengelycíme „USD”. Soha nem írtam felül. Az emberek elmentek a képernyő mellett, és egy olyan egységet olvastak le, amilyen a sorozatnak nem volt.
Péntek este, a Circle tweetje
2023. március 10. Az SVB már nincs. A Circle közzéteszi, hogy akkoriban ~$40 milliárd USDC-tartalékából $3.3 milliárd a bedőlt banknál ült, nagyjából 8%. A Coinbase még aznap este felfüggeszti a USDC-átváltásokat. A visszaváltás, magának a pegnek a mechanizmusa, zárva van a hétvégére.
A backtestnek nem volt sora semmire ebből. Nem volt visszaváltás-leállítási flag, nem volt kibocsátói-tartalék mező, nem volt „kaphatok-e dollárt ezért a tokenért hétfő előtt.” Volt egy close. A pénteki close még mindig 1.0000 volt az FX-fájlunkban, mert az FX-fájl egy stub volt, amely 1.0-t adott vissza mindenre, aminek a tickere USD-vel kezdődött.
Régebben a USDT-prémiumot tankönyvi zajnak kezeltem, amilyet lábjegyzetben említesz, aztán figyelmen kívül hagysz. Egyszer húsz percet töltöttünk egy konyhában azon vitatkozva, hogy az 1.03 „megéri-e könyvelni.” Mindketten véleményt gyártottunk. A pár egy sorozat. Tárold. Ne szavazz róla.
0.8789
Szombat reggel. A CoinGecko USDC-minimuma $0.8789. Más szalagok $0.87-et nyomtatnak. Néhány DEX-pool $0.80-on megy át. A DAI, USDC-fedezettel tömve, követi lefelé. A USDT a másik irányba megy, $1.03 néhány képernyőn, $1.06 a Krakenen.
A stub FX-fájl továbbra is 1.0-t ad vissza. A backtest órája tudja, hogy szombat van. Azt nem tudja, hogy a könyv egysége most egy bajba jutott token.
A Kraken-kötés 26,000-nél
A Bitstamp BTC/USD $20,200 körül kering. A Kraken BTC/USDC $26,000 fölött nyomtat. Ez ugyanaz a bitcoin. A második szám egy dollárár osztva egy eltört peggel, plusz amennyi levegőt egy vékony USDC-könyv hozzáad egy szombaton.
A tőzsdénk USDC-ben jegyezte a perpetualt. Vegyünk egy konzervatív szalagot, BTC/USDC ~$23,000-en, ami $20,200 / 0.88. Az 1.5 BTC long körülbelül 4,300 USDC-vel van feljebb. Számla natív egységben: 104,300 USDC. A motor $104,300-at jelent, egy 4.3%-os pluszos hétvégét, és egy funding-fizetés landol rá ugyanabban az egységben.
Dollárban a 70,000 USDC tétlen fedezet körülbelül $61,600-ot ér. Az egész 104,300 USDC körülbelül $91,800-ot ér. A könyv, amely „csinált” 4.3%-ot, 8%-ot vesztett a dollártőkéjéből, miközben többnyire készpénzben ült.
A hétvégi hozam egységváltás volt, nem sorsfordulat. Egy long BTC/USDC pozíció egy USDC-lefelé napon mechanikusan long a depegen. Szabad ilyen tétet akarni. Utána nem fedezheted fel egy USD-címkéjű sorozatban.
cash_usd = cash_usdc * 1.0
Ez az a sor, amit magamnál tartok. Minden baron lefutott, beleértve azokat a barokat is, ahol a USDCUSD 0.87 volt. Az 1.0-val szorzás no-opnak tűnik, ezért éli túl a code review-t. Ez egy FX-értékelés. Egy befagyasztott.
A 70,000 USDC fedezet soha nem indított ügyletet, így egyetlen slippage-modell sem nézett rá soha, sem díjtábla, sem funding. A készpénznek az unalmas oszlopnak kellene lennie. Ezen a könyvön ez volt a legnagyobb kockázat, és az egyetlen, amit nem áraztunk.
A maker-visszatérítés a BTC-kötéseken azon a hétvégén 2 vagy 3 bps volt, ha egyáltalán volt fill. A jegyzési eszköz mozgása 1,300 bps volt. Van egy egész stackünk a 3-ra, és egy stub a 1,300-ra.
A zöld hétvége a grafikonon
Hétfő reggeli Slack, mielőtt bárki kinyitotta volna a USDCUSD-t: éjszaka 4%-ot nyomtunk. Valaki megkérdezte, skálázzuk-e a papírméretet. Ránéztem a grafikonra, aztán a Krakenre, aztán a stubra.
| Főkönyvi tétel | Amit a motor tárolt | Szombat, natív | Ugyanaz a pillanat, dollárban |
|---|---|---|---|
| Tétlen fedezet | 70,000 USDC × 1.00 | 70,000 USDC | ~$61,600 |
| BTC-perp jegyzés | BTCUSDC last | ~23,000 USDC (26,000 a Krakenen) | BTCUSD ~$20,200 |
| Nem realizált 1.5 BTC-n | +4,300 USDC | +4,300 USDC | többnyire a peg, valamennyi bitcoin |
| Jelentett NAV | 104,300 „USD” | 104,300 USDC | ~$91,800 |
A USDT-könyveknek az ellenkező karikatúrájuk volt. A USDT prémiumon kereskedett, így egy USDT-marginált flat számla olyan dollárnyereséget mutatott, amit szintén nem keresett meg, és egy BTCUSDT-jegyzést, amely túl alacsony volt a BTCUSD-hez képest. Ha azon a hétvégén két „azonos” BTC-perpet rangsoroltad, egyet egy USDC-tőzsdén és egyet egy USDT-tőzsdén, a jegyzési tokeneket rangsoroltad, és alphának hívtad.
A papírszámla, az, amelyik ténylegesen USDC-t tartott, közelebb volt az igazsághoz, mint a kutatási dashboard. Soha nem állította, hogy dollár. Mi tettük ezt az exportban.
Az export, amit hétfőn elküldtünk
A USDC visszacsúszott $1 felé, miután a Treasury, a Fed és az FDIC azt mondta, hogy az SVB betéteseit kártalanítják, és miután a Circle azt mondta, hogy fedezi a hiányt. Hétfőre a peg nagyjából be volt foltozva. A stub FX-fájl, amely 48 órán át hibás volt, megint helyes volt.
De a napi barok elrejtették. A 00:00 UTC mintavétel március 11-én a USDC-t már letérve, vagy már pattanva kapta el, a vendortól függően, és a március 12-i minta egy másik film volt. Ha csak a NAV-ot tároltad, a jegyzési árfolyamot nem, nem tudtad rekonstruálni, melyiket. A csúnya hétvége elég kicsi blippé laposodott ahhoz, hogy figyelmen kívül hagyjuk, amit meg is tettünk, mert naponta mintavételeztünk.
Amit most a könyvön tartunk, az három sorozat, mindig, még akkor is, amikor hónapokon át egymáson ülnek:
- NAV a tőzsde jegyzési eszközében, abban az egységben, amit ténylegesen ki tudsz vonni.
- Jegyzési eszköz versus USD, egy valódi szalag, beleértve a szombatot, beleértve a 0.87-et, beleértve azokat az órákat, amikor a Coinbase nem váltott.
- NAV dollárban, származtatott sorozatként, hogy a USD plotcímkének legyen szülője.
Ha egy ágens írja a backtestet, az ellenőrzés ugyanaz. Kérdezd meg tőle minden pozíció és a készpénz jegyzési eszközét. Ha USD-t válaszol egy USDC-tőzsdén, a futtatás nem dollárfuttatás. 2023. március az a hét, amit lejátszom, amikor valaki azt mondja, hogy a különbség nem mozgatja a Sharpe-ot. Ezt többel mozgatta, mint a stratégia, és a stratégia volt az a rész, amire modelljeink voltak.
← Összes bejegyzés


