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 -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
denote return to source
for the same period, where
. The portfolio return over the period is
where is the portfolio exposure to the asset
, i.e., portfolio weight, such that
and
. Portfolio manager determines the size of
at the beginning of the investment period. Portfolio volatility is defined as
where and
being the variance-covariance matrix of the assets in the portfolio.
is the sample portfolio-covariance matrix. If
and prior distribution on is
Then posterior distribution is
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