design_MVSKtilting_portfolio_via_sample_moments | R Documentation |
Design high-order portfolio by tilting a given portfolio to the MVSK efficient frontier (i.e., mean, variance, skewness, and kurtosis):
minimize - delta m1(w) >= m1(w0) + delta*d1 m2(w) <= m2(w0) - delta*d2 m3(w) >= m3(w0) + delta*d3 m4(w) <= m4(w0) - delta*d4 (w-w0)'Sigma(w-w0) <= kappa^2 subject to ||w||_1 <= leverage, sum(w) == 1.
design_MVSKtilting_portfolio_via_sample_moments( d = rep(1, 4), X_moments, w_init = rep(1/length(X_moments$mu), length(X_moments$mu)), w0 = w_init, w0_moments = NULL, leverage = 1, kappa = 0, method = c("Q-MVSKT", "L-MVSKT"), tau_w = 1e-05, tau_delta = 1e-05, gamma = 1, zeta = 1e-08, maxiter = 100, ftol = 1e-05, wtol = 1e-05, theta = 0.5, stopval = -Inf )
d |
Numerical vector of length 4 indicating the weights of first four moments. |
X_moments |
List of moment parameters, see |
w_init |
Numerical vector indicating the initial value of portfolio weights. |
w0 |
Numerical vector indicating the reference portfolio vector. |
w0_moments |
Numerical vector indicating the reference moments. |
leverage |
Number (>= 1) indicating the leverage of portfolio. |
kappa |
Number indicating the maximum tracking error volatility. |
method |
String indicating the algorithm method, must be one of: "Q-MVSK", "MM", "DC". |
tau_w |
Number (>= 0) guaranteeing the strong convexity of approximating function. |
tau_delta |
Number (>= 0) guaranteeing the strong convexity of approximating function. |
gamma |
Number (0 < gamma <= 1) indicating the initial value of gamma. |
zeta |
Number (0 < zeta < 1) indicating the diminishing paramater of gamma. |
maxiter |
Positive integer setting the maximum iteration. |
ftol |
Positive number setting the convergence criterion of function objective. |
wtol |
Positive number setting the convergence criterion of portfolio weights. |
theta |
Number (0 < theta < 1) setting the combination coefficient when enlarge feasible set. |
stopval |
Number setting the stop value of objective. |
A list containing the following elements:
|
Optimal portfolio vector. |
|
Maximum tilting distance of the optimal portfolio. |
|
Time usage over iterations. |
|
Objective function over iterations. |
|
Iterations index. |
|
Moments of portfolio return at optimal portfolio weights. |
|
The relative improvement of moments of designed portfolio w.r.t. the reference portfolio. |
Rui Zhou and Daniel P. Palomar
R. Zhou and D. P. Palomar, "Solving High-Order Portfolios via Successive Convex Approximation Algorithms," in IEEE Transactions on Signal Processing, vol. 69, pp. 892-904, 2021. <doi:10.1109/TSP.2021.3051369>.
library(highOrderPortfolios) data(X50) # estimate moments X_moments <- estimate_sample_moments(X50[, 1:10]) # decide problem setting w0 <- rep(1/10, 10) w0_moments <- eval_portfolio_moments(w0, X_moments) d <- abs(w0_moments) kappa <- 0.3 * sqrt(w0 %*% X_moments$Sgm %*% w0) # portfolio optimization sol <- design_MVSKtilting_portfolio_via_sample_moments(d, X_moments, w_init = w0, w0 = w0, w0_moments = w0_moments, kappa = kappa)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.