主要内容

使用投资组合对象返回资产返回和返回的时刻

由于均值-方差投资组合优化问题需要估计资产收益的均值和协方差,因此文件夹对象有几种方法可以设置和获取属性assetmean.(为平均值)和Assetcovar.(对于协方差)。此外,无风险资产的返回保存在财产中风险这样所有资产assetmean.Assetcovar.是有风险的资产。有关使用时工作流程的信息文件夹对象,参见投资组合对象工作流程

使用POSTFOLIO函数分配

假设您在变量中有一个均值和资产的协方差mC。使用的资产返回时刻的属性文件夹目的:

m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; p = Portfolio('assetmean',m,'Assetcovar', C);DISP(P.NUMASSET)DISP(P.ASSETMEAN)DISP(P.ASSETCOVAR)
4 0.0042 0.0083 0.0100 0.0150 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.001 0.0028 0 0.0010 0.0028 0.0102
请注意,POSTFOLIO对象确定资产的数量numassets.从时刻。这文件夹对象可以单独初始化时刻初始化:
m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; p = Portfolio; p = Portfolio(p,'assetmean',m);p = portfolio(p,'Assetcovar', C);[assetmean,assetcovar] = p.getassetmoments
Assetmean = 0.0042 0.0083 0.0100 0.0150 Assetcovar = 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.000 0.0028 0 0.0010 0.0028 0.0102
getAssetmoments.功能允许您获得值assetmean.Assetcovar.属性同时。

分配使用setAssetMoments.功能

您还可以使用该资产时刻属性setAssetMoments.功能。例如,鉴于资产的均值和协方差在变量中返回mC,可以设置资产时刻属性:

m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; p = Portfolio; p = setAssetMoments(p, m, C); [assetmean, assetcovar] = getAssetMoments(p)
Assetmean = 0.0042 0.0083 0.0100 0.0150 Assetcovar = 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.000 0.0028 0 0.0010 0.0028 0.0102

标量扩展参数

这俩文件夹对象和setAssetMoments.函数对资产返回的时刻执行标量对参数进行标量扩展。使用时文件夹对象,必须在变量中指定资产的数量numassets.。如果numassets.尚未设置,标​​量参数被解释为标量numassets.设置1setAssetMoments.提供了一个其他可选参数,以指定资产的数量,以便标量扩展与正确数量的资产一起工作。另外,如果为资产返回的协方差输入标量或向量,则形成对角线矩阵,使得沿着对角线扩展标量并且向量变为对角线。此示例演示了四个共同独立资产的标量扩展,具有常见的平均值0.1和常见的方差0.03

p =投资组合;p = setAssetMoments(p, 0.1, 0.03, 4);[assetmean,assetcovar] = getAssetmoments(p)
Assetmean = 0.1000 0.1000 0.1000 0.1000 Assetcovar = 0.0300 0 0 0 0 0.0 0.0.0300 0 0 0 0 0.0300
如果至少有一个参数被正确维度,则您无需包含额外的numassets.争论。该示例说明了恒定对角线的协方差矩阵和四个资产的资产返回的均值:
p =投资组合;p =塞萨诸塞突(P,[0.05; 0.06; 0.04; 0.03],0.03);[assetmean,assetcovar] = getAssetmoments(p)
Assetmean = 0.0500 0.0400 0.0400 0.0300 Assetcovar = 0.0300 0 0 0 0 0.0 0.0.0.0300 0 0 0 0 0.0300
此外,标量扩展与之合作文件夹对象if.numassets.已知或从输入推导出来。

从价格或回报估算资产时刻

另一种设置资产返回时刻的方法是使用estimateAssetMoments接受价格或返回的功能并估计资产回报的平均值和协方差。价格或返回无论是矩阵都存储为带有样品的矩阵和跨越列的资产。此外,可以存储价格或返回桌子或者时间表(看估算时间序列数据的资产时刻)。要使用estimateAssetMoments,生成120个资产观察的随机样本,从变量中的资产返回的均值和协方差有四个资产的返回mCPortsim.。默认行为Portsim.创建模拟数据,估计与输入时刻相同的均值和协方差mC。除了创建的回报系列Portsim.在变量中X,在变量中创建了价格系列y

