View source: R/CVaRMultiNTS_old.R View source: R/CVaRMultiNTS.R
mctVaR_MNTS | R Documentation |
Calculate the marginal contribution to VaR for the multivariate NTS market model:
the random vector r
is
r = \mu + diag(\sigma) X
where
X
follows stdNTS_N(\alpha, \theta, \beta, \Sigma)
mctVaR_MNTS(n, eta, w, st)
n |
The target stock to calculate the mctVaR |
eta |
Significant level of VaR. |
w |
The capital allocation rate vector for the current portfolio |
iCDFstd |
The inverst cdf of stdNTS at the significant level eta. If NULL, the function automatically find it. The default value is NULL
|
st |
Structure of parameters for the N-dimensional NTS distribution. |
Kim, Y. S. (2020) Portfolio Optimization on the Dispersion Risk and the Asymmetric Tail Risk https://arxiv.org/pdf/2007.13972.pdf
library(functional)
library(nloptr)
library(pracma)
library(spatstat)
library(Matrix)
library(quantmod)
library(mvtnorm)
library(temStaR)
#Fix alpha and theta.
#Estimate alpha dna theta from DJIA and use those parameter for IBM, INTL parameter fit.
getSymbols("^DJI", src="yahoo", from = "2020-8-25", to = "2020-08-31")
prDJ <- as.numeric(DJI$DJI.Adjusted)
ret <- diff(log(prDJ))
ntsparam <- fitnts(ret)
getSymbols("IBM", src="yahoo", from = "2016-1-1", to = "2020-08-31")
pr1 <- as.numeric(IBM$IBM.Adjusted)
getSymbols("INTL", src="yahoo", from = "2016-1-1", to = "2020-08-31")
pr2 <- as.numeric(INTL$INTL.Adjusted)
returndata <- matrix(data = c(diff(log(pr1)),diff(log(pr2))),
ncol = 2, nrow = (length(pr1)-1))
st <- fitmnts( returndata = returndata,
n = 2,
alphaNtheta = c(ntsparam["alpha"], ntsparam["theta"]) )
w <- c(0.3, 0.7)
eta <- 0.01
mctVaR_MNTS(1, eta, w, st) #MCT-VaR for IBM
mctVaR_MNTS(2, eta, w, st) #MCT-VaR for INTL
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.