2 tháng Mười Một, 2026 · nghiên cứu

Đô la trong backtest của bạn là USDC. Ngày 11 tháng 3 nó giao dịch ở mức 87 xu.

Đô la trong backtest của bạn là USDC. Ngày 11 tháng 3 nó giao dịch ở mức 87 xu.

File config ghi starting_capital: 100000, còn trục y của biểu đồ ghi USD. Mọi lệnh khớp trong nhật ký đều là một con số USDC. Suốt 11 tháng của lần chạy đó, hai sự thật sống chung một ô và không ai có lý do để tách chúng.

Rồi Silicon Valley Bank sụp đổ, Circle nói $3.3 tỷ dự trữ USDC bị kẹt ở đó, và USDC giao dịch ở mức 87 xu. Sổ "đô la" của chúng tôi tăng. BTC định giá bằng USDC bứt mạnh. Perp in màu xanh. Số tiền mặt chúng tôi từng coi là 100,000 không rủi ro mới chính là thứ đã dịch chuyển.

Tôi vẫn bắt gặp các pipeline nghiên cứu đánh dấu USDC, USDT và USD thành một cột. Đây là cuối tuần đó, được mổ ra theo đúng thứ tự sổ cái đã thấy.

Dòng ghi $100,000

Tài khoản giả lập, hợp đồng BTC perpetual ký quỹ USDC, vị thế long khiêm tốn. 30,000 USDC danh nghĩa BTC, khoảng 1.5 BTC theo giá mark thứ Sáu gần $20,150. 70,000 còn lại nằm làm tài sản thế chấp USDC. Cố ý chưa bung hết vốn. Chúng tôi đang khởi động một chiến lược. Phần còn lại của stack nằm im bằng tiền mặt.

Hàm NAV làm đúng việc hầu hết chúng vẫn làm. Nó cộng tiền mặt USDC với pnl chưa thực hiện bằng USDC rồi ghi tổng vào một chuỗi tên equity_usd. Có một comment trong file config do chính tôi viết:

stablecoins = 1 đô la. đừng tính FX hai lần.

Ý tôi là: đừng biến một khoản funding USDT thành một lần dịch chuyển đô la thứ hai bằng cách quy đổi hai lần. Việc tôi thực sự đã làm là đóng băng tỷ giá FX ở 1.0 cho phần còn lại của file.

quote_asset = "USDC"

Sàn là một sàn USDC. Lệnh khớp, ký quỹ, funding, giá thanh lý, lot size, min notional, tất cả. Hyperliquid, dYdX v3, Coinbase International, cả tá sàn khác, cùng một hình dạng. Notebook nghiên cứu import một nến BTCUSDC và một nến BTCUSD, dùng nến thứ nhất để giao dịch, và gắn nhãn nến thứ hai trên biểu đồ vì biểu đồ trông chuyên nghiệp hơn khi tính bằng đô la.

Và đây là chi tiết nhỏ, ngớ ngẩn mà tôi vẫn nghĩ tới vào những giờ bất chợt: tiêu đề trục mặc định của thư viện vẽ biểu đồ là "USD". Tôi chưa bao giờ ghi đè nó. Người ta đi ngang màn hình và đọc một đơn vị mà chuỗi không hề có.

Đêm thứ Sáu, tweet của Circle

Ngày 10 tháng 3 năm 2023. SVB đã không còn. Circle công bố rằng $3.3 tỷ trong số ~$40 tỷ dự trữ USDC lúc bấy giờ nằm tại ngân hàng vừa sụp, khoảng 8%. Coinbase đình chỉ quy đổi USDC ngay đêm đó. Redemption, cơ chế neo giá thực sự, đóng cửa suốt cuối tuần.

Backtest không có hàng nào cho bất kỳ điều này. Không cờ dừng redemption, không trường dự trữ của tổ chức phát hành, không có "tôi có đổi được đô la từ token này trước thứ Hai không." Nó có một giá đóng cửa. Giá đóng cửa thứ Sáu vẫn là 1.0000 trong file FX của chúng tôi, vì file FX là một stub trả về 1.0 cho bất kỳ thứ gì có ticker bắt đầu bằng USD.

