Nothing
library(FRAPO)
library(PortfolioAnalytics)
## Loading data and computing returns
data(MultiAsset)
R <- returnseries(MultiAsset, percentage = FALSE, trim = TRUE)
N <- ncol(R)
## Defining constraints and objective for CVaR budget
C1 <- constraint(assets = colnames(R), min = rep(0, N),
max = rep(1, N), min_sum = 1, max_sum = 1)
ObjCVaR <- add.objective(constraints = C1, type = "risk",
name = "ES", arguments = list(p = 0.95),
enabled = TRUE)
ObjCVaRBudget <- add.objective(constraints = ObjCVaR,
type = "risk_budget",
name = "ES", max_prisk = 0.2,
arguments = list(p = 0.95),
enabled = TRUE)
SolCVaRBudget <- optimize.portfolio(R = R,
constraints = ObjCVaRBudget,
optimize_method = "DEoptim",
itermax = 50,
search_size = 20000,
trace = TRUE)
WCVaRBudget <- SolCVaRBudget$weights
CVaRBudget <- ES(R, weights = WCVaRBudget, p = 0.95,
portfolio_method = "component")
## Minimum CVaR concentration portfolio
ObjCVaRMinCon <- add.objective(constraints = ObjCVaR,
type = "risk_budget",
name = "ES",
min_concentration= TRUE,
arguments = list(p = 0.95),
enabled = TRUE)
SolCVaRMinCon <- optimize.portfolio(R = R,
constraints = ObjCVaRMinCon,
optimize_method = "DEoptim",
itermax = 50,
search_size = 20000,
trace = TRUE)
WCVaRMinCon <- SolCVaRMinCon$weights
CVaRMinCon <- ES(R, weights = WCVaRMinCon, p = 0.95,
portfolio_method = "component")
## GMV Portfolio
WGMV <- Weights(PGMV(R, percentage = FALSE))
CVaRGMV <- ES(R, weights = WGMV, p = 0.95,
portfolio_method = "component")
## ERC Portfolio
WERC <- Weights(PERC(cov(R), percentage = FALSE))
CVaRERC <- ES(R, weights = WERC, p = 0.95,
portfolio_method = "component")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.