主要内容

setScenarios

通过直接矩阵设置资产收益场景

使用一个弗林特对象的AssetScenarios的观点setScenarios不建议使用。使用时间表而是金融时间序列。有关更多信息,请参见将财务时间序列对象转换为时间表

描述

例子

obj= setScenarios (objAssetScenarios通过直接矩阵设置资产回报场景PortfolioCVaRPortfolioMAD对象。关于工作流程的详细介绍,请参见对象工作流,PortfolioMAD对象工作流

例子

obj= setScenarios (objAssetScenarios名称,值通过直接矩阵设置资产收益场景PortfolioCVaRPortfolioMAD对象,使用由一个或多个对象指定的附加选项名称,值对参数。

例子

全部折叠

给定一个PortfolioCVaR对象p,使用setScenarios函数设置资产返回场景。

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; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); disp(p)
带属性的PortfolioCVaR: BuyCost: [] SellCost: [] RiskFreeRate: [] ProbabilityLevel: 0.9500 Turnover: [] BuyTurnover: [] SellTurnover: [] NumScenarios: 20000 Name: [] NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [] 4x1 double] UpperBound: [] LowerGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType:[4 x1分类)

给定PortfolioMAD对象p,使用setScenarios函数设置资产返回场景。

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; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); disp(p)
带属性的PortfolioMAD: BuyCost: [] SellCost: [] RiskFreeRate: [] Turnover: [] BuyTurnover: [] SellTurnover: [] NumScenarios: 20000 Name: [] NumAssets: 4 AssetList: [] InitPort: [] AInequality: [] bInequality: [] AEquality: [] bEquality: [] LowerBound: [] 4x1 double] UpperBound: [] LowerBudget: 1 UpperBudget: 1 GroupMatrix: [] LowerGroup: [] UpperGroup: [] UpperGroup: [] GroupA: [] GroupB: [] LowerRatio: [] UpperRatio: [] MinNumAssets: [] MaxNumAssets: [] BoundType: [4x1 categorical]

为了说明如何使用setScenarios函数与AssetScenarios数据在时间表对象时,使用CAPMuniverse.mat其中包含时间表对象(AssetTimeTable)返回数据。

负载CAPMuniverse;AssetsTimeTable.Properties;头(AssetsTimeTable, 5)
ans =5×14时间表时间apple amazon cisco戴尔EBAY google hp IBM intel microsoft ORCL yahoo市场现金  ___________ _________ _________ _________ _________ _________ ____ _________ _________ _________ _________ _________ _________ _________ __________ 03 - 1月- 2000年南0.03244 0.075368 0.05698 0.088805 0.1742 0.008775 -0.002353 0.12829 -0.001627 0.054078 0.097784 -0.012143 0.00020522 04 -简- 2000南-0.075613 -0.033966 -0.046667 -0.084331 -0.08324 -0.05608 -0.08353 -0.093805 -0.033802 -0.0883 -0.067368 -0.03166 0.0002033905-Jan-2000 0.014634 -0.14877 -0.003039 0.070984 0.066875 NaN -0.006356 0.03516 -0.073363 0.011443 0.00020376 06-Jan-2000 -0.086538 -0.060072 -0.016619 -0.038847 -0.012302 NaN -0.063688 -0.017241 -0.05824 -0.033477 -0.058824 -0.10307 0.011743 0.00020266 07-Jan-2000 0.047368 0.061013 0.0587 -0.037708 -0.000964 NaN -0.004386 0.04127 0.013091 0.076771 0.10609 0.02393 0.00020157

setScenarios接受名称-值对参数名“DataFormat”将对应的值设置为“价格”表示函数的输入是资产价格的形式,而不是收益(函数的默认值)“DataFormat”参数是“返回”).

r = PortfolioCVaR;r = setscenes (r,AssetsTimeTable,“dataformat”“返回”);

此外,setScenarios当参数为name-value时,函数还从时间表对象中提取资产名称或标识符“GetAssetList”设置为真正的(默认值为).如果“GetAssetList”值是真正的时,时间表列标识符用于设置AssetListportfolio var对象的属性。为了显示这一点,PortfolioCVaR对象的形成r重复使用“GetAssetList”标志设置为真正的

r = setscenes (r,AssetsTimeTable,“GetAssetList”,真正的);disp (r.AssetList”)
{“apple”}{amazon的}{cisco的}{“戴尔”}{“易趣”}{“google”}{“hp”}{“IBM”}{intel的}{“微软”}{‘ORCL}{“yahoo”}{‘市场’}{“现金”}

输入参数

全部折叠

对象的组合,使用PortfolioCVaRPortfolioMAD对象。

有关创建对象的详细信息PortfolioCVaRPortfolioMAD对象,看到

数据类型:对象

以矩阵形式表示的资产回报或价格的情景,表格,或时间表其中包含可转换为资产回报的资产数据([NumSamples——- - - - - -NumAssets]矩阵)。

AssetReturns数据可以是:

  • NumSamples——- - - - - -NumAssets矩阵。

  • NumSamples的组合的基础单期投资期限的给定周期的价格或回报NumAssets资产

  • 使用NumSamples观察和NumAssets时间序列

方法将输入数据转换为返回值DataFormat名称-值对参数,其中默认格式假定为“返回”.使用价格数据时要小心,因为投资组合优化通常需要总回报,而不仅仅是价格回报。

这个函数设置一个函数句柄来间接访问输入AssetScenarios而不需要复制数据。

数据类型:|表格|时间表

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:p = setscenes (p, assetscenes,'DataFormat','Returns','GetAssetList',false);

标志,将作为价格的输入数据转换为返回值,由逗号分隔的对组成“DataFormat”和一个字符向量的值:

  • “返回”-资料AssetReturns包含资产总收益。

  • “价格”-资料AssetReturns包含资产总回报价格。

数据类型:字符

标志,指示用于资产列表的资产名称,指定为逗号分隔的对,由“GetAssetList”和值为的逻辑真正的.的可接受值GetAssetList是:

  • —不允许提取和创建资产名称。

  • 真正的-从表格或时间表中提取或创建资产名称。

如果一个表格时间表传递给这个函数为AssetScenariosGetAssetList国旗是真正的的列名表格时间表中作为资产名使用obj。AssetList

如果传递一个矩阵GetAssetList国旗是真正的属性创建的默认资产名称AbstractPortfolio财产defaultforAssetList,目前“资产”

如果GetAssetList国旗是时,没有动作发生,这是默认行为。

数据类型:逻辑

输出参数

全部折叠

更新的投资组合对象,返回为PortfolioCVaRPortfolioMAD对象。有关创建投资组合对象的更多信息,请参见

提示

您还可以使用点表示法来设置资产返回场景。

obj = obj. setscenes (assetscenes);

在R2012b中引入