在我们完成对单个证券和交易策略表现的评估,且确定表现最佳的策略之后,我们就可以利用这些最佳策略来构建投资组合。这个步骤称为资产配置,主要涉及确定投资组合中各种策略的相对权重。
最简单的投资组合优化办法是等权重地配置各个最佳交易策略。等权重的方法虽然能分散整个投资组合的风险,但效果可能比不上进行完全投资组合优化的分散效果。然而,随着投资组合中证券数量的增加,确定每个证券的最优权重会变得越来越难,并且越来越费时—对于高频交易而言。这确实是一项挑战。
为了简化和加速计算最优投资组合权重的过程,人们提出了好几种相关算法。优化算法可以分为如下三类:
1.根据Markowit:方法,可以直接得到一个联立方程组算法。可是,如果投资组合中的策略超过10个,这种优化方法的效果就开始大打折扣;当投资组合涉及20个或者更多的资产时,此算法可能会给出极其错误的预测结果。之所以会这样,是因为我们在计算平均收益和方差时本身就存在估计误差。但是,即使不算上这些问题,此算法的计算时间也会随着交易策略个数的增长而呈指数式增长,这也使得这种方法很难适用于多种资产的高频交易。
2.非线性规划是商业软件中经常使用的一种优化算法。在给定一些特定参数(比如投资组合配置权重)的情况下,非线性规划算法采用一些技术来最大化或者最小化投资组合优化的目标函数。其中,一些技术采用了梯度法,梯度法计算目标函数在给定点的斜率,并选择上升最快或下降最快的路径以通近目标函数的最大值或最小值。非线性规划算法对于收益率均值和方差的估计误差同样很敏感。在大多数情况下,这种算法的计算复杂度也太高,因此在高频交易环境下并不切实可行。最近,Steuer, Qi和Hirschberger (2006)给出了一个非线性优化方法的例子。
3.Markowitz (1959)为了方便计算自己提出的投资组合理论,开发了一种临界线(critica inc)优化算法。这种算法运算较快并且实现起来相对简单。不过,临界线算法给出的不是投资组合中每种证券的配置权重,而是有效边界上投资组合的集合,这个缺点使得很多商业公司无法采用此方法。近来Markowit:和Todd (2000)提供的一个算法部分地解决了这个问题。根据Niedermayer (2007)的研究,在同时考虑至少2000种资产的情况下, Markowit:和Todd (2000)的算法比Steuer, Qi和Hirachherger (2006)设计的算法要快1010000倍。