CVaR Portfolio Optimization without copulas

44 ビュー (過去 30 日間)
Agne
Agne 2024 年 11 月 13 日 14:04
コメント済み: Agne 約5時間 前
Hi,
I'm trying to do the CVaR Portfolio Optimization using the instructions on Mathworks (link to example). However, the CVaR model in this example uses an empirical distribution with copulas. How could i calculate CVaR, which replaces the variance (risk) from mean-variance model with the quantiles of the return distribution. In other words, the CVaR average-conditional quantile method.
Help is much appreciated

採用された回答

Shantanu Dixit
Shantanu Dixit 2024 年 11 月 25 日 8:12
Hi Agne,
To calculate 'CVaR' using the average-conditional quantile method and replace the variance (risk) from the mean-variance model, you can follow the below steps:
  1. Simulate portfolio returns from your asset scenarios.
  2. Calculate the 'VaR' by finding the (1-alpha) quantile of the portfolio returns. (alpha: confidence level)
  3. Calculate 'CVaR' as the average of the returns below the 'VaR' threshold.
Below is a small snippet which replaces the variance with 'CVaR' based on quantiles of the return distribution
portfolioWeights = w1(:, portNum); % Weights of selected portfolio
portfolioReturns = AssetScenarios * portfolioWeights; % Portfolio returns
% Calculate VaR (quantile at alpha level)
VaR_alpha = quantile(portfolioReturns, 1 - alpha);
% Calculate CVaR (average of returns below VaR)
CVaR_alpha = mean(portfolioReturns(portfolioReturns <= VaR_alpha));
Additionally you can refer to the following MathWorks documentation for more information:
Hope this helps!
  1 件のコメント
Agne
Agne 約5時間 前
Thank you for a clear explanation

サインインしてコメントする。

その他の回答 (1 件)

Alejandra Pena-Ordieres
Alejandra Pena-Ordieres 2024 年 11 月 25 日 17:16
Hi Agne,
The PortfolioCVaR object uses a sample of returns to compute the condiitonal value-at-risk of the portfolio. In other words, PortfolioCVaR internally computes the average losses of a portfolio that are above sepecific quantile from the scenarios that you provide to the object. You can define the quantile of interest using the ProbabilityLevel input.
To substitue the t-copula distribution with the returns distribution, you'd need to simulate several returns scenarios from your returns distribution and then feed those scenarios into the AssetScenarios input. In the AssetScenarios input, each row represents one scenario from the returns distribution and each column represents the returns of each asset for different scenarios.
Hope this helps,
Alejandra

カテゴリ

Help Center および File ExchangeProbability Distributions についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by