VaR, CVaR을 직접 계산해보자 (+엑셀 모델)

VaR, CVaR을 직접 계산해보자 (+엑셀 모델)

avatar
Doodly_TeddyNF
2024.07.20조회수 25회

앞선 글에서 저는 리스크 관리 기법으로 리스크 비율 고정법(2% 룰)을 따른다고 했습니다.


2%룰은 한 포지션에서 발생하는 최대 손실이 2%를 넘지 않도록 하는 규칙입니다.

예를 들어 100%를 투자하면 -2%만 손실이 발생해도 손절해야 합니다.

반대로 10%를 투자하면 -20%까지는 버텨볼 수 있겠죠. 2%만 투자하면 전액 손실이 나도 상관 없습니다.


원래는 좀 직관적으로 투자해도 된다는 점이 장점이라고 했었지만... 손절이 너무 잦으면 최적 투자비중으로 투자한다고 볼 수는 없겠죠. 반대로 너무 소극적으로 5%씩만 투자하면 돈을 벌어도 짜증나는 경우가 있을 수 있습니다. 경험이 모든걸 해결해준다고 하는건 무책임한 것 같아서 간단하게 엑셀로 VaR을 계산하는 방법을 알려드리겠습니다.


모델을 이해하려면 좀 만져보는게 좋아서 이번에는 엑셀파일도 공유합니다.

엑셀 파일 링크


CVaR 산출 부분은 NEDL이라는 유튜브 채널에서 많이 가져왔습니다.

Conditional Value-at-Risk (Expected shortfall) - measuring expected extreme loss (Excel) (SUB)

Monte Carlo simulation for Conditional VaR (Excel)

VaR (Value at Risk, 최대예상손실액)이란?

VaR은 특정 자산의 수익률 확률분포 (역사적 분포, 이와 비슷한 다른 분포)에 근거해 특정 기간에 잃을 수 있는 최대 손실입니다. 이를 위해서는 먼저 통계적 검정이라는 것에 대해 조금 이해해야 합니다.


동전을 던졌을 때 앞면이 나올 확률은 50%이라는 것은 모두가 아는 사실입니다 (동전의 무게배분이 불완전하거나, 옆면으로 서는 확률 등 현실적인 요소는 제쳐둡시다). 이때 확률의 정의는 동일한 조건으로 반복되는 시행에서 사건이 발생한 횟수와 총 시행 횟수 사이의 비율입니다.


다르게 표현하자면 동전을 무한히 던진다고 하면 앞면의 상대적 빈도는 50%에 수렴하게 됩니다. 따라서 우리가 실제로 동전을 던질때 몇번만 던질 경우에 앞면만 6번 나올 수도 있지만, 무한히 동전을 던지면 그 확률이 50%에 수렴할 것이라는걸 알기 때문에 다음 시행에서는 뒷면이 나올거라는데 돈을 걸어도 됩니다. 이를 대수의 법칙이라고 부릅니다.


주가지수를 생각해보면 동전과 달리 무한히 주가지수를 관찰했을때 일일수익률의 확률분포가 어떻게 나올지는 모르지만, 이미 관측한 과거 데이터의 확률분포를 토대로 추정할 수 있습니다. 우리가 가진 데이터가 충분히 많다면, 모집단과 표본집단의 분포는 거의 비슷할겁니다.


VaR은 자산이 가질 것으로 추정되는 확률분포 상에서 최악의 n% 유의수준의 수익률을 구하는 것입니다. 유의수준은 (1-신뢰수준)이고, 신뢰수준은 모집단에서 표본을 여러개 임의로 뽑아서 만들었을때, 표본분포 내에 모집단분포의 평균이 존재하는 빈도의 비율입니다. 예를 들어 유의수준이 1%라고 하면, 미래에 전혀 겪어보지 못했던 형태의 금융위기가 발생해서 역사적 분포를 활용해서 구한 VaR값이 무용지물이 될 확률이 1%라는 것입니다. 사용할 분포와 유의수준만 미리 정해주면 VaR을 구할 수 있습니다.


야후 파이낸스에는 1928년부터의 S&P500 일간 데이터가 있으니 "역사적" 분포라는 말을 붙이기 좋을 것 같습니다. 이번에는 이 데이터를 이용해보겠습니다.

  • 데이터 기간: 1927.12.30 ~ 2024.07.18 (표본 갯수 = 24,252개)

  • 배당 재투자 없이 수정종가로 가격 상승률만 사용 (전체기간 CAGR 6.2%)

  • 일일수익률 단위로 일간 VaR 산출

먼저 일일수익률의 히스토그램을 살펴보자면 S&P500의 특성은 다음과 같습니다.

  • 일평균수익률 0.031%

  • 표준편차 1.19%

역사적 분포의 하위 5%값을 보면 -1.68%입니다. 따라서 유의수준 5%에서 역사적 분포를 사용한 S&P500의 VaR은 -1.68%라고 할 수 있습니다.

  • 역사적 분포 VaR 함수 (유의수준 5%): =PERCENTILE.EXC(데이터 범위, 0.05)

역사적 분포에서 하위 5%값

그림1.png

역사적 분포가 아니라 정규분포를 ...

회원가입만 해도
이 글을 무료로 읽을 수 있어요.

이미 계정이 있으신가요?로그인하기
댓글 2
avatar
Doodly_TeddyNF
구독자 646명구독중 26명
처음에 뉴런으로 활동했던 뉴로퓨전 분석팀 애널리스트 Teddy입니다. 이제는 종목 언급은 못하지만, 여기서는 Teddy가 아니라 Doodly로서 시시콜콜한 이야기로 찾아뵙겠습니다.