程式

營業額約束忽略投資組合的初始權重

  • November 3, 2021

我正在嘗試執行標準的投資組合優化,但限制允許投資組合的最終權重偏離一組初始權重。我用這個PortfolioAnalytics包做這個,下面的程式碼是一個沒有任何錯誤的 MWE。

# load packages and data
library(quadprog)
library(PortfolioAnalytics)
data(edhec)
dat <- edhec[,1:4]

# add initial weights to initial portfolio
funds <- c("Convertible Arbitrage" = 0.4, "CTA Global" = 0.3, "Distressed Securities" = 0.2, "Emerging Markets" = 0.1)
init.portf <- portfolio.spec(assets=funds)

# standard constraints & objectives
init.portf <- add.constraint(portfolio=init.portf, type="box", min_w=0, min_sum=0.99, max_sum=1.01)
init.portf <- add.objective(portfolio=init.portf, type="return", name="mean") 
init.portf <- add.objective(portfolio=init.portf, type="risk", name="StdDev")

# TURNOVER CONSTRAINT (MATTER OF THIS THREAD)
init.portf <- add.constraint(portfolio=init.portf, type="turnover", turnover_target=0)

# optimize portfolio
opt.portf <- optimize.portfolio(R=dat, portfolio=init.portf, trace=TRUE, optimize_method="random")

# check the weights of optimized portfolio
print.default(opt.portf$weights)

turnover_target0,所以輸出權重應該與輸入權重相同,(0.4, 0.3, 0.2, 0.1)但它們的權重相等(0.25, 0.25, 0.25, 0.25)。等權重是預設的初始權重,所以不知何故,我設置的初始權重似乎無法辨識。但是查看add.constraintrolling_constraint的文件並沒有多大幫助。看起來好像一切都應該正常工作。他們定義初始權重的方式與portfolio.spec的文件相匹配

有誰知道為什麼我的初始權重被營業額約束忽略了?

引用自:https://quant.stackexchange.com/questions/68638