Finance Toolkit을 사용하여 주요 지수의 리스크 노출(Risk Exposure) 이해하기
요약
Finance Toolkit 라이브러리를 활용하여 S&P 500 등 주요 지수의 리스크 노출도를 분석하는 방법을 소개합니다. 변동성을 넘어 VaR, CVaR, 첨도 등 다양한 통계 지표를 통해 시장의 리스크를 정밀하게 측정하는 과정을 다룹니다.
핵심 포인트
- 단순 변동성 외에 첨도(Kurtosis)를 통한 리스크 분석의 중요성 강조
- VaR 및 CVaR을 활용한 최악의 손실 시나리오 측정 방법
- Finance Toolkit을 이용한 주요 6개 지수의 리스크 지표 계산
- Python 라이브러리를 통한 금융 데이터 분석 자동화
2025년 3월 31일부터 4월 6일 사이의 한 주 동안, S&P 500 ETF는 5.85% 하락했습니다. 그 자체만으로는 특이한 일이 아닙니다. 그러한 주간 변동은 대부분의 해에 발생합니다. 특이한 점은 그 외 2025년의 나머지 기간이 어떠했는가 하는 점입니다. 그해는 다른 기간 동안에는 거의 정상적으로 움직였지만, 단 한 주가 예외였습니다. 그 단 한 주만으로도 S&P 500의 연간 첨도 (Kurtosis)는 26까지 치솟았으며, 이는 2023년과 같이 평온한 해의 일반적인 수치보다 약 6배 높은 수준입니다. 변동성 (Volatility)만으로는 이를 알 수 없습니다. 첨도 (Kurtosis)가 이를 알려줍니다.
이것이 바로 리스크를 측정할 때 단순한 변동성 너머를 살펴보아야 하는 이유입니다. Finance Toolkit의 리스크 모듈은 VaR (Value at Risk), CVaR (Conditional Value at Risk), 최대 낙폭 (Maximum Drawdown), Ulcer Index, GARCH 변동성 (GARCH Volatility), 왜도 (Skewness), 그리고 첨도 (Kurtosis)를 다룹니다. 각각은 단일 표준 편차 (Standard Deviation) 수치가 하나의 수치로 뭉뚱그려버리는 서로 다른 형태의 리스크를 설명합니다. 이 글에서는 6개의 주요 지수에 대해 이 다섯 가지 지표를 실행합니다: S&P 500 (SPY), Nasdaq 100 (QQQ), Dow Jones (DIA), Russell 2000 (IWM), MSCI EAFE 선진국 시장 (EFA), 그리고 MSCI 신흥 시장 (EEM). 모든 계산에 대한 소스 코드는 GitHub에 있습니다. MCP 서버 문서는 여기에서 확인할 수 있습니다.
설정하기 (Setting Things Up)
먼저 Finance Toolkit을 설치하여 시작하세요:
pip install financetoolkit
그 다음 라이브러리를 임포트(import)하고 티커(tickers) 유니버스를 정의합니다. 아래 예시는 6개의 주요 지수를 사용합니다.
from financetoolkit import Toolkit
indices = Toolkit(
...
jeroenbouma.com/fmp에서 FMP API 키를 받으세요. 무료 플랜은 5년의 히스토리를 제공하며, 이는 여기서 사용된 기간을 포괄하기에 충분합니다.
VaR (Value at Risk) 및 CVaR (Conditional VaR): 나쁜 한 주가 얼마나 나빠질 수 있는가?
95% 신뢰 수준(confidence level)에서의 Value at Risk (VaR)는 한 가지 구체적인 질문에 답합니다: 최악의 5% 주간(weeks) 동안, 당신은 얼마나 손실을 보는가? Conditional Value at Risk (CVaR)는 더 어려운 후속 질문에 답합니다: 일단 그 최악의 5% 상황에 진입했을 때, 실제로 평균적으로 얼마나 손실을 보는가? CVaR은 항상 VaR보다 더 나쁜 값을 나타내며, 문제는 그 차이가 얼마나 큰가 하는 점입니다.
var = indices.risk.get_value_at_risk(period="yearly")
cvar = indices.risk.get_conditional_value_at_risk(period="yearly")
다음은 (Value at Risk) 결과입니다:
| Year | SPY | QQQ | DIA | IWM | EFA | EEM |
|---|---|---|---|---|---|---|
| 2019 | -1.2% | -1.6% | -1.2% | -1.5% | -1.1% | -1.5% |
| ... |
그리고 Conditional Value at Risk 결과입니다:
| Year | SPY | QQQ | DIA | IWM | EFA | EEM |
|---|---|---|---|---|---|---|
| 2019 | -2.0% | -2.4% | -2.0% | -2.4% | -1.8% | -2.2% |
| ... |
IWM은 대부분의 다른 지수들이 평온했던 2024년(-2.9%)을 포함하여 거의 매년 최악 또는 두 번째로 최악의 CVaR을 기록하고 있습니다. 이는 대형주(large-cap) 관련 헤드라인이 조용할 때도 소형주(small-cap)의 스트레스가 쌓일 수 있음을 상기시켜 줍니다. VaR과 CVaR 사이의 격차는 더욱 흥미로운 분석 요소입니다. 2020년 SPY의 경우, VaR은 -3.2%였으나 CVaR은 -5.5%였습니다. 이는 최악의 5% 주간 범주 내에서의 평균 결과가 임계값(threshold) 자체보다 거의 두 배나 더 나빴음을 의미합니다. 이 격차는 이 데이터셋에서 가장 광범위한 하락(drawdown)을 보였던 두 해인 2020년과 2022년 동안 모든 지수에서 확대되었으며, 2023년과 같이 더 평온한 해에는 다시 좁혀졌습니다.
Finance Toolkit MCP로 시도해 보세요: "2019년부터 2025년까지 SPY, QQQ, DIA, IWM, EFA, EEM의 연간 Value at Risk 및 Conditional Value at Risk를 계산해 주세요. 어떤 지수가 가장 최악의 꼬리 리스크(tail risk)를 가지고 있으며, VaR과 CVaR 사이의 격차가 가장 크게 벌어지는 해는 언제인가요?"
Maximum Drawdown: 각 지수가 실제로 겪었던 최악의 상황
VaR과 CVaR은 통계적 추정치입니다. Maximum drawdown (최대 낙폭)은 추정치가 아니라, 각 지수에 투자한 투자자가 실제로 겪었던 고점 대비 저점(peak-to-trough)의 실제 손실입니다.
max_drawdown = indices.risk.get_maximum_drawdown(period="yearly")
반환 결과:
| 연도 | SPY | QQQ | DIA | IWM | EFA | EEM |
|---|---|---|---|---|---|---|
| 2019 | ‑6.6% | ‑11.0% | ‑6.9% | ‑9.9% | ‑8.5% | ‑13.1% |
| ... |
2020년 COVID 폭락 사태 당시 IWM은 -41.1%로 가장 큰 타격을 입었습니다. 이는 이 데이터셋의 어떤 연도에서 발생한 다른 지수의 하락보다도 깊은 수치로, 소형주(small-caps)가 공황 상태에서 대차대조표(balance sheet)의 완충력이 부족하고 거래 유동성(liquid trading)이 낮다는 점과 일치합니다. 반면, DIA는 어떤 연도에서도 최악의 낙폭(drawdown)을 기록하지 않았으며, 우량주(blue-chip) 구성 덕분에 2020년과 2022년 모두에서 여섯 개 지수 중 가장 회복 탄력성(resilient)이 높았습니다. 2022년 약세장(bear market)은 기술주에 대한 상황을 반전시켰습니다. QQQ의 -35.2% 낙폭은 해당 연도의 최악이었으며, 이는 성장주를 매도세의 중심지로 만든 것과 동일한 금리 인상 민감도(rate-hike sensitivity)에 의해 주도되었습니다. EEM은 광범위한 글로벌 위기가 없었던 2019년과 2021년에 최악의 성적을 보였는데, 이는 신흥 시장(emerging markets)이 미국 상황과는 독립적으로 자체적인 일정에 따라 낙폭을 기록할 수 있음을 상기시켜 줍니다.
Finance Toolkit MCP로 시도해 보세요: "2019년부터 2025년까지 SPY, QQQ, DIA, IWM, EFA, EEM의 연간 최대 낙폭(maximum drawdown)을 보여줘. 어떤 지수가 단일 최악의 낙폭을 기록했으며, 모든 연도에 걸쳐 어떤 지수가 가장 회복 탄력성이 높았어?"
왜도 (Skewness): 어떤 해에 상승보다 하락 폭이 더 컸는가
왜도 (Skewness)는 비대칭성을 측정합니다. 음의 왜도 (negative skew)를 가진 수익률 분포는 왼쪽 꼬리가 더 길고 두꺼우며, 빈도는 낮지만 심각한 손실이 수익의 빈도를 압도합니다. 양의 왜도 (positive skew)는 그 반대입니다: 빈번한 작은 손실과 가끔 발생하는 큰 수익이 나타납니다.
skewness = indices.risk.get_skewness(period="yearly")
반환 결과:
| 연도 | SPY | QQQ | DIA | IWM | EFA | EEM |
|---|---|---|---|---|---|---|
| 2019 | -0.59 | -0.43 | -0.65 | -0.36 | -0.56 | -0.53 |
| ... |
모든 지수가 2019년과 2020년에 음수 값을 기록했습니다. 이 두 해는 꾸준히 서서히 하락하기보다는 급격하고 갑작스러운 매도세(2018년 말의 여파 및 COVID 폭락)가 지배적이었던 시기였습니다. EFA와 EEM은 2020년에 표 전체에서 가장 극단적인 음의 왜도 (negative skew)인 -1.19와 -1.23을 보여주는데, 이는 해당 연도에 국제 시장이 미국 대형주 (large caps)보다 더 날카롭고 집중적인 타격을 입었던 것과 일치합니다. 2022년은 거의 모든 지수에서 완만한 양의 왜도로 전환되었는데, 이는 해당 약세장 (bear market)이 몇 차례의 세션 동안 폭락하기보다는 매주 서서히 하락했기 때문이며, 유사하게 큰 낙폭 (drawdown)을 기록했음에도 불구하고 2020년의 리스크 형태와는 정반대였습니다. 2025년의 전반적인 양의 왜도는 SPY가 1.52를 기록하며 주도하고 있으며, 이는 일련의 작은 손실보다는 가끔 발생하는 급격한 상승 반등 (upside snap-back)이 간헐적으로 나타나는 가운데 대부분 꾸준한 상승을 보인 한 해였음을 반영합니다.
Finance Toolkit MCP로 시도해 보세요: "2019년부터 2025년까지 이 6개 지수의 연간 왜도 (skewness)를 계산해 줘. 어떤 해에 가장 극단적인 음의 왜도가 나타나며, 그것이 해당 손실이 발생한 방식에 대해 무엇을 시사하는가?"
첨도 (Kurtosis): 왜 2025년은 평범한 해처럼 보이지 않는가
첨도 (Kurtosis)는 방향에 관계없이 정규 분포 (normal distribution)와 비교하여 꼬리 (tails)가 얼마나 두꺼운지를 측정합니다. 높은 첨도는 종 모양의 곡선 (bell curve)이 예측하는 것보다 양방향 모두에서 더 극단적인 주간 변동이 발생함을 의미합니다.
kurtosis = indices.risk.get_kurtosis(period="yearly")
반환 결과:
| 연도 | SPY | QQQ | DIA | IWM | EFA | EEM |
|---|---|---|---|---|---|---|
| 2019 | 6.05 | 5.35 | 6.26 | 4.49 | 5.59 | 4.48 |
| ... |
이 지점은 2025년 4월의 관세 충격(tariff-shock) 주간이 가장 명확하게 드러나는 부분입니다. 2025년 SPY의 첨도 (kurtosis)는 26.1로, 표의 다른 어떤 수치보다 두 배 이상 높으며, 가장 평온했던 해(2023년, 2.81)보다 약 9배 높습니다. QQQ와 EFA도 19를 상회하며 동일한 패턴을 보이는 반면, IWM의 2025년 첨도는 8.73으로 6개 지수 중 가장 낮습니다. 이는 소형주 (small-caps)가 이미 연중 대부분 높은 변동성 (volatility)을 겪으며 버텨왔기에, 단 한 번의 급격한 주간 변동이 분포의 형태를 거의 변화시키지 못했기 때문입니다. 2020년은 COVID 폭락 사태 동안 모든 지수가 두 자릿수 첨도를 기록했던 유일한 다른 해로, 이와 유사한 수치를 보입니다. 이 교훈은 위의 왜도 (skewness) 표와 나란히 놓여 있습니다. 2025년은 양(+)의 왜도 (평균적으로 하락보다 상승 여력이 더 많음)와 극단적인 첨도 (한 주가 일 년 전체의 꼬리 리스크 (tail risk)를 지배함)를 동시에 나타냈는데, 이 두 측정값은 서로 다른 것을 설명한다는 점을 기억하지 않는다면 모순되어 보일 수 있습니다.
Finance Toolkit MCP로 시도해 보세요: "2019년부터 2025년까지 SPY, QQQ, DIA, IWM, EFA, EEM의 연간 첨도를 계산하세요. 어떤 연도와 어떤 지수가 가장 극단적인 꼬리 리스크 (tail risk)를 보여주며, 해당 연도와 지수의 왜도 (skewness)는 그 리스크의 방향에 대해 무엇을 시사하나요?"
이것이 포트폴리오 구축 (Portfolio Construction)에 의미하는 바
이 글에 등장하는 단 하나의 수치만으로는 전체 이야기를 다 설명할 수 없습니다. 변동성 (Volatility)만 고려했다면 2025년의 나머지 기간이 이례적으로 평온했기 때문에 4월의 충격을 완전히 놓쳤을 것입니다. 최대 낙폭 (Maximum drawdown)만 고려했다면 2020년과 2022년의 손실 깊이는 같았지만, 하나는 폭락 (crash)이었고 하나는 점진적 하락 (grind)이었다는 형태의 차이를 놓쳤을 것입니다. CVaR (Conditional Value at Risk)만 고려했다면 IWM의 꼬리 리스크 (tail risk)가 위기 상황뿐만 아니라 2024년과 같은 평온한 해에도 나타난다는 사실을 놓쳤을 것입니다.
이 지표들을 나란히 놓고 비교하면 더 정직한 그림을 얻을 수 있습니다. Dow Jones (DIA)는 이 전체 기간 동안 최대 낙폭 (drawdown) 측면에서 가장 일관되게 회복력이 높았습니다. Russell 2000 (IWM)은 어떤 지표를 사용하더라도 거의 예외 없이 최악의 꼬리 리스크 (tail risk)를 안고 있으며, 신흥 시장 (EEM)은 미국 지수들의 움직임과는 독립적으로 자신들만의 일정에 따라 움직입니다. 이러한 사실이 분산 투자 (diversification)의 논거를 바꾸지는 않지만, 포트폴리오의 각 구성 요소가 실제로 어떤 위험에 대해 보호를 사고 있는지를 구체적으로 명시해 줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기