投资组合优化的问题,意味着回报不处理向量

5视图(30天)
嘿,大家,
我想实现一个古典与金融tooldbox la马科维茨投资组合优化。输入的数据是按照下列:(660 x500矩阵)
Asset1Asset2Asset3并编制…Asset500
1960年_01
1960年_02
2014年_12
条目每月返回特定的插槽。
现在我试着执行的计算使用投资组合的有效边界命令:首先我设置的大小切成间隔(之后将会在一个for循环,现在我想创建一个间隔的第一个60个月):
ret_temp = ret(一60:);%数据集的子集
现在,我计算的平均回报和var /浸矩阵每个资产的这部分:
mean_temp = nanmean (ret_temp);%返回一个向量的平均回报率每个资产cov_temp = nancov (ret_temp);% var / x和矩阵的样本
现在我可以执行一个投资组合优化基于这些输入:
p =投资组合;p = setAssetMoments (p mean_temp cov_temp);p = setDefaultConstraints (p);pwgt = estimateFrontier (p, 10);
现在,当运行代码时,出现以下错误:
错误使用代号(第18行)不能组资产回报的时刻。
:造成的错误使用投资组合/ parsearguments(第101行)无效AssetMean必须是一个标量或矢量。
然而,资产意味着显然是一个向量,我不能理解为什么这个错误出现. .
提前谢谢你!
克莱门斯

接受的答案

布伦丹汉姆
布伦丹汉姆 2015年7月8日
这个问题可能是因为所有NaN的存在在你的一个返回系列中,这导致了南甚至使用 nanmean
rng (“默认”)
X =兰德(5,3);%创建一个随机矩阵
:X(2) =南;%设置整个行南
X(:, 3) =南;%一整列设置为南
nanmean (X)
ans =
0.6219 - 0.6417南
请注意 nanmean 在一列将忽略NaN,但如果整个列是南你会有麻烦。为此您需要执行更多的数据清洗。

更多的答案(0)

类别

找到更多的在投资组合优化和资产配置帮助中心文件交换

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!