由于均值-方差投资组合优化问题需要估计资产收益的均值和协方差,因此文件夹
对象有几种方法可以设置和获取属性assetmean.
(为平均值)和Assetcovar.
(对于协方差)。此外,无风险资产的返回保存在财产中风险
这样所有资产assetmean.
和Assetcovar.
是有风险的资产。有关使用时工作流程的信息文件夹
对象,参见投资组合对象工作流程。
假设您在变量中有一个均值和资产的协方差m
和C
。使用的资产返回时刻的属性文件夹
目的:
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
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.
功能。例如,鉴于资产的均值和协方差在变量中返回m
和C
,可以设置资产时刻属性:
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.
设置1
。setAssetMoments.
提供了一个其他可选参数,以指定资产的数量,以便标量扩展与正确数量的资产一起工作。另外,如果为资产返回的协方差输入标量或向量,则形成对角线矩阵,使得沿着对角线扩展标量并且向量变为对角线。此示例演示了四个共同独立资产的标量扩展,具有常见的平均值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个资产观察的随机样本,从变量中的资产返回的均值和协方差有四个资产的返回m
和C
和Portsim.
。默认行为Portsim.
创建模拟数据,估计与输入时刻相同的均值和协方差m
和C
。除了创建的回报系列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);
笔记
投资组合优化要求您使用总回报,而不仅仅是价格退货。因此,“退货”应该是总回报和“价格”应归还价格。
给定的资产退货和变量价格X
和y
从上面来看,这一序列示出了等同的方式来估计资产时刻文件夹
目的。一种文件夹
对象是创建的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
是与资产回报合作。相反,如果,您的变量中的资产价格y
那estimateAssetMoments
接受名称值对参数名称'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.
描述设置资产标识符列表。
estimateAssetMoments
|getAssetmoments.
|文件夹
|setAssetMoments.
|setcosts.