설정에는 starting_capital: 100000이라고 적혀 있었고, 차트의 y축은 USD라고 되어 있었다. 로그의 모든 체결은 USDC 숫자였다. 그 런의 11개월 동안 두 사실은 같은 셀에 살았고, 아무도 둘을 갈라놓을 이유가 없었다.
그러다 Silicon Valley Bank가 파산했고, Circle은 USDC 준비금 중 $3.3 billion이 그곳에 묶여 있다고 밝혔으며, USDC는 87센트에 거래됐다. 우리의 "달러" 장부는 올랐다. USDC로 표시된 BTC는 폭등했다. 퍼프는 초록을 찍었다. 무위험 100,000으로 취급했던 그 현금이 바로 움직인 것이었다.
나는 아직도 USDC, USDT, USD를 한 열로 표시하는 리서치 파이프라인을 발견한다. 이것이 그 주말이다. 원장이 본 순서대로 분해한 것이다.
$100,000이라고 적힌 그 줄
페이퍼 계좌, USDC 마진 BTC 무기한, 소규모 롱. BTC 명목 30,000 USDC, 금요일 마크 약 $20,150에서 약 1.5 BTC. 다른 70,000은 USDC 담보로 앉아 있었다. 의도적으로 덜 투입한 상태였다. 전략을 워밍업하는 중이었다. 스택의 나머지는 현금에 앉아 있었다.
NAV 함수는 그런 함수들이 대개 하는 일을 했다. USDC 현금에 USDC 미실현 pnl을 더하고 그 합을 equity_usd라는 시계열에 썼다. 설정에는 내가 직접 쓴 주석이 있었다.
stablecoins = 1달러. FX를 이중으로 세지 마.
내가 뜻한 것은 이것이었다. USDT 펀딩 지급을 두 번 환산해 두 번째 달러 움직임으로 만들지 말 것. 내가 실제로 한 일은 파일 나머지 전체에 FX 환율을 1.0으로 얼려 버린 것이었다.
quote_asset = "USDC"
그 거래소는 USDC 거래소였다. 체결, 마진, 펀딩, 청산 마크, 로트 크기, 최소 명목, 전부. Hyperliquid, dYdX v3, Coinbase International, 그 밖의 12곳도 같은 모양이었다. 리서치 노트북은 BTCUSDC 캔들과 BTCUSD 캔들을 가져와, 거래에는 전자를 썼고, 차트에는 후자를 라벨로 붙였다. 달러로 그린 차트가 더 전문적으로 보였기 때문이다.
그리고 이것이 내가 아직도 이상한 시간에 생각하는, 작고 바보 같은 부분이다. 플로팅 라이브러리의 기본 축 제목은 "USD"다. 나는 그것을 덮어쓴 적이 없다. 사람들이 화면 옆을 지나가며, 그 시계열이 갖지 않은 단위를 읽었다.
금요일 밤, Circle의 트윗
2023년 3월 10일. SVB는 이미 사라졌다. Circle은 당시 약 $40 billion이던 USDC 준비금 가운데 $3.3 billion이 파산한 은행에 예치되어 있었다고 공시했다. 약 8%. Coinbase는 그날 밤 USDC 전환을 중단했다. 상환, 곧 실제 페그 메커니즘은 주말 동안 닫혔다.
백테스트에는 이 중 어떤 것에 대한 행도 없었다. 상환 중단 플래그도, 발행사 준비금 필드도, "월요일 전에 이 토큰을 달러로 바꿀 수 있는가"도 없었다. 있는 것은 종가였다. 금요일 종가는 우리 FX 파일에서 여전히 1.0000이었다. FX 파일이 USD로 시작하는 티커에는 무엇이든 1.0을 돌려주는 스텁이었기 때문이다.
나는 한때 USDT 프리미엄을 교과서적인 노이즈로 취급했다. 각주에 한 줄 적고 무시하는 그런 것. 우리는 주방에서 1.03이 "장부에 올릴 가치가 있는지"를 두고 20분을 논쟁한 적이 있다. 둘 다 사설을 쓰고 있었다. 그 페어는 시계열이다. 저장하라. 투표하지 마라.
0.8789
토요일 아침. CoinGecko의 USDC 저가는 $0.8789. 다른 테이프는 $0.87을 찍는다. 몇몇 DEX 풀은 $0.80을 통과한다. USDC를 담보로 잔뜩 넣은 DAI가 그것을 따라 내려간다. USDT는 반대 방향으로 간다. 어떤 화면에서는 $1.03, Kraken에서는 $1.06.
스텁 FX 파일은 여전히 1.0을 돌려준다. 백테스트의 시계는 토요일이라는 것을 안다. 장부의 단위가 이제 부실 토큰이라는 것은 모른다.
Kraken의 26,000 체결
Bitstamp BTC/USD는 $20,200 주변을 돌고 있다. Kraken BTC/USDC는 $26,000 위에서 체결된다. 같은 비트코인이다. 두 번째 숫자는 달러 가격을 깨진 페그로 나눈 값에, 토요일의 얇은 USDC 북이 보태는 공기가 더해진 것이다.
우리 거래소는 무기한을 USDC로 마크했다. 보수적인 테이프를 잡으면, BTC/USDC는 약 $23,000, 곧 $20,200 / 0.88. 1.5 BTC 롱은 약 4,300 USDC 올랐다. 네이티브 단위 계좌: 104,300 USDC. 엔진은 $104,300, 4.3% 상승한 주말, 그리고 그 위에 같은 단위로 펀딩 지급이 착지한다고 보고한다.
달러로 보면 유휴 담보 70,000 USDC는 약 $61,600의 가치가 있다. 전체 104,300 USDC는 약 $91,800의 가치가 있다. "4.3%를 벌었다"는 그 장부는, 대부분 현금에 앉아 있는 동안 달러 자본의 8%를 잃었다.
그 주말 수익률은 운의 변화가 아니라 단위의 변화였다. USDC가 내려간 날의 BTC/USDC 롱 포지션은 기계적으로 디페그의 롱이다. 그 베팅을 원할 수는 있다. USD라고 라벨이 붙은 시계열에서 사후에 그것을 발견할 수는 없다.
cash_usd = cash_usdc * 1.0
내가 붙잡고 있는 줄은 바로 이 줄이다. 모든 바에서 실행됐다. USDCUSD가 0.87이던 바를 포함해서. 1.0을 곱하는 것은 무연산처럼 느껴지고, 그래서 코드 리뷰에서 살아남는다. 그것은 FX 마크다. 얼어 있는 마크다.
담보 70,000 USDC는 거래를 한 번도 트리거하지 않았으므로, 슬리피지 모델이 그것을 본 적도 없고, 수수료 테이블도, 펀딩도 없었다. 현금은 지루한 열이어야 한다. 이 장부에서 그것은 가장 큰 리스크였고, 우리가 가격을 매기지 않은 유일한 리스크였다.
그 주말 BTC 체결의 메이커 리베이트는, 체결이 되기만 했다면, 2 또는 3 bps였다. 호가 자산의 움직임은 1,300 bps였다. 우리에게는 3을 위한 스택 전체가 있고, 1,300을 위한 스텁이 있다.
차트의 초록 주말
월요일 아침 Slack, 아무도 USDCUSD를 열어보기 전: 우리는 오버나이트로 4%를 찍었다. 누군가 페이퍼 사이즈를 키워야 하냐고 물었다. 나는 차트를 보고, 그다음 Kraken을 보고, 그다음 스텁을 봤다.
| 원장 항목 | 엔진이 저장한 것 | 토요일, 네이티브 | 같은 순간, 달러로 |
|---|---|---|---|
| 유휴 담보 | 70,000 USDC × 1.00 | 70,000 USDC | ~$61,600 |
| BTC 퍼프 마크 | BTCUSDC last | ~23,000 USDC (Kraken에서는 26,000) | BTCUSD ~$20,200 |
| 1.5 BTC의 미실현 | +4,300 USDC | +4,300 USDC | 대부분 페그, 일부 비트코인 |
| 보고된 NAV | 104,300 "USD" | 104,300 USDC | ~$91,800 |
USDT 장부는 반대쪽 만화였다. USDT는 비싸게 거래됐으므로, USDT 마진의 플랫 계좌는 역시 벌지 않은 달러 이익을 보여 주었고, BTCUSD 대비 너무 낮은 BTCUSDT 마크를 보여 주었다. 그 주말 "동일한" BTC 퍼프 두 개를 순위 매겼다면, 하나는 USDC 거래소에, 하나는 USDT 거래소에, 당신은 호가 토큰을 순위 매기고 그것을 알파라고 부른 것이다.
페이퍼 계좌, 실제로 USDC를 들고 있던 그 계좌는 리서치 대시보드보다 진실에 더 가까웠다. 달러라고 주장한 적은 한 번도 없었다. 우리가 익스포트에서 그렇게 한 것이다.
월요일에 우리가 내보낸 익스포트
재무부, Fed, FDIC가 SVB 예금자를 온전히 보전하겠다고 말한 뒤, 그리고 Circle이 부족분을 메우겠다고 말한 뒤, USDC는 $1을 향해 기어 올라왔다. 월요일이 되자 페그는 대체로 기운 상태였다. 48시간 동안 틀렸던 스텁 FX 파일은 다시 맞았다.
그러나 일봉은 그것을 숨겼다. 3월 11일 00:00 UTC 샘플은 벤더에 따라 USDC가 이미 이탈한 상태이거나, 이미 반등한 상태였고, 3월 12일 샘플은 다른 영화였다. NAV만 저장하고 호가 마크는 저장하지 않았다면, 어느 쪽인지 재구성할 수 없었다. 추한 주말은 무시할 만큼 작은 점으로 납작해졌고, 우리는 그렇게 했다. 일별로 샘플링했기 때문이다.
우리가 이제 장부에 항상 남겨 두는 것은 3개의 시계열이다. 몇 달 동안 서로 겹쳐 앉아 있을 때조차:
- 거래소 호가 자산 단위의 NAV, 실제로 출금할 수 있는 단위.
- 호가 자산 대 USD, 실제 테이프. 토요일을 포함하고, 0.87을 포함하고, Coinbase가 전환하지 않던 시간을 포함한다.
- 파생 시계열로서의 달러 NAV. 그래서 USD라는 플롯 라벨에 부모가 있게.
에이전트가 백테스트를 작성한다면, 검사는 같다. 모든 포지션과 현금의 호가 자산을 물어라. USDC 거래소에서 USD라고 답하면, 그 런은 달러 런이 아니다. 2023년 3월은, 그 구분이 Sharpe를 움직이지 않는다고 누군가 말할 때 내가 다시 재생하는 주다. 그것은 전략이 움직인 것보다 더 많이 이 Sharpe를 움직였고, 전략은 우리가 모델을 가지고 있던 부분이었다.
← 전체 글


