Source code for portfolio_toolkit.optimization.compute_var

from portfolio_toolkit.math.get_var import calculate_expected_shortfall, calculate_var

from .optimization import Optimization


[docs] def compute_var(optimization: Optimization) -> float: """ Computes Value at Risk (VaR) for a portfolio based on optimization results. Args: optimization (Optimization): Optimization object containing portfolio weights and covariance matrix. Returns: float: Value at Risk in monetary units. """ weights = [asset.quantity for asset in optimization.assets] covariance_matrix = optimization.covariance_matrix portfolio_value = 10000 # $5M portfolio confidence_level = 0.95 # 99% confianza time_horizon = 10 # 10 días # Calculate VaR for the portfolio var_10_95 = calculate_var( weights, covariance_matrix, portfolio_value, confidence_level, time_horizon ) # Expected Shortfall es_10_95 = calculate_expected_shortfall( weights, covariance_matrix, portfolio_value, confidence_level, time_horizon ) print(f"10-day VaR at 95% confidence: ${var_10_95:,.2f}") print(f"Expected Shortfall: ${es_10_95:,.2f}") return var_10_95