主要内容

周转率约束下的投资组合分析

这个例子展示了如何分析股票投资组合的特征,然后将其与有效边界进行比较。这个例子试图回答这样一个问题:为了避免交易成本,只冒投资组合中一定比例的风险,你能离有效边界多近?

为投资组合控股导入数据

将当前投资组合的信息从Microsoft®Excel®电子表格加载到使用MATLAB®的表格中readtable函数。

AssetHoldingData = readtable (“portfolio.xls”);%创建一个标准化的当前持有向量,以显示各自的投资占总资本的百分比:W = AssetHoldingData.Value /笔(AssetHoldingData.Value);

为股票价格导入市场数据

从Datafeed Toolbox™支持的数据源导入市场数据,该数据源包含投资组合中金宝app列出的股票的三年收盘价。

负载SharePrices

创建一个投资组合对象

投资组合类允许您使用导入的数据来创建投资组合对象。的estimateAssetMoments函数投资组合对象使您能够设置一个只给出历史价格或回报序列的投资组合。的estimateAssetMoments函数从数据中估计资产回报的均值和协方差,即使有缺失的数据。

P =组合(“名字”“样本周转率约束组合”);P = estimateAssetMoments (P、数据“DataFormat”“价格”);您可以为投资组合中的每个资产分配文本名称。P = setAssetList (P, AssetHoldingData.Symbol);%提供当前持有的股份。P = setInitPort (P、W);

在没有周转率约束的情况下进行投资组合优化

投资组合对象可以在给定任意数量的约束条件下优化持股。这个示例演示了使用一个简单的默认约束,即只做多并100%投资于资产。

P = setDefaultConstraints (P);

想象一下这个有效的边界plotFrontier函数。

plotFrontier (P)

可视化交易成本和周转

由于交易成本,将持有的资产从当前的投资组合转移到沿着这条有效边界的投资组合可能是昂贵的。下面的自定义图显示,你必须交出50%到75%的财产才能到达这个边界。

TurnoverPlot (P)

在周转率约束下进行投资组合优化

如果只交易投资组合的一部分,你能多接近这个有效边界?假设你只想交易投资组合中的一定比例,以避免你持有的资产出现过多的周转。这个要求在问题上施加了一些非线性约束,并给出了一个具有多个局部极小值的问题。即便如此,投资组合对象解决了这个问题,您可以使用setTurnover函数。

P10 = setTurnover (P 0.10);plotFrontier (P10)

可视化不同离职门槛下的有效边界

这个有效边界比没有周转率约束的初始有效边界更接近初始投资组合。要可视化这种差异,请使用自定义函数TurnoverConstraintPlot可视化多个受约束的有效边界在不同的周转阈值。

失误= 0.05:0.05:0.25;TurnoverConstraintPlot (P,失误)

投资组合Object是执行各种投资组合分析任务的强大而有效的工具。除了周转率的限制,您还可以优化一个投资组合对象为买卖组合资产的交易成本setcost函数。

另请参阅

|||||||||

相关的例子

更多关于

外部网站