Tôi từng coi premium USDT là nhiễu sách vở, kiểu thứ bạn nhắc trong chú thích rồi bỏ qua. Chúng tôi từng tranh luận 20 phút trong bếp về việc 1.03 có "đáng ghi sổ" không. Cả hai đều đang bình luận chủ quan. Cặp này là một chuỗi. Lưu nó. Đừng bỏ phiếu cho nó.

0.8789

Sáng thứ Bảy. Giá thấp của CoinGecko với USDC là $0.8789. Các tape khác in $0.87. Một vài pool DEX xuyên xuống $0.80. DAI, nhồi USDC làm tài sản thế chấp, trượt theo. USDT đi ngược lại, $1.03 trên một số màn hình, $1.06 trên Kraken.

$0.87Giá thấp USDC, 11 tháng 3 năm 2023
$26kGiá BTC/USDC in trên Kraken
13%lỗ trong tiền mặt đánh dấu ở $1

File FX stub vẫn trả về 1.0. Đồng hồ của backtest biết hôm đó là thứ Bảy. Nó không biết rằng đơn vị của sổ sách giờ là một token đang khủng hoảng.

Giá in trên Kraken ở 26,000

BTC/USD trên Bitstamp đang xoay quanh $20,200. BTC/USDC trên Kraken in trên $26,000. Đó là cùng một bitcoin. Con số thứ hai là giá đô la chia cho một peg đã gãy, cộng thêm chút ảo giá mà một sổ lệnh USDC mỏng thêm vào vào thứ Bảy.

Sàn của chúng tôi đánh dấu perpetual bằng USDC. Lấy một tape thận trọng, BTC/USDC ở ~$23,000, tức $20,200 / 0.88. Vị thế long 1.5 BTC lãi khoảng 4,300 USDC. Tài khoản theo đơn vị gốc: 104,300 USDC. Engine báo cáo $104,300, một cuối tuần tăng 4.3%, và một khoản funding đáp xuống trên đó cùng đơn vị.

Tính bằng đô la, 70,000 USDC tài sản thế chấp nhàn rỗi trị giá khoảng $61,600. Toàn bộ 104,300 USDC trị giá khoảng $91,800. Sổ sách "kiếm" 4.3% đã mất 8% vốn đô la trong khi phần lớn đang nằm im bằng tiền mặt.

Lợi nhuận cuối tuần là một sự đổi đơn vị, không phải đổi vận. Một vị thế long BTC/USDC vào ngày USDC giảm về mặt cơ học là long depeg. Bạn có thể muốn đặt cược đó. Bạn không thể phát hiện nó sau đó trong một chuỗi gắn nhãn USD.

Coinbase đã đình chỉ quy đổi USDC. Binance tạm ngưng các cặp USDC. Ngay cả một backtest god-mode quyết định lúc 08:00 UTC xả quote asset lấy đô la cũng sẽ cần một sàn vẫn còn quy đổi, một spread không phải chính cái depeg, và một đường tất toán không tồn tại cho đến khi ngân hàng mở cửa thứ Hai.

cash_usd = cash_usdc * 1.0

Đó là dòng tôi giữ lại. Nó chạy trên mọi bar, kể cả những bar mà USDCUSD là 0.87. Nhân với 1.0 nghe như một no-op, nên nó sống sót qua code review. Đó là một mức đánh dấu FX. Một mức bị đóng băng.

70,000 USDC tài sản thế chấp chưa bao giờ kích hoạt một lệnh, nên không mô hình slippage nào nhìn tới nó, không bảng phí, không funding. Tiền mặt vốn dĩ là cột nhàm chán. Trên sổ này nó là rủi ro lớn nhất, và là rủi ro duy nhất chúng tôi không định giá.

