This repository has been archived on 2025-06-07. You can view files and clone it, but cannot push or open issues or pull requests.
2025-05-06 21:23:04 +09:00

39 lines
1.2 KiB
Python

'''
risk_manage_engine/calculators/var.py
Value at Risk (VaR)를 계산하는 함수 모듈입니다.
- 목적: 일정 기간 내 손실이 특정 확률(신뢰수준) 이상 발생하지 않을 것이라는 수준을 계산
- 방법: 수익률 분포 기반, 정규분포 가정 또는 히스토리 기반 가능
MVP 단계에서는 히스토리컬 방식 사용
'''
import numpy as np
import pandas as pd
def calculate_var(df: pd.DataFrame, confidence_level: float = 0.95) -> float:
"""
Value at Risk (VaR)를 계산하는 함수
Parameters:
df (pd.DataFrame): CDS 데이터 (필수: 'close' 컬럼)
confidence_level (float): 신뢰 수준 (기본 95%)
Returns:
float: VaR 값 (양수, 손실 한계치)
"""
# 수익률 계산: 오늘 대비 내일 수익률
df = df.copy()
df['return'] = df['close'].pct_change()
df.dropna(inplace=True)
# 수익률들을 오름차순 정렬
sorted_returns = np.sort(df['return'].values)
# VaR은 하위 (1 - 신뢰수준)% 위치에 해당하는 손실
var_index = int((1 - confidence_level) * len(sorted_returns))
var_value = abs(sorted_returns[var_index])
return round(var_value, 4)