Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

portopt

约束有效边界上的投资组合

portopt 已被部分删除,并且将不再接受 ConSetvarargin 参量。当要处理的投资组合问题不止于纯多头且满仓的投资组合时,请改为使用 Portfolio 进行求解。有关使用 Portfolio 对象时的工作流的信息,请参阅 Portfolio 对象工作流。有关将 portopt 代码迁移到 Portfolio 的详细信息,请参阅 portopt Migration to Portfolio Object

说明

[PortRisk,PortReturn,PortWts] = portopt(ExpReturn,ExpCovariance) 设置最基本的投资组合问题,即权重大于或等于 0,且权重之和必须为 1。要求解此问题,只需要资产收益的均值和协方差。默认情况下,portopt 返回有效边界上 10 个等间距的点。

对于无额外约束的纯多头满仓投资者,portopt 对“标准”均值-方差投资组合优化问题进行求解。具体而言,有效边界上的每个投资组合都具有总和为 1 的非负权重。

注意

投资组合优化的另一种选择是,将 Portfolio 对象用于均值-方差投资组合优化。此对象支持投资组合总收益或净收益数据(作为收益代理)、投资组合收益的方差数据(作为风险代理),以及由指定约束的任意组合构成的投资组合集。有关使用 Portfolio 对象时的工作流的信息,请参阅 Portfolio 对象工作流

示例

[PortRisk,PortReturn,PortWts] = portopt(___,NumPorts,PortReturn) 支持上述语法中的输入参量,且可使用一个或多个可选参量指定选项。

示例

如果在没有输出参量的情况下调用 portopt,则 portopt(___,NumPorts,PortReturn) 返回一个有效边界图。

示例

示例

全部折叠

使用 portopt 将有效边界上 20 个收益率等间距分布的投资组合连接起来。默认情况下,会在不做空头的投资组合中进行选择,并将投资组合的值缩放为 1。

ExpReturn = [0.1 0.2 0.15];

ExpCovariance = [0.005   -0.010    0.004
                -0.010    0.040   -0.002
                 0.004   -0.002    0.023];

NumPorts = 20;
portopt(ExpReturn, ExpCovariance, NumPorts)

输入参数

全部折叠

每项资产的预期(均值)收益,指定为 1×资产数量 (NASSETS) 向量。

数据类型: double

资产收益的协方差,指定为 NASSETS×NASSETS 矩阵。

数据类型: double

(可选)沿有效边界生成的投资组合数目,指定为标量数值。收益在最大可能收益与最小风险点之间等间距分布。如果 NumPorts 为空(以 [] 形式输入),则 portopt 计算 10 个等间距的点。如果您指定 1portopt 则返回最小风险投资组合。

注意

如果未被 PortReturn 覆盖,则这些投资组合在有效边界上从最小收益到最大收益等间距分布。如果 NumPorts = 1,则计算最小风险投资组合(正整数)。

数据类型: double

(可选)要在有效边界上计算的目标投资组合收益,指定为投资组合的数量(NPORTS×1 向量)。如果未输入或为空,则使用最小到最大可能值之间 NumPorts 个等间距分布的收益。

注意

portopt 规定,如果您设置 PortReturn,则 NumPorts 应为空。如果您使用非空向量指定 PortReturn,则 PortReturn 会覆盖 NumPorts。如果 PortReturn 中的任何收益在有效边界上的收益范围之外,portopt 会生成警告,并计算最接近有效边界端点的有效投资组合。

数据类型: double

输出参量

全部折叠

每个投资组合的标准差,以 NPORTS×1 向量形式返回。

PortWts 是分配给每项资产的权重的 NPORTS×NASSETS 矩阵。每一行表示一个投资组合。一个投资组合中所有权重之和为 1。

每个投资组合的预期收益,以 NPORTS×1 向量形式返回。

分配给每项资产的权重,以 NPORTS×NASSETS 矩阵形式返回。每一行表示一个投资组合。一个投资组合中所有权重之和为 1。

版本历史记录

在 R2006a 之前推出