본문 바로가기
C.W.K.
Stream
Lesson 02 of 06 · published

LTCM 1998: 좋은 수학이 위험한 시스템을 만났을 때

~12 min · ltcm, 1998, normality-misuse, case-study, finance

Level 0통계 초심자
0 XP0/55 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete
"LTCM은 '천재도 틀린다'는 우화가 아니야. 작은 가격차이에 거대한 레버리지를 얹고, 유동성과 상관관계가 위기에도 버틸 거라고 믿을 때 어떤 일이 생기는지 보여주는 사례야."

어떤 펀드였나

Long-Term Capital Management는 1994년 John Meriwether가 세운 헤지펀드야. Robert Merton과 Myron Scholes 같은 저명한 학자도 참여했어. 핵심전략은 비슷한 증권 사이의 가격차이가 장기적으로 줄어들 것이라는 수렴거래였지.

한 거래에서 얻을 수 있는 차익이 작았기 때문에 펀드는 큰 레버리지를 사용했어. 가격차이가 예상대로 줄면 높은 수익을 낼 수 있지만, 반대로 벌어지면 작은 모델오차와 시장충격도 자기자본에 큰 손실을 줘. 레버리지는 예측을 더 정확하게 만들지 않아. 맞았을 때와 틀렸을 때의 결과를 모두 확대할 뿐이야.

모델이 놓치기 쉬운 것

LTCM의 위험관리를 "수익률을 완벽한 정규분포로 가정한 모델 하나"로 축약하면 실제 교훈을 놓쳐. 중요한 취약성은 과거자료로 추정한 변동성과 상관관계가 위기에도 유지될 것이라는 믿음, 비슷한 거래에 여러 기관이 몰려 있을 가능성, 포지션을 원하는 가격에 정리할 수 있다는 유동성 가정, 그리고 그 모든 오차를 증폭하는 레버리지였어.

정규근사와 안정적인 공분산에 기대면 극단 손실을 작게 볼 수 있어. 하지만 위기에는 투자자들이 동시에 안전자산을 찾고, 평소에는 달라 보이던 포지션들이 같은 방향으로 움직이며, 매도하려는 사람이 한꺼번에 늘어 가격충격이 커져. 과거의 조용한 기간에서 추정한 숫자가 새로운 상태를 설명하지 못하는 거야.

1998년에 무슨 일이 있었나

1998년 러시아의 채무불이행과 시장불안 뒤에 안전자산 선호가 강해지면서 LTCM이 기대한 가격차이는 줄지 않고 크게 벌어졌어. 여러 포지션이 동시에 손실을 냈고, 유동성이 말라붙으면서 거래를 정리하기도 어려워졌지. 그해 LTCM의 자본손실은 약 46억 달러에 이르렀어.

뉴욕 연방준비은행은 무질서한 청산이 금융시장에 미칠 충격을 우려해 민간 금융회사들의 협상을 주선했어. 참여 금융회사들이 약 36억 달러를 투입해 펀드의 지분과 통제권을 가져갔지. 이를 연준이 공적자금으로 직접 구제했다고 쓰면 부정확해. 정확한 표현은 연준이 촉진한 민간 구제금융이야.

트랙의 교훈

LTCM의 붕괴에는 꼬리위험 과소평가, 상태에 따라 바뀌는 상관관계, 거래쏠림, 유동성 부족, 거대한 레버리지가 함께 작동했어. "정규분포가 틀려서 망했다"는 한 문장보다 중요한 질문은 이거야. 모델이 틀렸을 때 포지션을 줄일 수 있었나? 다른 참가자도 같은 거래를 하고 있었나? 상관관계와 유동성이 위기 때 어떻게 변하는지 스트레스 테스트했나?

Code

양식화된 레버리지-증폭 정규성 실패·python
import numpy as np
rng = np.random.default_rng(190)

# 양식화된 LTCM-스타일 포트폴리오.
# 많은 작은 '수렴' 베팅, 각자 작은 양의 기대 수익과 작은 일일 변동성.
# 독립이고 정규로 가정.
N_positions = 50
daily_vol_per_pos = 0.002       # 포지션당 일일 변동성 0.2%
daily_return_per_pos = 0.0001    # 작은 양의 drift
leverage = 25                    # 전형적 LTCM 레버리지

T_days = 500
# 시나리오 1: 가정된 세계. 독립, 정규 수익.
returns_independent = rng.normal(
    loc=daily_return_per_pos, scale=daily_vol_per_pos,
    size=(T_days, N_positions),
).mean(axis=1) * leverage

# 시나리오 2: 실제 세계. 스트레스 하 상관되고 두꺼운 꼬리 수익.
# 대부분 날이 정규-같이 보임; 가끔 '스트레스 날' 이 상관된 큰 변동.
common_stress = rng.standard_t(df=3, size=T_days)[:, None]
idio = rng.normal(loc=daily_return_per_pos, scale=daily_vol_per_pos,
                  size=(T_days, N_positions))
returns_correlated = (0.4 * common_stress * daily_vol_per_pos * 3 + 0.6 * idio).mean(axis=1) * leverage

for label, x in [("가정된 (독립+정규)", returns_independent), ("현실 (상관+두꺼운 꼬리)", returns_correlated)]:
    cumret = (1 + x).cumprod()
    max_dd = ((cumret / np.maximum.accumulate(cumret)) - 1).min()
    print(f"{label:>28s}: 최종 누적 수익 = {cumret[-1]:>6.3f}   "
          f"최대 drawdown = {max_dd:>6.2%}")

# '가정된' 세계가 안정적인 누적 수익 생산.
# '현실' 세계가 가정된-세계 모델이 본질적으로 불가능으로 다룬 재앙적
# drawdown 을 생산하는 가끔의 스트레스 날 가짐.
# 그게 LTCM 이 1998 에 겪은 것, 레버리지에 의해 수십억으로 확대.

External links

Exercise

운영 중인 시스템 하나를 골라 예측오차를 키우는 세 요소를 적어봐. 평상시 자료에서 안 보이는 상관관계, 위기 때 사라지는 유동성이나 여유자원, 오차를 확대하는 레버리지 또는 자동화가 있는지 확인해.
Hint
프로젝트에서는 공통 의존성과 연쇄지연, 서비스에서는 공통 인프라와 자동 재시도, 재정에서는 같은 충격에 반응하는 자산과 부채를 찾아봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고
💛 by 똘이warm

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.