主要内容

验证CVAR组合问题

有时,您可能希望验证您的输入或输出,或从投资组合优化问题验证。虽然在问题设置阶段期间发生的大多数错误检查都会捕获具有投资组合优化问题的大多数困难,但验证CVAR投资组合集和投资组合的流程是耗时的,并且最好脱机。因此,产品组合优化工具具有验证CVAR产品组合集和投资组合的专业功能。有关使用时工作流程的信息portfoliocvar.对象,参见portfoliocvar对象工作流程

验证CVAR POSTFOLIO集

由于您的CVAR投资组合集必须是非空的,关闭和有界集合的必要和足够的,因此有一个有效的投资组合优化问题,因此estismsbounds.功能允许您检查投资组合集,以确定它是否是非空的,如果是不是空的,是否被界限。假设您有以下CVAR投资组合集,这是一个空的集,因为初始投资组合0.与满足预算和营业额约束的投资组合太远:

p = portfoliocvar('numasset',3,'预算',1);P = Setturnover(P,0.3,0);

如果CVAR投资组合集是空的,estismsbounds.回报界限并设置isbound.旗帜到[]

[LB,UB,Isbound] =估算次数(P)
LB = Nan NaN NaN UB = NaN NaN NaN isBound = []

假设您创建了一个无限的CVAR产品组合,如下所示:

p = portfoliocvar('粉碎',[1-1;1 1],'Binequality',0);[LB,UB,Isbound] =估算次数(P)
LB = -INF -INF UB = 1.0E-008 * -0.3712 INF isBound = 0
在这种情况下,estismsbounds.返回(可能是无限的)界限并设置isbound.旗帜到错误的。结果表明,哪些资产无限地,以便根据需要使用绑定约束。

最后,假设您创建了一个非空和界限的Cvar Portfolio集。estismsbounds.不仅验证集合,还可以获得更紧密的界限,如果您关注投资组合中的各个资产的实际投资组合选择范围:

p = portfoliocvar;p = setBudget(p,1,1);p = setBounds(p,[-0.1; 0.2; 0.3; 0.2],[0.5; 0.3; 0.9; 0.8]);[LB,UB,Isbound] =估算次数(P)
LB = -0.1000 0.2000 0.3000 0.2000 UB = 0.3000 0.3000 0.7000 0.6000 ISBOUNDED = 1

在此示例中,除了输入上限之外,所有除了第二资产都具有更严格的上限。

验证CVAR POSTFOLIO.

鉴于A中指定的CVAR产品组合集portfoliocvar.对象,您经常想检查特定的投资组合是否可行于投资组合集。这可以在例如初始投资组合中以及从其他程序获得的投资组合来发生。这检查可行性函数确定投资组合的集合是否可行。假设您执行以下投资组合优化,并希望确定所产生的高效投资组合是否可行相对于修改问题是可行的。

首先,在这个问题中设置一个问题portfoliocvar.目的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];m = m / 12;C = C / 12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); pwgt = estimateFrontier(p); checkFeasibility(p, pwgt)
ANS = 1 1 1 1 1 1 1 1 1 1

接下来,设置不同的组合问题,该问题从初始问题开始,额外的营收条约和同样加权的初始产品组合:

q =塞子(P,0.3,0.25);CheckFeasily(Q,PWGT)
ANS = 0 0 0 1 1 0 0 0 0 0
在这种情况下,来自初始问题的10个有效投资组合中的两个相对于新问题是可行的portfoliocvar.目的问:。解决第二个问题检查可行性展示了有效的投资组合portfoliocvar.目的问:相对于初始问题是可行的:

qwgt = estmatefrontier(q);CheckFeasibility(p,qwgt)
ANS = 1 1 1 1 1 1 1 1 1 1

也可以看看

||

相关例子

更多关于

外部网站