组合优化中考虑 alpha 估计的不确定性

作者: , 共 1194 字

最近看了几个风险管理和组合管理系统,有几个系统里附带了组合优化模块,也了解到这一方面工业界的最新成果。最新的组合优化模块被称为第二代最优化模型,主要成果就是二阶锥优化算法的应用,其中一个重要的改进为对 alpha 估计的不准确性考虑在内。

标准的均值-方差的组合优化目标一般都是这样子的:

$$\max _w(\alpha w - \cdots)$$

这一类型的优化最重要的一点是需要投资者事先估计每个证券在未来的 alpha ,但这往往是最困难的,即使投资者对这些证券的未来走势有些看法,但也无法量化成确定的数值。直接用投资者指定的 alpha 进行优化的结果,可能会给那些具有较大预期 alpha 的证券以过高的权重。比如有两只相关度较高的证券,投资者对第一只证券比第二只要稍微乐观些,如果用上面的目标去优化这两个证券,最优方案会几乎全部买入第一只证券,但实际操作中投资者并不会这么做,因为他没法断定第一只证券表现一定要更好些,为了防止判断失误,他多少会在两只证券上分散化,不会集中买入一只股票。

注:这里也说明一点,投资者进行分散化投资的原因并不完全基于股票风险(传统意义上的波动性)的分散化,部分也是对其判断没有把握 造成的,而后者并没有体现在标准的均值-方差优化模型中。

有一些方法可以部分解决这些问题,比如设置每只证券的最高持有比例,将具有高 alpha 的证券的 alpha 适当下调,但这并没有解决根本性的问题。一个更好的方法是直接将 alpha 的不确定性引入到优化模型里。

假设投资者预估的 alpha 为\( \alpha'\) ,实际 alpha 符合分布\( N(\alpha', \Omega)\) ,那么可以定义一个置信空间

$$T=\{\alpha:(\alpha-\alpha')^T\Omega(\alpha-\alpha')\leq k^2\}$$

当投资者对于\( \alpha'\) 的估计很有把握的时候使用较小的\( k\) ,否则适当扩大上面的置信空间。接下来有几种处理方法,其中之一为考虑置信空间里最差的\( \alpha\) ,也就是可以优化:

$$\max_w(\min_{\alpha \in T}(\alpha w) - \cdots)$$

注意到置信空间是凸区域,该置信空间的引入不会影响原优化问题的可解性。Matlab 的优化工具箱和 YALMIP 工具包

当然传说中的第二代优化器能做的事情远远不止上面所说的这个应用,目前的组合优化软件比如axiomasungard APT之类的,可以设置各种各样的限制条件和目标函数,只怕你想不到。更多可参考一本牛逼书:

[download name="The next generation of optimization applications and theory.pdf"]

Q. E. D.

类似文章:
标准的期望-方差组合优化目标中有一个参数\( \lambda\)
继续写 Mathematical techniques in finance 这本书的笔记,这是第二篇,第一篇是One-Period 模型和无套利定价
移动平均\( \text{ema}(x,n)\) 是指按照如下方法计算指标
编程 » Matlab, 优化
最近做了些东西,用到了 Matlab 的优化工具箱, optimization toolbox。因为以前没用过这东西,今天把这个工具箱的帮助文档基本上翻了一遍。
本文将证明:最佳约会策略里提到策略,忽略前 37%的对象,然后在剩下的对象里挑第一个比前 37%都好的对象,这个策略是最优的。更准确地,我们将证明:任何约会策略的成功概率都不可能超过\( \frac{u}{n}\sum_{i=u}^{n-1}\frac1i\) ,其中\( u\) 为满足\( \sum_{i=u}^{n-1}\frac1i\geq 1\) 的最大值。这个\( u\) 大约为 37%,最后成功的概率大约为 40%。
相似度: 0.082
CAPM 公式是指一个组合的预期收益率可以用它的不可分散风险大小所刻画,在数学上,它可以表示为一个组合\( p\) 的收益率\( r_p\) 的表达式:
最近做一些优化问题,找到了 YALMIP 工具包。在其帮助文件里看到如何使用该工具包求解 sudoku,整个思路是将问题转化为整数规划问题。这样的思路以前也想到过,但总觉得整数规划问题的求解会更复杂。但是下面的 Matlab 代码,显示它可以非常简洁,思路见程序的注释(程序运行需要安装 YALMIP 工具包):
[Mathematics-techniques-in-finance]
没有人敢说 Matlab 的帮助文件不够详细和全面,但 Matlab 里面的确存在一些功能和函数,你很难找到它的帮助文档。下面列举一些,以后碰到其它的也会放到这里来:
在 MIT BBS 上看到一个有趣的题目