主要内容

选择和控制求解器进行均值变化投资组合优化

均值变化投资组合优化的默认求解器是lcprog,实现线性互补编程(LCP)算法。虽然lcprog解决大多数问题,您可以调整参数以控制算法。另外,均值变异投资组合优化工具可让您使用任何变体Quadprog来自“优化工具箱”软件。喜欢优化工具箱,它使用内点符号算法作为默认算法Quadprog,投资组合优化工具还使用内点符号算法为默认值。有关详细信息Quadprog以及二次编程算法和选项,请参阅二次编程算法

使用'lcprog''四元

修改lcprog或指定Quadprog作为求解器,使用setSolver设置隐藏属性的功能solverType求解指定和控制求解器。由于求解器属性是隐藏的,因此您无法使用文件夹目的。默认求解器是lcprog因此您不需要使用setSolver指定该求解器。使用Quadprog,您可以设置默认值内点符号算法Quadprog使用:

p = portfolio;p = setSolver(p,'四元);显示(P.SolverType)显示(P. Solveroptions)
QuadProg选项:当前算法使用的选项('Interior-point-convex'):(其他可用算法:'Active-set','Trust-Region-Refrocterive')设置属性:算法:'Interior Point-convex'display:'Off'OptimalityTolerance:1.0000E-12
您可以切换回lcprog和:
p = setSolver(p,'lcprog');显示(P.SolverType);显示(P.Solveroptions)
LCPROG MAXITER:[]抢七局:[] Tolpiv:5.0000E-08
在这两种情况下,setSolver设置与两个求解器关联的默认选项。如果要指定与给定求解器关联的其他选项,setSolver在函数调用中使用参数名称值对参数接受这些选项。例如,如果您打算使用Quadprog并想使用“信任区域反射”算法,致电setSolver和:
p = portfolio;p = setSolver(p,'四元,,,,'算法',,,,“信任区域反射”);显示(P.Solveroptions)
QuadProg选项:当前算法使用的选项('Trust-Region-Refrofection'):(其他可用算法:'Active-set','interior-opert-convex')设置属性属性:算法:'trust-regryprofection-Reflyctive'defaultproperties: Display: 'final' FunctionTolerance: 'default dependent on problem' HessianMultiplyFcn: [] MaxIterations: 'default dependent on problem' OptimalityTolerance: 'default dependent on problem' StepTolerance: 2.2204e-14 SubproblemAlgorithm: 'cg' TypicalX: 'ones(numberOfvariables,1)'

此外,如果要指定任何选项Quadprog通常通过最佳选择从优化工具箱,setSolver接受最佳选择对象作为第二个参数。例如,您可以从默认选项开始Quadprog通过设置setSolver然后将算法更改为“信任区域反射”没有显示输出:

p = portfolio;选项= optimoptions('四元,,,,'算法',,,,“信任区域反射”,,,,'展示',,,,'离开');p = setSolver(p,'四元, 选项);显示(P.Solveroptions.algorithm)显示(p.Solveroptions.display)
信任区域反射

使用混合整数非线性编程(MINLP)求解器

混合整数非线性编程(MINLP)求解器,使用setSolverMinlp,使您能够指定关联的求解器选项,以进行投资组合优化文件夹目的。当任何一个或任何组合的组合“有条件”边界,,,,Minnumassets, 或者maxnumassets约束是活动的。在这种情况下,投资组合问题是通过添加来提出的努力二进制变量,其中0表示未投资,并1投资。有关使用的更多信息“有条件”边界, 看setbounds。有关指定的更多信息Minnumassetsmaxnumassets, 看setminmaxnumassets

使用时估计功能文件夹在哪里“有条件”边界,,,,Minnumassets, 或者maxnumassets约束是有效的,混合整数非线性编程(MINLP)求解器自动使用。

投资组合对象的求解指南

下表提供了使用的指南setSolversetSolverMinlp

投资组合问题 投资组合功能 优化问题类型 主求解器 助手求解器
投资组合没有跟踪错误约束 估计frontierbyrisk 优化一定风险水平的投资组合会引入非线性约束。因此,此问题具有线性和非线性约束的线性目标。 'fmincon'使用setSolver

为了‘最低’:二次目标,'四元或者'lcprog'使用setSolver

为了'最大限度':线性目标,'linprog'或者'lcprog'使用setSolver

投资组合没有跟踪错误约束 估计逆转录病 线性约束的二次目标 '四元或者'lcprog'使用setSolver

为了‘最低’:二次目标,'四元或者'lcprog'使用setSolver

为了'最大限度':线性目标,'linprog'或者'lcprog'使用setSolver

投资组合没有跟踪错误约束 估算范围内的限制

具有线性约束的二次或线性目标

为了‘最低’:二次目标,'四元或者'lcprog'使用setSolver

为了'最大限度':线性目标,'linprog'或者'lcprog'使用setSolver

不适用
投资组合没有跟踪错误约束 估计emaxsharperatio 线性约束的二次目标 '四元使用setSolver

因为估计emaxsharperatio内部打电话估算范围内的限制,所有求解器都需要估算范围内的限制将是助手求解器

带有跟踪错误约束的投资组合 估计frontierbyrisk 线性和非线性约束的线性目标 'fmincon'使用setSolver 不适用
带有跟踪错误约束的投资组合 估计逆转录病 线性和非线性约束的线性目标 'fmincon'使用setSolver 不适用
带有跟踪错误约束的投资组合 估算范围内的限制 二次(最小风险问题)或线性(最大返回问题)目标,并具有线性和非线性约束 'fmincon'使用setSolver 不适用
带有跟踪错误约束的投资组合 估计emaxsharperatio 线性和非线性约束的二次目标 'fmincon'使用setSolver 不适用
投资组合带有活动“有条件”边界,,,,Minnumassets, 和maxnumassets 估计frontierbyrisk 该问题是通过介绍来提出的努力二进制变量指示是否投资相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的MINLP求解器,请参阅setSolverMinlp 混合整数非线性编程求解器(MINLP)使用setSolverMinlp '四元或者'fmincon'估计功能将问题减少到NLP中。这两个求解器可以通过setSolver
投资组合带有活动“有条件”边界,,,,Minnumassets, 和maxnumassets 估计逆转录病 该问题是通过介绍来提出的努力二进制变量指示是否投资相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的MINLP求解器,请参阅setSolverMinlp 混合整数非线性编程求解器(MINLP)使用setSolverMinlp '四元或者'fmincon'估计功能将问题减少到NLP中。这两个求解器可以通过setSolver
投资组合带有活动“有条件”边界,,,,Minnumassets, 和maxnumassets 估算范围内的限制 该问题是通过介绍来提出的努力二进制变量指示是否投资相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的MINLP求解器,请参阅setSolverMinlp 混合整数非线性编程求解器(MINLP)使用setSolverMinlp '四元或者'fmincon'估计功能将问题减少到NLP中。这两个求解器可以通过setSolver
投资组合带有活动“有条件”边界,,,,Minnumassets, 和maxnumassets 估计emaxsharperatio 该问题是通过介绍来提出的努力二进制变量指示是否投资相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的MINLP求解器,请参阅setSolverMinlp 混合整数非线性编程求解器(MINLP)使用setSolverMinlp '四元或者'fmincon'使用,当估计功能将问题减少到NLP中。这两个求解器可以通过setSolver

也可以看看

|||

相关示例

更多关于

外部网站