Phân tích danh mục đầu tư nâng cao với R
Ross Bennett
Instructor
Tối ưu hóa một giai đoạn với optimize.portfolio()
Tối ưu hóa với tái cân bằng định kỳ (backtesting) bằng optimize.portfolio.rebalancing()
optimize.portfolio(R, portfolio = NULL,
optimize_method = c("DEoptim", "random", "ROI", ...),
search_size = 20000, trace = TRUE,
momentFUN = "set.portfolio.moments",
...)
optimize.portfolio.rebalancing(R, portfolio = NULL,
optimize_method = c("DEoptim", "random", "ROI", ...),
search_size = 20000, trace = TRUE,
rebalance_on = "quarters",
training_period,
rolling_window,
momentFUN = "set.portfolio.moments",
...)
Các phương pháp tối ưu hóa hỗ trợ:
Bộ giải toàn cục:
DEoptim: Tiến hóa vi phân
random: Danh mục ngẫu nhiên
GenSA: Tôi luyện mô phỏng tổng quát
pso: Bầy đàn hạt
Bộ giải LP và QP:
data(edhec) ret <- edhec[,1:6]# Portfolio p <- portfolio.spec(assets = colnames(ret)) p <- add.constraint(portfolio = p, type = "full_investment") p <- add.constraint(portfolio = p, type = "long_only") p <- add.objective(portfolio = p, type = "risk", name = "StdDev")# Optimizations opt_single <- optimize.portfolio(R = ret, portfolio = p, optimize_method = "ROI")opt_rebal <- optimize.portfolio.rebalancing(R = ret, portfolio = p, optimize_method = "ROI", rebalance_on = "years", training_period = 60, rolling_window = 60)
Phân tích danh mục đầu tư nâng cao với R