portvol.Bayes, mctr.Bayes, cctr.Bayes {PortRisk} | R Documentation |
Portfolio Volatility and Contribution to Total Volatility Risk (MCTR & CCTR): Bayesian Approach
Description
portvol.Bayes
computes portfolio volatility of a given portfolio for specific weight and time period. mctr.Bayes
& cctr.Bayes
computes the Marginal Contribution to Total Risk (MCTR) & Conditional Contribution to Total Risk (CCTR) for the given portfolio.
Usage
portvol.Bayes(tickers, weights = rep(1,length(tickers)),
start, end, data, sim.size = 1000)
mctr.Bayes(tickers, weights = rep(1,length(tickers)),
start, end, data, sim.size = 1000)
cctr.Bayes(tickers, weights = rep(1,length(tickers)),
start, end, data, sim.size = 1000)
Arguments
tickers |
A character vector of ticker names of companies in the portfolio. |
weights |
A numeric vector of weights assigned to the stocks corresponding to the ticker names in |
start |
Start date in the format "yyyy-mm-dd". |
end |
End date in the format "yyyy-mm-dd". |
data |
A |
sim.size |
Simulation size, default 1000. |
Details
As any portfolio can be considered as bag of p
-many risky assets, it is important to figureout how these assets contributes to total volatility risk of the portfolio. We consider an investment period and suppose r_j
denote return to source j
for the same period, where j = 1, 2,\ldots, p
. The portfolio return over the period is
R_p = \sum_{j=1}^{p} w_j r_j
where w_j
is the portfolio exposure to the asset j
, i.e., portfolio weight, such that w_j \ge 0
and \sum_{j=1}^{p} w_j = 1
. Portfolio manager determines the size of w_j
at the beginning of the investment period. Portfolio volatility is defined as
\sigma = \sqrt{w^T \Sigma w}
where w = (w_1, w_2,\ldots, w_p)
and \Sigma
being the variance-covariance matrix of the assets in the portfolio.
S
is the sample portfolio-covariance matrix. If
S \sim Wishart(n-1,\Sigma)
and prior distribution on \Sigma
is
\Sigma \sim Inv-Wishart(n_0,\Psi)
Then posterior distribution is
\Sigma | S \sim Inv-Wishart(n_0+n-1,\Psi+S)
For more detail, see portvol
, mctr
, cctr
Value
portvol |
A numeric value. Volatility of a given portfolio in percentage. |
mctr |
A named numeric vector of Marginal Contribution to Total Risk (MCTR) in percentage with names being the ticker names. |
cctr |
A named numeric vector of Conditional Contribution to Total Risk (CCTR) in percentage with names being the ticker names. |
See Also
Examples
data(SnP500Returns)
# consider the portfolio containing the first 4 stocks
pf <- colnames(SnP500Returns)[1:4]
st <- "2013-01-01" # start date
en <- "2013-01-31" # end date
# suppose the amount of investments in the above stocks are
# $1,000, $2,000, $3,000 & $1,000 respectively
wt <- c(1000,2000,3000,1000) # weights
# portfolio volatility for the portfolio 'pf' with equal (default) weights
pv1 <- portvol(pf, start = st, end = en,
data = SnP500Returns)
# portfolio volatility for the portfolio 'pf' with weights as 'wt'
pv2 <- portvol(pf, weights = wt, start = st, end = en,
data = SnP500Returns)
# similarly,
# mctr for the portfolio 'pf' with weights as 'wt'
mc <- mctr(pf, weights = wt, start = st, end = en,
data = SnP500Returns)
# cctr for the portfolio 'pf' with weights as 'wt'
cc <- cctr(pf, weights = wt, start = st, end = en,
data = SnP500Returns)
sum(cc) == pv2
# note that, sum of the cctr values is the portfolio volatility