2 November 2026 · riset

Dolar di Backtest Anda Adalah USDC. Pada 11 Maret Harganya 87 Sen.

Dolar di Backtest Anda Adalah USDC. Pada 11 Maret Harganya 87 Sen.

Konfig menyebut starting_capital: 100000, dan sumbu-y grafik menyebut USD. Setiap fill di log adalah angka USDC. Selama sebelas bulan running itu, kedua fakta itu hidup dalam sel yang sama dan tidak ada yang punya alasan untuk memisahkannya.

Lalu Silicon Valley Bank kolaps, Circle mengatakan $3.3 miliar cadangan USDC tersangkut di sana, dan USDC diperdagangkan di 87 sen. Buku "dolar" kami naik. BTC yang dihargai dalam USDC meroket. Perp mencetak hijau. Kas yang kami anggap sebagai 100,000 bebas risiko justru yang bergerak.

Saya masih menemukan pipeline riset yang menandai USDC, USDT, dan USD sebagai satu kolom. Inilah akhir pekan itu, diurai dalam urutan yang dilihat ledger.

Baris yang menulis $100,000

Akun paper, perpetual BTC bermargin USDC, long yang modest. 30,000 USDC nosional BTC, sekitar 1.5 BTC pada mark Jumat dekat $20,150. 70,000 sisanya duduk sebagai kolateral USDC. Sengaja under-deployed. Kami sedang memanaskan sebuah strategi. Sisa stack duduk di kas.

Fungsi NAV melakukan apa yang kebanyakan fungsi itu lakukan. Ia menambahkan kas USDC ke unrealized pnl USDC dan menulis jumlahnya ke series bernama equity_usd. Ada komentar di konfig yang saya tulis sendiri:

stablecoins = 1 dolar. jangan hitung FX dua kali.

Maksud saya: jangan mengubah pembayaran funding USDT menjadi pergerakan dolar kedua dengan mengonversinya dua kali. Yang sebenarnya saya lakukan adalah membekukan kurs FX di 1.0 untuk sisa file.

quote_asset = "USDC"

Venue-nya adalah venue USDC. Fill, margin, funding, mark likuidasi, lot size, min notional, semuanya. Hyperliquid, dYdX v3, Coinbase International, selusin lainnya, bentuk yang sama. Notebook riset mengimpor candle BTCUSDC dan candle BTCUSD, memakai yang pertama untuk trading, dan menandai yang kedua di plot karena plot terlihat lebih profesional dalam dolar.

Dan ini bagian kecil dan konyol yang masih saya pikirkan di jam-jam aneh: judul sumbu default library plotting adalah "USD". Saya tidak pernah menimpanya. Orang-orang lewat di depan layar dan membaca satuan yang tidak dimiliki series itu.

Jumat malam, tweet Circle

10 Maret 2023. SVB sudah tiada. Circle mengungkapkan bahwa $3.3 miliar dari cadangan USDC-nya yang saat itu ~$40 miliar duduk di bank yang gagal itu, sekitar 8%. Coinbase menangguhkan konversi USDC malam yang sama. Redemption, mekanisme peg yang sebenarnya, ditutup selama akhir pekan.

Backtest tidak punya baris untuk semua ini. Tidak ada flag penghentian redemption, tidak ada field cadangan penerbit, tidak ada "bisakah saya dapat dolar untuk token ini sebelum Senin." Yang ada adalah close. Close pada Jumat masih 1.0000 di file FX kami, karena file FX adalah stub yang mengembalikan 1.0 untuk apa pun yang ticker-nya diawali USD.

Dulu saya memperlakukan premi USDT sebagai noise buku teks, semacam hal yang Anda sebutkan di catatan kaki lalu diabaikan. Kami pernah menghabiskan dua puluh menit di dapur berdebat apakah 1.03 "layak dibukukan." Kami berdua sedang mengarang opini. Pair itu series. Simpan. Berhenti voting soal itu.

0.8789

Sabtu pagi. Low CoinGecko pada USDC adalah $0.8789. Tape lain mencetak $0.87. Beberapa pool DEX menembus $0.80. DAI, yang penuh USDC sebagai kolateral, mengikutinya turun. USDT ke arah sebaliknya, $1.03 di beberapa layar, $1.06 di Kraken.

$0.87Terendah USDC, 11 Mar 2023
$26kPrint BTC/USDC di Kraken
13%lubang di kas yang ditandai $1

File FX stub masih mengembalikan 1.0. Jam backtest tahu hari itu Sabtu. Ia tidak tahu bahwa satuan buku sekarang adalah token yang sedang tertekan.

Print Kraken di 26,000

BTC/USD Bitstamp berputar di sekitar $20,200. BTC/USDC Kraken mencetak di atas $26,000. Itu bitcoin yang sama. Angka kedua adalah harga dolar dibagi peg yang pecah, plus udara apa pun yang ditambahkan buku USDC yang tipis pada hari Sabtu.

Venue kami menandai perpetual dalam USDC. Ambil tape konservatif, BTC/USDC di ~$23,000, yaitu $20,200 / 0.88. Long 1.5 BTC naik sekitar 4,300 USDC. Akun dalam satuan native: 104,300 USDC. Engine melaporkan $104,300, akhir pekan naik 4.3%, dan pembayaran funding mendarat di atas itu dalam satuan yang sama.

