3 minute read

👋 이번 포스팅에서 다룰 것

이번 글에서는 자산 운용의 핵심 중 하나인 변동성(Volatility)을 다룹니다.
가격이 얼마나 출렁이는지를 수치로 나타내는 지표로, 리스크 관리와 포트폴리오 운용의 기초가 됩니다.

💭 “변동성은 리스크의 한 측면이지만, 제대로 이해하고 다루면 기회가 된다.”


⚖️ 1️⃣ 변동성이란 무엇인가?

“이 자산은 얼마나 출렁이는가?”

변동성은 자산의 수익률이 평균값으로부터 얼마나 벗어나는가를 측정하는 지표입니다.
즉, 수익률의 표준편차(Standard Deviation)로 표현됩니다.

항목 설명
의미 수익률의 흔들림(불확실성)의 크기
계산식 σ = √(Σ(Rᵢ - R̄)² / (N-1))
해석 값이 높을수록 리스크(변동)가 크다

예를 들어,

  • A주식의 월 변동성 2%
  • B주식의 월 변동성 8%
    → B는 A보다 4배 더 불안정한 자산입니다.

💡 변동성은 상승과 하락 모두 포함하기 때문에,
“리스크 = 변동성”으로 단정 짓기는 어렵습니다.


📊 2️⃣ 수익률 계산 방식 — 산술 vs 로그

변동성은 수익률의 표준편차이므로, 먼저 수익률 정의가 중요합니다.

구분 계산식 특징
산술 수익률 r_t = (P_t / P_{t-1}) - 1 단순 비율, 직관적
로그 수익률 r_t = ln(P_t / P_{t-1}) 연속 복리 구조, 통계적 분석에 적합

✅ 실무에서는 로그수익률을 주로 사용합니다.
(합산이 간단하고, 시계열 분석·회귀 모델링에 유리하기 때문입니다.)


🧮 3️⃣ 변동성 계산 예시 (Excel)

단계 수식 설명
일별 수익률 =LN(A2/A1) (A열: 종가)
일간 변동성 =STDEV.S(B2:B253) 표본 표준편차
연환산 변동성 =STDEV.S(B2:B253)*SQRT(252) 252거래일 기준

⚠️ 주의:

  • 공백·결측치가 있으면 오차 발생
  • STDEV.P(모집단) 대신 STDEV.S(표본) 사용
  • 분할·배당이 반영된 Adjusted Close 데이터 권장

💻 4️⃣ 변동성 계산 예시 (Python — pandas)

import pandas as pd
import numpy as np

# prices: pandas Series (index=date, value=close)
returns = np.log(prices / prices.shift(1)).dropna()   # 로그 수익률
daily_vol = returns.std(ddof=1)                       # 일간 표본 표준편차
annual_vol = daily_vol * np.sqrt(252)                 # 연환산 변동성

# 60거래일 롤링 변동성
rolling_vol = returns.rolling(window=60).std(ddof=1) * np.sqrt(252)

# EWMA 변동성 (RiskMetrics λ=0.94)
lambda_ = 0.94
ewma_var = returns.ewm(alpha=1-lambda_, adjust=False).var()
ewma_vol = np.sqrt(ewma_var) * np.sqrt(252)

📆 5️⃣ 기간 조정과 연환산 (Annualization)

  • 일간 변동성 → 연간 변동성으로 변환:

    σ_annual = σ_daily × √252

  • 주간 변동성 → 연간: √52
    월간 변동성 → 연간: √12

📌 단, 이 스케일링은 수익률이 독립적(i.i.d.)이라는 가정이 필요합니다.
현실에서는 수익률이 상관되어 있어, 장기 예측엔 오차가 발생할 수 있습니다.


🔍 6️⃣ 실현 변동성 vs 내재 변동성

구분 정의 데이터 출처 용도
실현 변동성 (Realized) 과거 수익률의 실제 변동 가격 시계열 과거 리스크 측정
내재 변동성 (Implied) 옵션가격에 내포된 미래 기대 변동성 파생상품 시장(VIX 등) 향후 리스크 예측

💡 VIX는 S&P500 옵션시장의 30일 내재변동성을 지수화한 대표 지표입니다.


📈 7️⃣ 변동성 예측 모델 — Rolling · EWMA · GARCH

모델 개념 장점 단점
Rolling Volatility 일정 기간 표준편차 직관적, 계산 간단 민감도 조절 어려움
EWMA (지수 가중 이동평균) 최근 데이터에 더 큰 가중치 신속한 반응성 λ값 설정 필요
GARCH(1,1) 과거 충격(ε²) + 이전 분산 반영 변동성 군집성 포착 복잡, 과적합 위험

📊 금융기관에서는 보통 EWMA (λ=0.94) 또는 GARCH(1,1) 모델을 병행해 사용합니다.


💡 8️⃣ 포트폴리오 변동성 계산

포트폴리오 가중치 w, 자산 공분산행렬 Σ일 때:

sigma_p = sqrt(wᵀ Σ w)

# returns_df: 각 자산의 로그수익률 데이터프레임
cov = returns_df.cov(ddof=1) * 252
weights = np.array([0.4, 0.3, 0.3])
port_vol = np.sqrt(weights.dot(cov).dot(weights.T))

✅ 공분산을 반영하면 분산효과(Diversification)를 정확히 반영할 수 있습니다.


⚠️ 9️⃣ 실무에서 자주 하는 실수

  1. Adjusted Close 미사용: 배당·분할 미반영 데이터는 왜곡 초래
  2. STDEV.P vs STDEV.S 혼동: 표본기준(STDEV.S) 사용
  3. 기간 혼합: 일간/주간/월간 데이터를 섞으면 안 됨
  4. 정규분포 가정 남용: 실제 수익률은 fat-tail(두터운 꼬리)
  5. √t 스케일링 오용: 비독립 시계열엔 부정확
  6. 극단치(outlier) 영향: 필요시 winsorize 또는 log transform 고려

🚀 🔟 변동성의 실무적 활용

활용 분야 설명
포지션 관리 변동성 높을수록 포지션 축소 또는 레버리지 축소
리스크 패리티 변동성에 반비례로 자산 비중 결정
Vol Targeting 목표 변동성(예: 10%) 유지하도록 조정
옵션 전략 IV > RV → 숏 변동성, IV < RV → 롱 변동성
VaR 계산 변동성은 손실 가능성 추정의 핵심 입력

🧾 요약 — 핵심 정리

핵심 항목 요약
정의 수익률의 표준편차로 표현되는 리스크 척도
수익률 로그수익률 사용 권장
연환산 √기간 규칙 적용(단, i.i.d. 가정 유효 시)
예측모델 Rolling / EWMA / GARCH
활용 포지션, 리밸런싱, VaR, 리스크 패리티 등

Categories:

Updated:

Comments are configured with provider: utterances, but are disabled in non-production environments.