有时,您可能需要验证或者您的输入,或从一个投资组合优化问题的输出。虽然这在问题设置阶段发生最错误检查捕获最困难的投资组合优化问题,流程来验证组合集和组合耗时,且是做得最好下线。因此,投资组合优化工具有专门的功能来验证组合集和组合。有关工作流程信息时使用投资组合
对象,见投资组合对象的工作流程。
由于它是必要的和足够的投资组合集必须是一个非空的,封闭的,和有界集有一个有效的投资组合优化问题,estimateBounds
功能可以让你检查你的投资组合集,以确定它是否非空,如果非空,无论是有界的。假设你有下面的组合集是空集,因为在最初的投资组合0
太远从产品组合,满足预算和营业额的限制:
P =组合('NumAssets',3,'预算',1);P = setTurnover(P,0.3%,0);
如果一个投资组合集合是空的,estimateBounds
回报为NaN
边界和套isbounded
标志[]
:
[磅,UB,isbounded] = estimateBounds(p)的
LB = NaN的楠楠UB = NaN的楠楠isbounded = []
假设你创建一个无界的投资组合设置方法如下:
P =组合('AInequality',[1 -1;1 1],'bInequality',0);[磅,UB,isbounded] = estimateBounds(p)的
LB = -Inf -Inf UB = 1.0E-08 * -0.3712 Inf文件isbounded =逻辑0
estimateBounds
返回(可能是无限的)边界和套isbounded
标志假
。结果显示,其资产是无界的,这样就可以申请绑定的限制是必要的。
最后,假设您创建了一个投资组合一套既非空的,有限的。estimateBounds
不仅验证集,但也得到更严密的界限,如果你是关心的在你的投资组合组单独的资产组合选择的实际范围哪些是有用的:
P =组合;P = setBudget(P,1,1);P =的setBounds(ρ,-0.1; 0.2; 0.3; 0.2],[0.5; 0.3; 0.9; 0.8]);[磅,UB,isbounded] = estimateBounds(p)的
LB = -0.1000 0.2000 0.3000 0.2000 UB = 0.3000 0.3000 0.7000 0.6000 isbounded =逻辑1
在这个例子中,所有,但第二资产具有更严格的上限比上限输入暗示。
鉴于在规定的资产组合集投资组合
对象时,你经常要检查是否存在特定的投资组合相对于投资组合一套切实可行。这可以用发生的,例如,初始组合和与来自其它方法得到的投资组合。该checkFeasibility
函数确定组合的集合是否是可行的。假设您进行如下优化组合,并希望以确定是否得到有效的投资组合,以修改问题的可行相对。
首先,建立在一个问题投资组合
宾语p
,估计有效组合pwgt
,并确认这些组合是相对于最初的问题是可行的:
M = [0.05;0.1;0.12;0.18];C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];P =组合;P = setAssetMoments(P,M,C); p = setDefaultConstraints(p); pwgt = estimateFrontier(p); checkFeasibility(p, pwgt)
ANS = 1 1 1 1 1 1 1 1 1 1
接着,设置了不同的组合问题,与用另外的营业额约束和相等地加权初始组合最初的问题开始:
Q = setTurnover(P,0.3%,0.25);checkFeasibility(Q,pwgt)
ANS = 0 0 0 1 1 0 0 0 0 0
q
。通过解决第二个问题checkFeasibility
证明了有效的投资组合投资组合
宾语q
是相对于最初的问题是可行的:
qwgt = estimateFrontier(Q);checkFeasibility(P,qwgt)
ANS = 1 1 1 1 1 1 1 1 1 1
投资组合
|checkFeasibility
|estimateBounds