我现在意识到,在设置赏金后,问题已经得到解答here https://stackoverflow.com/questions/26745976/create-efficient-frontier-in-portfolioanalytics-without-an-xts-object%20here。我将尽我所能地进行总结。
你打电话时optimize.portfolio
,有一个可选参数momentFUN
,它定义了您的投资组合的时刻。它的论据之一是momentargs
,你可以通过optimize.portfolio
.
首先,您需要选择一组预期回报。我假设你的最后一个条目views
时间序列:
my.expected.returns = views["2009-08-31"]
您还需要自己的协方差矩阵。我会根据你的计算出来returns
:
my.covariance.matrix = cov(returns)
最后,您需要定义momentargs
,这是一个包含以下内容的列表mu
(您的预期回报),sigma
(你的协方差矩阵),以及第三和第四矩(我们将其设置为零):
num_assets = ncol(current.view)
momentargs = list()
momentargs$mu = my.expected.returns
momentargs$sigma = my.covariance.matrix
momentargs$m3 = matrix(0, nrow = num_assets, ncol = num_assets ^ 2)
momentargs$m4 = matrix(0, nrow = num_assets, ncol = num_assets ^ 3)
现在您已准备好优化您的投资组合:
o = optimize.portfolio(R = returns, portfolio = pf, momentargs = momentargs)