Dalam dolar, 70,000 USDC kolateral menganggur bernilai sekitar $61,600. Seluruh 104,300 USDC bernilai sekitar $91,800. Buku yang "menghasilkan" 4.3% kehilangan 8% modal dolarnya sementara sebagian besar duduk di kas.

Return akhir pekan adalah perubahan satuan, bukan perubahan nasib. Posisi long BTC/USDC pada hari USDC turun secara mekanis long terhadap depeg. Anda boleh menginginkan taruhan itu. Anda tidak bisa menemukannya belakangan di series yang dilabeli USD.

Coinbase sudah menghentikan konversi USDC. Binance menangguhkan pair USDC. Bahkan backtest god-mode yang memutuskan pada 08:00 UTC untuk dump quote asset demi dolar akan membutuhkan venue yang masih mengonversi, spread yang bukan depeg itu sendiri, dan jalur settlement yang tidak ada sampai bank buka Senin.

cash_usd = cash_usdc * 1.0

Baris itulah yang saya simpan. Ia berjalan di setiap bar, termasuk bar di mana USDCUSD adalah 0.87. Mengalikan dengan 1.0 terasa seperti no-op, itulah sebabnya ia lolos code review. Itu adalah mark FX. Yang dibekukan.

70,000 USDC kolateral tidak pernah memicu trade, jadi tidak ada model slippage yang pernah melihatnya, tidak ada tabel fee, tidak ada funding. Kas seharusnya kolom yang membosankan. Di buku ini, itulah risiko terbesar, dan satu-satunya yang tidak kami hargai.

Rebate maker pada fill BTC akhir pekan itu adalah 2 atau 3 bps, jika Anda kebetulan terisi. Pergerakan quote asset adalah 1,300 bps. Kami punya seluruh stack untuk 3 dan stub untuk 1,300.

Akhir pekan hijau di grafik

Senin pagi di Slack, sebelum siapa pun membuka USDCUSD: kami mencetak 4% overnight. Seseorang bertanya apakah kami harus men-scale ukuran paper. Saya melihat grafik, lalu Kraken, lalu stub.

Item ledgerApa yang disimpan engineSabtu, nativeMomen yang sama, dalam dolar
Kolateral menganggur70,000 USDC × 1.0070,000 USDC~$61,600
Mark perp BTCBTCUSDC last~23,000 USDC (26,000 di Kraken)BTCUSD ~$20,200
Unrealized pada 1.5 BTC+4,300 USDC+4,300 USDCsebagian besar peg, sebagian bitcoin
NAV yang dilaporkan104,300 "USD"104,300 USDC~$91,800

Buku USDT punya kartun sebaliknya. USDT diperdagangkan mahal, jadi akun flat bermargin USDT menunjukkan keuntungan dolar yang juga tidak dihasilkannya, dan mark BTCUSDT yang terlalu rendah relatif terhadap BTCUSD. Jika Anda meranking dua perp BTC yang "identik" akhir pekan itu, satu di venue USDC dan satu di venue USDT, Anda meranking token kuotasi dan menyebutnya alpha.

Akun paper, yang benar-benar memegang USDC, lebih dekat ke kebenaran daripada dasbor riset. Ia tidak pernah mengaku sebagai dolar. Kami yang melakukan itu di ekspor.

Ekspor yang kami kirim pada Senin

USDC merangkak kembali menuju $1 setelah Treasury, Fed, dan FDIC mengatakan deposan SVB akan dilunasi utuh, dan setelah Circle mengatakan akan menutup shortfall. Pada Senin, peg sebagian besar sudah tertambal. File FX stub, yang salah selama 48 jam, benar lagi.

Tapi bar harian menyembunyikannya. Sampel 00:00 UTC pada 11 Maret menangkap USDC sudah off, atau sudah bouncing, tergantung vendor, dan sampel 12 Maret adalah film yang berbeda. Jika Anda hanya menyimpan NAV dan bukan mark kuotasi, Anda tidak bisa merekonstruksi yang mana. Akhir pekan yang jelek diratakan menjadi blip yang cukup kecil untuk diabaikan, dan kami mengabaikannya, karena kami sampling harian.

Yang kami simpan di buku sekarang adalah tiga series, selalu, bahkan ketika mereka saling menumpuk selama berbulan-bulan:

  1. NAV dalam quote asset venue, satuan yang benar-benar bisa Anda tarik.
  2. Quote asset versus USD, tape yang nyata, termasuk Sabtu, termasuk 0.87, termasuk jam-jam Coinbase tidak mengonversi.
  3. NAV dalam dolar, sebagai series turunan, agar label plot USD punya induk.

Jika sebuah agent menulis backtest, pemeriksaannya sama. Tanyakan quote asset setiap posisi dan kas. Jika jawabannya USD di venue USDC, running itu bukan running dolar. Maret 2023 adalah minggu yang saya putar ulang ketika seseorang bilang distingsi itu tidak menggerakkan Sharpe. Distingsi itu menggerakkan yang satu ini lebih dari yang dilakukan strategi, dan strategi adalah bagian yang kami punya modelnya.

stablecoinmata uang kuotasibacktestingkriptopaper trading
← Semua artikel