Computes Value-at-Risk and related measures for a portfolio of assets.
The functions are:
pfolioVaR | computes Value-at-Risk for a portfolio of assets, |
pfolioCVaRplus | computes Value-at-Risk+ for a portfolio of assets, |
pfolioCVaR | computes Conditional Value-at-Risk for a PF of assets, |
lambdaCVaR | computes CVaR's atomic split value lambda, |
pfolioCVaRoptim | computes Conditional VaR from mean-CVaR optimization, |
pfolioMaxLoss | computes Maximum Loss for a portfolio of assets, |
pfolioReturn | computes return values of a portfolio, |
pfolioTargetReturn | computes the target return of a portfolio, |
pfolioTargetRisk | computes the target risk of a portfolio, |
pfolioHist | plots a histogram of the returns of a portfolio. |
pfolioVaR(x, weights = NULL, alpha = 0.05)
pfolioCVaRplus(x, weights = NULL, alpha = 0.05)
pfolioCVaR(x, weights = NULL, alpha = 0.05)
lambdaCVaR(n, alpha = 0.05)
pfolioCVaRoptim(x, weights = NULL, alpha = 0.05) pfolioMaxLoss(x, weights = NULL)
pfolioReturn(x, weights = NULL, geometric = FALSE)
pfolioTargetReturn(x, weights = NULL)
pfolioTargetRisk(x, weights = NULL)
pfolioHist(x, weights = NULL, alpha = 0.05, range = NULL, details = TRUE, ...)
pfolioVaR
returns the value of risk, VaR, for a portfolio of assets, a numeric value.
pfolioCVaRplus
returns the conditional value of risk plus, CVaRplus, for a portfolio of assets, a numeric value.
pfolioCVaR
returns the conditional value of risk, CVaR, for a portfolio of assets, a numeric value.
lambdaCVaR
returns CVaR's atomic split value lambda
, a numeric value.
pfolioMaxLoss
returns the maximum loss value of the portfolio, a numeric value.
pfolioReturn
returns the total portfolio return computed from the set of
assets x
, a numeric vector.
pfolioTargetReturn
returns the total return or target return computed from the set of
assets x
and weights weights
, a numeric value.
pfolioTargetRisk
returns the total risk (Sigma) or target risk computed from the set
of assets x
and weights
via the formual
sqrt(weights %*% cov(x) %*% weights)
, a numeric value.
pfolioHist
plots a histogram of portfolio returns and adds the values
for the VaR (blue), for the CVaRplus (red), and for the
maximum loss (green) to the histogram plot. The function
invisibly returns a list with the following elements: VaR,
VaRplus, maxLoss, mean, and sd. If details
is TRUE
,
then the result is printed.
a 'timeSeries' object, data frame or any other rectangular
object which can be expressed as a matrix. The first
dimension is the number of observations, we call it n
,
and the second is the number of assets in the data set,
we call it dim
.
usually a numeric vector which has the length of the number of
assets. The weights measures the normalized weights of the
individual assets. By default NULL
, then an equally
weighted set of assets is assumed.
a logical flag, should geometric returns be used, by default FALSE
a numeric value, the confidence interval, by default 0.05.
a logical value, should details be printed?
the number of observation from which the CVaR's atomic split
value lambda=1-floor(alpha*n)/(alpha*n)
will be
evaluated.
a numeric vector of two elements limiting the plot range of
the histogram. This is quite useful if one likes to compare
several plots on the same scale. If range=NULL
, the
default value, then the range will be selected automatically.
optional arguments to be passet to the function hist
.
The percentile measures of loss (or reward) are defined in the following way: Let \(f(x ,y)\) be a loss functions depending upon a decision vector \(x = (x_1, ..., x_n )\) and a random vector \(y = (y_1, ..., y_m)\), then
pfolioVaR is the alpha-percentile of the loss distribution, a smallest value such that the probability that losses exceed or are equal to this value is greater or equal to alpha.
pfolioCVaRplus or "CVaR+" or the "upper CVaR" are the expected losses strictly exceeding VaR. This is also also called "Mean Excess Loss" and "Expected Shortfall".
pfolioCVaR is a weighted average of VaR and CVaRplus defined as \(CVaR = lambda*VaR + (1-lambda)\) CVaRplus, for \(0 <= lambda <= 1\).
Note, CVaR is convex, but VaR and CVaRplus may be non-convex. The following inequalities are valid: \(VaR <= CVaR <= CVaRplus\).
Uryasev S. (2000); Conditional Value-at-Risk (CVaR): Algorithms and Applications, Risk Management and Financial Engineering Lab, University of Florida
Wuertz, D., Chalabi, Y., Chen W., Ellis A. (2009); Portfolio Optimization with R/Rmetrics, Rmetrics eBook, Rmetrics Association and Finance Online, Zurich.