2 Kasım 2026 · araştırma

Backtest'inizin Doları USDC'ydi. 11 Mart'ta 87 Sente İşlem Gördü.

Backtest'inizin Doları USDC'ydi. 11 Mart'ta 87 Sente İşlem Gördü.

Config starting_capital: 100000 diyordu ve grafiğin y ekseni USD diyordu. Logdaki her fill bir USDC sayısıydı. O koşunun on bir ayı boyunca bu iki gerçek aynı hücrede yaşadı ve kimsenin onları ayırmak için bir nedeni yoktu.

Sonra Silicon Valley Bank battı, Circle USDC rezervlerinin $3.3 milyarının orada sıkışıp kaldığını söyledi ve USDC 87 sente işlem gördü. "Dolar" defterimiz yükseldi. USDC cinsinden fiyatlanan BTC fırladı. Perp yeşil basıldı. Risksiz 100,000 olarak ele aldığımız nakit, asıl hareket eden şeydi.

Hâlâ USDC, USDT ve USD'yi tek sütun olarak işaretleyen araştırma pipeline'larına denk geliyorum. Bu, defterin gördüğü sırayla parçalarına ayrılmış o hafta sonu.

$100,000 yazan satır

Kağıt hesap, USDC teminatlı BTC perpetual, mütevazı long. 30,000 USDC'lik BTC notional, Cuma işaretinde $20,150 civarında yaklaşık 1.5 BTC. Diğer 70,000 USDC teminat olarak duruyordu. Kasıtlı olarak eksik konuşlandırılmıştık. Bir stratejiyi ısıtıyorduk. Geri kalanı nakitte oturuyordu.

NAV fonksiyonu çoğunun yaptığı şeyi yaptı. USDC nakitini USDC gerçekleşmemiş pnl'e ekledi ve toplamı equity_usd adlı bir seriye yazdı. Config'de kendimin yazdığı bir yorum vardı:

stablecoins = 1 dolar. FX'i iki kez sayma.

Kastettiğim şuydu: bir USDT funding ödemesini iki kez çevirerek ikinci bir dolar hareketine dönüştürme. Aslında yaptığımsa, dosyanın geri kalanı için FX kurunu 1.0'da dondurmaktı.

quote_asset = "USDC"

Borsa bir USDC borsasıydı. Fill'ler, marjin, funding, likidasyon işaretleri, lot büyüklüğü, min notional, hepsi. Hyperliquid, dYdX v3, Coinbase International, bir düzine diğeri, aynı kalıp. Araştırma notebook'u bir BTCUSDC mumu ve bir BTCUSD mumu içe aktardı, işlem için birincisini kullandı ve grafikte ikincisini etiketledi çünkü grafik dolar cinsinden daha profesyonel görünüyordu.

Ve hâlâ olmadık saatlerde aklıma gelen o küçük, aptalca kısım şu: grafik kütüphanesinin varsayılan eksen başlığı "USD". Hiç üzerine yazmadım. İnsanlar ekranın yanından geçip serinin sahip olmadığı bir birimi okudu.

Cuma gecesi, Circle'ın tweet'i

10 Mart 2023. SVB çoktan gitmiş durumda. Circle, o dönemki ~$40 milyarlık USDC rezervinin $3.3 milyarının batan bankada durduğunu açıklıyor, yaklaşık %8. Coinbase aynı gece USDC dönüşümlerini durduruyor. Asıl peg mekanizması olan redemption, hafta sonu için kapalı.

Backtest'in bunların hiçbiri için bir satırı yoktu. Redemption durdurma bayrağı yok, ihraççı-rezerv alanı yok, "pazartesiden önce bu token için dolar alabilir miyim." yok. Bir kapanışı vardı. Cuma kapanışı FX dosyamızda hâlâ 1.0000'di, çünkü FX dosyası ticker'ı USD ile başlayan her şey için 1.0 döndüren bir stub'dı.

USDT primini bir zamanlar ders kitabı gürültüsü sayardım, dipnotta bahsedip sonra yok sayacağınız türden. Bir keresinde bir mutfakta 1.03'ün "deftere geçmeye değer." olup olmadığını yirmi dakika tartışmıştık. İkimiz de editoryal yorum yapıyorduk. Çift bir seridir. Sakla. Üzerine oy vermeyi bırak.

0.8789

Cumartesi sabahı. CoinGecko'da USDC'nin düşüğü $0.8789. Diğer bantlar $0.87 basıyor. Birkaç DEX havuzu $0.80'den geçiyor. Teminat olarak USDC ile doldurulmuş DAI onu aşağı takip ediyor. USDT ters yöne gidiyor, bazı ekranlarda $1.03, Kraken'de $1.06.

$0.87USDC düşüğü, 11 Mart 2023
$26kKraken'de BTC/USDC baskısı
13%$1 olarak işaretlenmiş nakitteki delik

Stub FX dosyası hâlâ 1.0 döndürüyor. Backtest'in saati cumartesi olduğunu biliyor. Defterin biriminin artık sıkıntılı bir token olduğunu bilmiyor.

Kraken'in 26,000 baskısı

Bitstamp BTC/USD $20,200 civarında dolanıyor. Kraken BTC/USDC $26,000'in üzerinde basıyor. Bu aynı bitcoin. İkinci sayı, kırık bir peg'e bölünmüş bir dolar fiyatı, artı ince bir USDC defterinin cumartesi günü eklediği hava.

Borsamız perpetual'ı USDC cinsinden işaretliyordu. Muhafazakâr bir bant alalım, BTC/USDC ~$23,000, yani $20,200 / 0.88. 1.5 BTC long yaklaşık 4,300 USDC yukarıda. Yerel birimlerde hesap: 104,300 USDC. Motor $104,300 raporluyor, %4.3 yükselişli bir hafta sonu ve üzerine aynı birimde bir funding ödemesi biniyor.

