主要内容

CVAR POSTFOLIO优化结果故障排除

修改时,portfoliocvar对象会被销毁

如果一个portfoliocvar.修改时会被销毁对象,请记住将现有对象传递到portfoliocvar.对象如果要修改它,否则会创建一个新对象。看创建portfoliocvar对象有关详细信息。

矩阵不兼容和“不适合”错误

如果获得矩阵不兼容或“不可符合的”错误,则工具中的数据表示遵循描述的特定基本规则数据表示的惯例

Cvar Portfolio优化警告关于“最大迭代”

如果是'fileplane'求解器显示以下警告:

警告:达到最大迭代。考虑修改求解器选项,或使用fmincon。>在@portfoliocvar \ private \ cvar_cuttingplane_solver in @portfoliocvar \ private \ cvar_optim_min_risk in portfoliocvar的85中的\ cvar_optim_min_risk.timityFrontier在69
此警告表示一些报告的有效投资组合可能不够准确。

此警告通常与高效前端的左下端的投资组合有关。切割平面求解器可能已经非常接近溶液,但是可能存在太多具有非常相似的风险并且在该邻域中返回的投资组合,并且在达到所需的精度之前,解算器在迭代之外运行。

要纠正此问题,可以使用塞洛弗要制定任何这些变化:

  • 增加迭代的最大数量('maxiter')。

  • 放松停止公差('ABSTOL'和/或'Reltol')。

  • 使用不同的主求解器算法('mastersolveroptions')。

  • 或者,你可以尝试'粉丝'求解器。

当默认最大迭代次数'fileplane'达到求解器,求解器通常需要更多的迭代来达到默认停止公差所需的准确性。您可能希望将迭代的数量增加(例如,乘以5),以放松停止公差(例如,乘以10或100)。由于CVAR是一种随机优化问题,因此解决方案的精度是相对于场景样本,因此可以接受放松的停止耐受性。请记住,当您增加迭代次数时,解决方案时间可能会显着增加。例如,迭代的数量增加了加倍的解决方案时间。有时使用不同的主求解器(例如,切换到'内点'如果您使用的是默认值'simplex')可以得到'fileplane'求解器要在不改变最大迭代次数的情况下收敛。

或者,'粉丝'求解器可能比该求快'fileplane'求解器用于切割平面达到最大迭代次数的问题。

CVAR投资组合优化错误与“无法解决”消息

如果是'fileplane'索盘生成以下错误:

使用cvar_cuttingplane_solver(第251行)错误无法解决问题。考虑修改求解器选项,或使用fmincon。cvar_optim_by_return(行100)[x,〜,〜,ExitFlag] = cvar_cuttingplane_solver(... in portfoliocvar / estmityfrontier(line 80)pwgt = cvar_optim_by_return(obj,r(2:end -1),obj.numassets,......
此错误意味着主求解器无法解决主问题。错误可能是由于数值不稳定性或其他特定问题的情况。

要纠正此问题,可以使用塞洛弗要制定任何这些变化:

  • 修改主求解器选项('mastersolveroptions'例如)例如,更改算法('算法')或终止耐受性('tolfun')。

  • 或者,你可以尝试'粉丝'求解器。

缺少数据估计失败

如果资产返回数据丢失或价值观,simulatenormalscenariosbydata.用来的功能'缺失数据'标志设置为真的可能会失败,迭代太多或单数协方差。要纠正此问题,请考虑一下:

  • 如果您有资产返回数据,则没有缺失或值,您可以计算可能是奇异的协方差矩阵而不会困难。如果你缺少或数据中的值,支持的缺失数据功能要求您的协方差矩阵必万博1manbetx须是正定的,即非奇异。

  • simulatenormalscenariosbydata.使用可能不适合所有问题的缺失数据估计过程的默认设置。

在任何一种情况下,您都可能希望估计资产的时刻与ECM估计函数分开返回,例如Ecmnmle.或用自己的职能。

cvar_optim_transform.错误

如果您获得优化错误,例如:

使用CVAR_OPTIM_TRANSFORM(第276行)产品组合集出现错误似乎是空或无界的。检查约束。portfoliocvar / estmityFrontier中的错误(第64行)[AI,Bi,AE,LB,UB,F0,F,X0] = CVAR_OPTIM_TRANSFORM(OBJ);
或者
使用CVAR_OPTIM_TRANSFORM(第281行)错误无法获得指定的投资组合集的有限下限。portfoliocvar / estmityFrontier中的错误(第64行)[AI,Bi,AE,LB,UB,F0,F,X0] = CVAR_OPTIM_TRANSFORM(OBJ);
由于投资组合优化工具需要有界组合集,因此如果您的投资组合集要么空,则可能会出现这些错误(和类似的错误),如果是空的,并且如果是非空的,则无法绑定。具体而言,产品组合优化算法要求您的投资组合集至少具有有限的下限。处理这些问题的最佳方法是使用验证功能验证CVAR组合问题。具体地,使用estismsbounds.检查您的投资组合集,并使用检查可行性为了确保您的初始投资组合是可行的,如果不可行,则您可以从您的初始投资组合到投资组合集获得足够的营业额。

小费

要纠正此问题,请尝试解决您的问题,以便更大的营业额的值逐渐减少到所需的值。

有效的投资组合没有意义

如果获得高效的投资组合,似乎没有意义,如果您忘记设置特定约束或设置不正确的约束,则会发生这种情况。例如,如果您允许投资组合权重差0.1并没有设置预算约束,您可以获得100%投入每个资产的投资组合。虽然可能很难检测到,但最好的事情是审查您使用显示器设置的约束portfoliocvar.目的。如果您在每个资产中投入100%的投资组合,您可以查看对象的显示,并快速查看未设置预算约束。此外,您可以使用estismsbounds.检查可行性要确定投资组合集的界限是否有意义,并确定您所获得的投资组合是否可行,相对于您的投资组合集的独立配方是可行的。

也可以看看

||

相关例子

更多关于

外部网站