변동성(Volatility) 완전 정리 — 개념 · 계산 · 활용
👋 이번 포스팅에서 다룰 것
이번 글에서는 자산 운용의 핵심 중 하나인 변동성(Volatility)을 다룹니다.
가격이 얼마나 출렁이는지를 수치로 나타내는 지표로, 리스크 관리와 포트폴리오 운용의 기초가 됩니다.
💭 “변동성은 리스크의 한 측면이지만, 제대로 이해하고 다루면 기회가 된다.”
⚖️ 1️⃣ 변동성이란 무엇인가?
“이 자산은 얼마나 출렁이는가?”
변동성은 자산의 수익률이 평균값으로부터 얼마나 벗어나는가를 측정하는 지표입니다.
즉, 수익률의 표준편차(Standard Deviation)로 표현됩니다.
| 항목 | 설명 |
|---|---|
| 의미 | 수익률의 흔들림(불확실성)의 크기 |
| 계산식 | |
| 해석 | 값이 높을수록 리스크(변동)가 크다 |
예를 들어,
- 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️⃣ 실무에서 자주 하는 실수
- Adjusted Close 미사용: 배당·분할 미반영 데이터는 왜곡 초래
- STDEV.P vs STDEV.S 혼동: 표본기준(STDEV.S) 사용
- 기간 혼합: 일간/주간/월간 데이터를 섞으면 안 됨
- 정규분포 가정 남용: 실제 수익률은 fat-tail(두터운 꼬리)
- √t 스케일링 오용: 비독립 시계열엔 부정확
- 극단치(outlier) 영향: 필요시 winsorize 또는 log transform 고려
🚀 🔟 변동성의 실무적 활용
| 활용 분야 | 설명 |
|---|---|
| 포지션 관리 | 변동성 높을수록 포지션 축소 또는 레버리지 축소 |
| 리스크 패리티 | 변동성에 반비례로 자산 비중 결정 |
| Vol Targeting | 목표 변동성(예: 10%) 유지하도록 조정 |
| 옵션 전략 | IV > RV → 숏 변동성, IV < RV → 롱 변동성 |
| VaR 계산 | 변동성은 손실 가능성 추정의 핵심 입력 |
🧾 요약 — 핵심 정리
| 핵심 항목 | 요약 |
|---|---|
| 정의 | 수익률의 표준편차로 표현되는 리스크 척도 |
| 수익률 | 로그수익률 사용 권장 |
| 연환산 | √기간 규칙 적용(단, i.i.d. 가정 유효 시) |
| 예측모델 | Rolling / EWMA / GARCH |
| 활용 | 포지션, 리밸런싱, VaR, 리스크 패리티 등 |
Share on
X Facebook LinkedIn BlueskyComments are configured with provider: utterances, but are disabled in non-production environments.