Khoản hoàn maker trên các lệnh BTC khớp cuối tuần đó là 2 hoặc 3 bps, nếu bạn khớp được. Biến động của quote asset là 1,300 bps. Chúng tôi có cả một stack cho con số 3 và một stub cho con số 1,300.

Cuối tuần màu xanh trên biểu đồ

Sáng thứ Hai trên Slack, trước khi ai mở USDCUSD: chúng tôi in 4% qua đêm. Có người hỏi có nên tăng size tài khoản giả lập không. Tôi nhìn biểu đồ, rồi Kraken, rồi cái stub.

Khoản mục sổ cáiEngine đã lưu gìThứ Bảy, đơn vị gốcCùng thời điểm, bằng đô la
Tài sản thế chấp nhàn rỗi70,000 USDC × 1.0070,000 USDC~$61,600
Giá mark perp BTCGiá last BTCUSDC~23,000 USDC (26,000 trên Kraken)BTCUSD ~$20,200
Lãi chưa thực hiện trên 1.5 BTC+4,300 USDC+4,300 USDCchủ yếu là peg, một phần bitcoin
NAV báo cáo104,300 "USD"104,300 USDC~$91,800

Các sổ USDT có bức tranh ngược lại. USDT giao dịch đắt, nên một tài khoản flat ký quỹ USDT hiện một khoản lãi đô la mà nó cũng chưa kiếm được, và một giá mark BTCUSDT quá thấp so với BTCUSD. Nếu bạn xếp hạng hai perp BTC "giống hệt" cuối tuần đó, một trên sàn USDC và một trên sàn USDT, bạn đã xếp hạng các token yết giá rồi gọi đó là alpha.

Tài khoản giả lập, cái thực sự nắm USDC, gần sự thật hơn dashboard nghiên cứu. Nó chưa bao giờ nhận mình là đô la. Chúng tôi mới làm điều đó lúc xuất dữ liệu.

Bản xuất chúng tôi gửi đi vào thứ Hai

USDC bò trở lại về phía $1 sau khi Treasury, Fed và FDIC nói người gửi tiền tại SVB sẽ được bồi thường đầy đủ, và sau khi Circle nói sẽ bù phần thiếu. Đến thứ Hai peg gần như đã được vá. File FX stub, đã sai suốt 48 giờ, lại đúng trở lại.

Nhưng các bar ngày đã che nó đi. Mẫu 00:00 UTC ngày 11 tháng 3 bắt USDC đã lệch, hoặc đã nảy lại, tùy nhà cung cấp, và mẫu ngày 12 tháng 3 là một bộ phim khác. Nếu bạn chỉ lưu NAV chứ không lưu giá mark của quote asset, bạn không thể dựng lại cái nào. Cuối tuần xấu xí bị dẹt thành một blip nhỏ đến mức có thể bỏ qua, và chúng tôi đã bỏ qua, vì chúng tôi lấy mẫu theo ngày.

Những gì chúng tôi giữ trên sổ bây giờ là ba chuỗi, luôn luôn, kể cả khi chúng nằm chồng lên nhau suốt nhiều tháng:

  1. NAV bằng quote asset của sàn, đơn vị bạn thực sự rút được.
  2. Quote asset so với USD, một tape thật, kể cả thứ Bảy, kể cả 0.87, kể cả những giờ Coinbase không quy đổi.
  3. NAV bằng đô la, như một chuỗi suy ra, để nhãn USD trên biểu đồ có một chuỗi gốc.

Nếu một agent viết backtest, phép kiểm tra vẫn thế. Hỏi nó quote asset của mọi vị thế và của tiền mặt. Nếu nó trả lời USD trên một sàn USDC, lần chạy đó không phải lần chạy đô la. Tháng 3 năm 2023 là tuần tôi phát lại khi ai đó bảo tôi sự phân biệt này không làm dịch chuyển Sharpe. Nó đã dịch chuyển Sharpe này nhiều hơn chính chiến lược, và chiến lược mới là phần chúng tôi có mô hình.

stablecoinđồng yết giábacktestcryptogiao dịch giả lập
← Tất cả bài viết