執行最佳化

R 中級投資組合分析

Ross Bennett

Instructor

單期最佳化

  • 使用 optimize.portfolio() 進行單期最佳化

  • 使用 optimize.portfolio.rebalancing() 進行定期再平衡(回測)

R 中級投資組合分析

單期最佳化

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",
                               ...)
R 中級投資組合分析

最佳化方法

支援下列最佳化方法:

全域解器

  • DEoptim:差分演化最佳化

  • random:隨機投組最佳化

  • GenSA:廣義模擬退火

  • pso:粒子群最佳化

LP 與 QP 解器

  • ROI:線性與二次規劃的 R Optimization Infrastructure
R 中級投資組合分析
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)
R 中級投資組合分析

一起來練習吧!

R 中級投資組合分析

Preparing Video For Download...