用于均值 - 方差组合优化的默认解算器是lcprog
,实现线性互补规划(LCP)算法。虽然lcprog
适用于大多数问题,你可以调整参数来控制算法。或者,均值-方差组合优化工具允许您使用任何变量Quadprog.
从优化工具箱™软件。喜欢使用的优化工具箱内部点凸
算法作为默认算法Quadprog.
,投资组合优化工具也使用内部点凸
默认为算法。对象的细节Quadprog.
还有二次规划算法和选项二次编程算法。
'lcprog'
和'quadprog'
要么修改lcprog
或指定Quadprog.
作为你的解决方案,使用塞洛弗
函数设置隐藏属性索尔弗蒂
和solverOptions
指定和控制求解器。由于隐藏了求解器属性,因此无法使用这些文件夹
对象。默认解算器为lcprog
所以你不需要使用塞洛弗
指定此解算器。使用Quadprog.
,可以设置默认值内部点凸
算法的Quadprog.
使用:
p =投资组合;p = setSolver (p,'quadprog');显示(p.solvertype)显示(p.solveroptions)
QuadProg选项:当前算法使用的选项('Interion-point-convex'):(其他可用算法:'主动集','信任区域反光')设置属性:算法:'内部点凸'显示:'关闭'最优性特:1.0000E-12默认属性:约束特许:1.0000E-08 Linearsolver:'Auto'最大值:200个台步:1.0000E-12
lcprog
:p = setSolver (p,'lcprog');显示(p.solverType);显示器(p.solverOptions)
lcprog maxiter:[] titebreak:[] tolpiv:5.0000e-08
塞洛弗
设置与求解器关联的默认选项。如果要指定与给定求解器关联的其他选项,塞洛弗
在函数调用中通过参数名-值对参数接受这些选项。例如,如果您打算使用Quadprog.
想要使用'信任区域反光'
算法,称之为塞洛弗
:p =投资组合;p = setSolver (p,'quadprog','算法','信任区域反光');显示器(p.solverOptions)
算法:'trust-region- reflection '默认属性:Display: 'final'功能的容错:' Default依赖于问题'StepTolerance: 2.2204e-14 subproblemalgalgorithm: 'cg' TypicalX: 'ones(numberOfVariables,1)'
此外,如果要指定任何选项Quadprog.
通常都是通过的optimoptions
从优化工具箱,塞洛弗
接受一个optimoptions
对象作为第二个参数。例如,可以从默认选项开始Quadprog.
设定的塞洛弗
然后把算法改为'信任区域反光'
没有显示输出:
p =投资组合;选择= optimoptions ('quadprog','算法','信任区域反光','展示','离开');p = setSolver (p,'quadprog', 选项);显示(p.solveroptions.algorithm)显示(p.solveroptions.display)
trust-region-reflective掉
混合整数非线性编程(MINLP)求解器,配置使用setSolverMINLP
,使您能够为投资组合优化指定相关的求解器选项文件夹
对象。当任何一个或任何组合时使用minlp求解器“条件”
边界
,MinNumAssets
,或MaxNumAssets
约束是活跃的。在这种情况下,投资组合问题是通过添加来表述的NumAssets
二进制变量,0
表示未投资,和1
投资。有关使用的更多信息“条件”
边界
,请参阅setBounds
。有关指定的更多信息MinNumAssets
和MaxNumAssets
,请参阅setminmaxnumassets.
。
当使用估计
功能与A.文件夹
对象“条件”
边界
,MinNumAssets
,或MaxNumAssets
约束是活动的,混合整数非线性编程(MINLP)解器自动使用。
下表提供了使用指南塞洛弗
和setSolverMINLP
。
投资组合问题 | 投资组合功能 | 优化问题的类型 | 主要解决 | 帮助解决者 |
---|---|---|---|---|
没有跟踪误差约束的组合 | estismsFrontierByRisk. |
在一定风险水平下优化投资组合会引入非线性约束。因此,该问题具有线性和非线性约束的线性目标。 | '粉丝' 使用塞洛弗 |
为 为 |
没有跟踪误差约束的组合 | estimateFrontierByReturn |
线性约束的二次目标 | 'quadprog' 或者'lcprog' 使用塞洛弗 |
为 为 |
没有跟踪误差约束的组合 | estismsfrontierlimits. |
带有线性约束的二次或线性目标 |
为 为 |
不适用 |
没有跟踪误差约束的组合 | estimateMaxSharpeRatio |
线性约束的二次目标 | 'quadprog' 使用塞洛弗 |
因为 |
带有跟踪误差约束的投资组合 | estismsFrontierByRisk. |
线性目标线性和非线性约束 | '粉丝' 使用塞洛弗 |
不适用 |
带有跟踪误差约束的投资组合 | estimateFrontierByReturn |
线性目标线性和非线性约束 | '粉丝' 使用塞洛弗 |
不适用 |
带有跟踪误差约束的投资组合 | estismsfrontierlimits. |
具有线性和非线性约束的二次(最小风险问题)或线性(最大返回问题)目标 | '粉丝' 使用塞洛弗 |
不适用 |
带有跟踪误差约束的投资组合 | estimateMaxSharpeRatio |
具有线性和非线性约束的二次目标 | '粉丝' 使用塞洛弗 |
不适用 |
投资组合与活跃“条件” 边界 ,MinNumAssets , 和MaxNumAssets |
estismsFrontierByRisk. |
这个问题是通过引入来表述的NumAssets 二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 。 |
混合整数非线性规划求解器(MINLP)setSolverMINLP |
'quadprog' 或者'粉丝' 时使用估计 函数将问题减少到NLP中。这两个求解器可以通过塞洛弗 。 |
投资组合与活跃“条件” 边界 ,MinNumAssets , 和MaxNumAssets |
estimateFrontierByReturn |
这个问题是通过引入来表述的NumAssets 二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 。 |
混合整数非线性规划求解器(MINLP)setSolverMINLP |
'quadprog' 或者'粉丝' 时使用估计 函数将问题减少到NLP中。这两个求解器可以通过塞洛弗 |
投资组合与活跃“条件” 边界 ,MinNumAssets , 和MaxNumAssets |
estismsfrontierlimits. |
这个问题是通过引入来表述的NumAssets 二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 。 |
混合整数非线性规划求解器(MINLP)setSolverMINLP |
'quadprog' 或者'粉丝' 时使用估计 函数将问题减少到NLP中。这两个求解器可以通过塞洛弗 |
投资组合与活跃“条件” 边界 ,MinNumAssets , 和MaxNumAssets |
estimateMaxSharpeRatio |
这个问题是通过引入来表述的NumAssets 二进制变量指示是否投入了相应的资产。因此,它需要混合整数非线性编程求解器。提供了三种类型的Minlp溶剂,参见setSolverMINLP 。 |
混合整数非线性规划求解器(MINLP)setSolverMINLP |
'quadprog' 或者'粉丝' 使用,当时估计 函数将问题减少到NLP中。这两个求解器可以通过塞洛弗 |
estimatePortMoments
|estibalportreturn.
|plotFrontier
|文件夹