如何在matlab中允许卖空(滚动有效边界)?

时间:2017-12-24 13:56:41

标签: matlab finance portfolio

我有一个183x12,其中第一列代表月度日期,其他11列是资产。

我尝试使用Matlab文档中的滚动高效前沿函数:

https://nl.mathworks.com/help/finance/frontier.html

使用以下代码行:

[PortWts,AllMean,AllCovariance] = frontier(Universe,Window,Offset,NumPorts,ActiveMap)

其中:

Window = 12
Offset = 12
NumPorts = 11
ActiveMap = 183x11 matrix of ones

但是,我想将Conset添加到允许卖空的代码行中,因为默认情况下不允许卖空。

我的问题是,我该如何添加?

https://nl.mathworks.com/help/finance/portcons.html

1 个答案:

答案 0 :(得分:0)

约束非常容易实现,只需按以下方式调用portcons function

ConSet = portcons('PortValue',1,11,'AssetLims',-1,AssetMax,11);

其中AssetMax是标量或定义资产权重上边界的向量。从官方文档:

  

<强> AssetLims

     

每项资产的最低和最高分配。

     

AssetMin(必需)长度为NASSETS的标量或向量,指定   每项资产的最低配额。

     

AssetMax(必需)长度为NASSETS的标量或向量,指定   每个资产的最大分配。

     

NumAssets(可选)请参阅pcalims