Dolar cinsinden atıl 70,000 USDC teminat yaklaşık $61,600 değerinde. Tüm 104,300 USDC yaklaşık $91,800 değerinde. "%4.3 kazanan" defter, büyük ölçüde nakitte otururken dolar sermayesinin %8'ini kaybetti.

Hafta sonu getirisi bir birim değişimiydi, bir talih değişimi değil. USDC'nin düştüğü bir günde long BTC/USDC pozisyonu mekanik olarak depeg'e long'tur. Bu bahsi isteyebilirsiniz. Sonradan USD etiketli bir seride keşfedemezsiniz.

Coinbase USDC dönüşümlerini zaten durdurmuştu. Binance USDC çiftlerini askıya almıştı. 08:00 UTC'de kotasyon varlığını dolar karşılığında boşaltmaya karar veren tanrı modundaki bir backtest bile hâlâ dönüştüren bir borsaya, depeg'in kendisi olmayan bir spread'e ve bankalar pazartesi açılana kadar var olmayan bir takas yoluna ihtiyaç duyardı.

cash_usd = cash_usdc * 1.0

Tuttuğum satır bu. USDCUSD'nin 0.87 olduğu barlar dahil her barda çalıştı. 1.0 ile çarpmak bir no-op gibi hissettirir, bu yüzden kod incelemesinden sağ çıkar. Bu bir FX işareti. Donmuş bir işaret.

70,000 USDC teminat hiçbir zaman bir işlem tetiklemedi, bu yüzden hiçbir slippage modeli ona bakmadı, ücret tablosu yok, funding yok. Nakit sıkıcı sütun olmalıydı. Bu defterde en büyük riskti ve fiyatlamadığımız tek riskti.

O hafta sonu BTC fill'lerindeki maker iadesi, eğer fill aldıysanız, 2 veya 3 bps'ti. Kotasyon varlığı hareketi 1,300 bps'ti. 3 için koca bir yığınımız var, 1,300 için bir stub.

Grafikteki yeşil hafta sonu

Pazartesi sabahı Slack, kimse USDCUSD'yi açmadan önce: gecede %4 basmıştık. Birisi kağıt boyutunu ölçekleyip ölçeklemememizi sordu. Grafiğe baktım, sonra Kraken'e, sonra stub'a.

Defter kalemiMotorun sakladığıCumartesi, yerelAynı an, dolar cinsinden
Atıl teminat70,000 USDC × 1.0070,000 USDC~$61,600
BTC perp işaretiBTCUSDC last~23,000 USDC (Kraken'de 26,000)BTCUSD ~$20,200
1.5 BTC üzerinde gerçekleşmemiş+4,300 USDC+4,300 USDCçoğunlukla peg, biraz bitcoin
Raporlanan NAV104,300 "USD"104,300 USDC~$91,800

USDT defterlerinin ters karikatürü vardı. USDT primli işlem gördü, bu yüzden USDT teminatlı düz bir hesap onun da kazanmadığı bir dolar kazancı gösterdi ve BTCUSD'ye göre çok düşük bir BTCUSDT işareti. O hafta sonu "özdeş" iki BTC perp'ini sıraladıysanız, biri USDC borsasında biri USDT borsasında, kotasyon token'larını sıralamış ve buna alpha demiş oldunuz.

Gerçekten USDC tutan kağıt hesap, araştırma panosundan gerçeğe daha yakındı. Hiç dolar olduğunu iddia etmedi. Bunu dışa aktarımda biz yaptık.

Pazartesi teslim ettiğimiz dışa aktarım

Hazine, Fed ve FDIC SVB mevduat sahiplerinin zararının karşılanacağını söyledikten ve Circle bir açığı kapatacağını söyledikten sonra USDC $1'e doğru sürünerek geri döndü. Pazartesiye gelindiğinde peg büyük ölçüde yamalanmıştı. 48 saat boyunca yanlış olan stub FX dosyası yine doğruydu.

Ama günlük barlar bunu gizledi. 11 Mart'taki 00:00 UTC örneği, sağlayıcıya bağlı olarak USDC'yi zaten sapmış ya da zaten toparlanırken yakaladı ve 12 Mart örneği bambaşka bir filmdi. Yalnızca NAV'ı saklayıp kotasyon işaretini saklamadıysanız hangisi olduğunu yeniden kuramazdınız. Çirkin hafta sonu yok sayılacak kadar küçük bir sapmaya yassıldı; yok da saydık, çünkü günlük örnekliyorduk.

Artık defterde her zaman üç seri tutuyoruz, aylarca üst üste otursalar bile:

  1. Borsanın kotasyon varlığında NAV, gerçekten çekebileceğiniz birim.
  2. Kotasyon varlığı USD'ye karşı, gerçek bir bant, cumartesi dahil, 0.87 dahil, Coinbase'in dönüştürmediği saatler dahil.
  3. Türetilmiş bir seri olarak dolar cinsinden NAV, böylece USD grafik etiketinin bir ebeveyni olsun.

Backtest'i bir agent yazıyorsa kontrol aynıdır. Her pozisyonun ve nakitin kotasyon varlığını sorun. USDC borsasında USD diye cevaplıyorsa, o koşu bir dolar koşusu değildir. Mart 2023, biri bana bu ayrımın Sharpe'ı oynatmadığını söylediğinde yeniden oynattığım haftadır. Bunu stratejinin oynattığından daha fazla oynattı ve strateji, modellerimizin olduğu kısımdı.

stablecoin'lerkotasyon para birimibacktestingkriptokağıt üzerinde işlem
← Tüm yazılar