m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; X = portsim(m', C, 120); Y = ret2tick(X);

笔记

投资组合优化要求您使用总回报,而不仅仅是价格退货。因此,“退货”应该是总回报和“价格”应归还价格。

给定的资产退货和变量价格Xy从上面来看,这一序列示出了等同的方式来估计资产时刻文件夹目的。一种文件夹对象是创建的P.随着资产的时刻直接设置文件夹对象,和一秒钟文件夹对象是创建的问:从资产返回数据获得资产的均值和协方差X使用estimateAssetMoments

m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; X = portsim(m', C, 120); p = Portfolio('意思是',m,'COVAR', C);Q =投资组合;q =估计仪诱导(q,x);[传递映射,passetcovar] = getAssetmoments(p)[qassetmean,qassetcovar] = getAssetmoments(q)
搬运工= 0.0042 0.0083 0.0100 0.0150乘机= 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.001010 0.0002 0.0017 0.0048 0.0102 0.0010 0.0028 0.0102 QASSETMEAN = 0.0022 0.0083 0.000 0.0005 0.0003 0.0017 0.0000 0.0002 0.0017 0.001 0.000 0.0000 0.001 0.001 0.0102
请注意,任何方法如何具有相同的时刻。默认行为estimateAssetMoments是与资产回报合作。相反,如果,您的变量中的资产价格yestimateAssetMoments接受名称值对参数名称'datomformat'具有相应的值设置为'价格'表示函数的输入是资产价格的形式,而不是返回(默认值)'datomformat'参数是'返回')。此示例比较了矩的直接分配文件夹目的P.估计资产价格数据的估计时刻y在里面文件夹目的问:
m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; X = portsim(m', C, 120); Y = ret2tick(X); p = Portfolio('意思是',m,'COVAR',C);Q =投资组合;Q =估计仪灌注(Q,Y,'datomformat''价格');[传递映射,passetcovar] = getAssetmoments(p)[qassetmean,qassetcovar] = getAssetmoments(q)
搬运工= 0.0042 0.0083 0.0100 0.0150乘机= 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.001010 0.0002 0.0017 0.0048 0.0102 0.0010 0.0028 0.0102 QASSETMEAN = 0.0022 0.0083 0.000 0.0005 0.0003 0.0017 0.0000 0.0002 0.0017 0.001 0.000 0.0000 0.001 0.001 0.0102

利用缺失数据估计资产时刻

经常使用多种资产时,您缺少缺少的数据您的退货或价格数据中的值。虽然多变量正常回归与缺失数据的回归详细说明,estimateAssetMoments函数具有名称值对参数名称'缺失数据'这表示布尔值是否使用Financial Toolbox™软件的缺失数据功能。默认值'缺失数据'错误的其中删除所有样本价值观。但是,如果'缺失数据'被设定为真的estimateAssetMoments使用ECM算法估计资产时刻。此示例说明了如何在缺失值的价格数据上工作:

m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; X = portsim(m', C, 120); Y = ret2tick(X); Y(1:20,1) = NaN; Y(1:12,4) = NaN; p = Portfolio('意思是',m,'COVAR',C);Q =投资组合;Q =估计仪灌注(Q,Y,'datomformat''价格');r = portfolio;r = emaltiaeasetmoments(r,y,'datomformat''价格''缺失数据', 真的);[传递映射,passetcovar] = getAssetmoments(p)[qassetmean,qassetcovar] = getAssetmoments(q)[Rassetmean,Rassetcovar] = getAssetmoments(r)
搬运工= 0.0042 0.0083 0.0100 0.0150乘机= 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.00110 0.0002 0.0017 0.0028 0.0102 QASSETMEAN = 0.0045 0.0082 0.0101 0.0091 QASSETCOVAR = 0.0006 0.0003 0.0001 -017 0.0011 0.0001 0.0011 0.00110.01 0.0011 0.0029 0.0112RASSETMEAN = 0.0045 0.0083 0.0100 0.0113 RASSETCAR = 0.0008 0.0005 0.0001 -0.0001 0.0005 0.0032 0.002 0.0015 0.0001 0.002 0.0063 0.0040 -0.0001 0.0015 0.0040 0.0144
文件夹目的P.包含原始时刻,对象问:包含估计的时刻丢弃值和对象R.包含适应缺失值的原始矩。每次运行此示例时,您将获得不同的估计值问:R.,这些也与时刻不同P.

估算时间序列数据的资产时刻

estimateAssetMoments函数还接受存储在a中的资产回报或价格桌子或者时间表estimateAssetMoments使用相同的规则隐式地利用表或时间表对象中的数据或数据的矩阵工作,以便数据是返回或价格。

为了说明使用表和时间表,使用Array2table.Array2Timetable.创建一个桌子A.时间表包含使用的资产返回Portsim.(看从价格或回报估算资产时刻)。然后使用。创建两个portfolio对象assetreturn.基于表和时间表对象。

m = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];m = m / 12;C = C / 12; assetRetnScenarios = portsim(m', C, 120); dates = datetime(datenum(2001,1:120,31),'vectormfrom''数据内容');assetsname = {'债券''Largecap'''smallcap''新兴'};AssetretNTimetable = Array2Timetable(AssetretNscenarios,'rowtimes',日期,'variablenames',assetsname);assetretntable = array2table(Assetretnscenarios,'variablenames',assetsname);%创建两个投资组合对象:带有预先定义的平均值和covar的% p:带有资产收益情景的q,以估计平均值和covar。p = portfolio('意思是',m,'COVAR', C);Q =投资组合;%估计资产时刻及时间表q =估计仪诱导(q,assetretntimetable);[传递映射,passetcovar] = getAssetmoments(p)[qassetmean,qassetcovar] = getAssetmoments(q)%估计和表格的资产时刻q =估计仪诱导(q,assetretntable);[传递映射,passetcovar] = getAssetmoments(p)[qassetmean,qassetcovar] = getAssetmoments(q)
搬运工= 0.0042 0.0083 0.0100 0.0150 Passetcovar = 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.0048 0.0102 0.0010 0.0028 0.0102 QASSETMEAN = 0.0042 0.0083 0.0100 0.0005 0.0003 0.00100 0.0000 0.0003 0.0017 0.0017 0.001 0.000 0.0017 0.001 0.0028 0.0017 0.001 0.0028 0.0017搬运工= 0.0042 0.0083 0.0100 0.0150 Passetcovar = 0.0005 0.0003 0.0002 0 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.0048 0.0102 0.0010 0.0028 0.0102 QASSETMEAN = 0.0042 0.0083 0.0100 0.0005 0.0003 0.00100 0.0000 0.0003 0.0017 0.0017 0.001 0.000 0.0017 0.001 0.0028 0.0017 0.001 0.0028 0.0017
正如您所看到的,那么两个投资组合之间的时刻匹配。此外,estimateAssetMoments还从a中提取资产名称或标识符桌子或者时间表当参数名称时'getassetlist'设置真的(它的默认值是错误的)。如果是'getassetlist'价值是真的,标识符用于设置assetlist.物品的财产。要展示这一点,形成了文件夹目的问:与前面的例子重复'getassetlist'标志设置为真的从表或时间表对象中提取列标签:
Q =估计仪塞马莫族(q,assetretntable,'getassetlist',真的);disp(q.assetlist)
'债券''largecap''smallcap''新兴'
说明如果您设置了'getassetlist'标志设置为真的您的输入数据处于矩阵中,estimateAssetMoments使用默认标签方案SetAssetList.描述设置资产标识符列表

也可以看看

||||

相关例子

更多关于

外部网站