均值变化投资组合优化的默认求解器是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)求解器,使用setSolverMinlp
,使您能够指定关联的求解器选项,以进行投资组合优化文件夹
目的。当任何一个或任何组合的组合“有条件”
边界
,,,,Minnumassets
, 或者maxnumassets
约束是活动的。在这种情况下,投资组合问题是通过添加来提出的努力
二进制变量,其中0
表示未投资,并1
投资。有关使用的更多信息“有条件”
边界
, 看setbounds
。有关指定的更多信息Minnumassets
和maxnumassets
, 看setminmaxnumassets
。
使用时估计
功能文件夹
在哪里“有条件”
边界
,,,,Minnumassets
, 或者maxnumassets
约束是有效的,混合整数非线性编程(MINLP)求解器自动使用。
下表提供了使用的指南setSolver
和setSolverMinlp
。
投资组合问题 | 投资组合功能 | 优化问题类型 | 主求解器 | 助手求解器 |
---|---|---|---|---|
投资组合没有跟踪错误约束 | 估计frontierbyrisk |
优化一定风险水平的投资组合会引入非线性约束。因此,此问题具有线性和非线性约束的线性目标。 | 'fmincon' 使用setSolver |
为了 为了 |
投资组合没有跟踪错误约束 | 估计逆转录病 |
线性约束的二次目标 | '四元 或者'lcprog' 使用setSolver |
为了 为了 |
投资组合没有跟踪错误约束 | 估算范围内的限制 |
具有线性约束的二次或线性目标 |
为了 为了 |
不适用 |
投资组合没有跟踪错误约束 | 估计emaxsharperatio |
线性约束的二次目标 | '四元 使用setSolver |
因为 |
带有跟踪错误约束的投资组合 | 估计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 |