深入研究多因子投资,为量化交易“赋能”
交易者在运用
T10
软件中的因子选股模型筛选出符合投资需求的个股名单后,如何把投资资金很好的分配到这些股票上,成为了接下来的一大难题。据我们观察,目前市面上的软件,对于想使用组合优化功能的交易者虽然提供了函数模型,但门槛非常高,既需要交易者有扎实的理论基础,同时又要兼备写代码和算式公式的能力,才真正能够使用该功能。所以怎样才能把这样一个有含金量的功能用相对简单、友好的方式呈现出来,降低使用者的门槛成为了我们研究的主要目标,就这样我们开启了组合赋权优化功能的研究之路。
因为组合赋权优化是量化投资的关键环节,注定了它的研究过程是个较为庞大而复杂的工程。为此,我们翻阅了非常多的书籍、各大证券公司发布的研报以及学术论文,充分汲取各方观点,来为我们的想法提供逻辑和理论上的支持。因为分配比例从理论上来说有无数种可能,所以如何组合、有没有最优比例等问题都等待着我们去探究,从而寻求一个最适合投资者的路径。在这个研究的过程中,最主要也是最困难的部分就是对于优化模型的选择。优化模型是靠目标函数和约束条件这两个方面决定的,不同的目标函数和不同的约束条件组合,会对应不同的优化模型的类型,所以我们研究的工作主要集中在了目标函数和约束条件上。
目标函数有很多不同的形式,需要考虑的因素众多,要兼顾策略的前后逻辑和实用性。首先,要跟我们之前设计的多因子充分结合,与之逻辑相通,才能保证前后的一致性;其次,要把准确性和效率相结合,计算用时决定了结果的精度,用时长最终结果的精度就高,精度高意味着准确性高,但是计算效率会影响交易者得到结果的等待时间,效率高等待时间短,而准确性又受到效率的影响,计算时间短会导致结果的准确性下降,所以它的难点在于要在等待时间和准确性二者之间取一个平衡;另外,我们还会跟开发的同事进行沟通交流,了解资源分配情况,以免因为运算量大造成运行速度慢的影响,最终确定要使用的目标函数。
目标函数选定之后,接下来就是约束条件的设置了,这一过程需要考虑的非常充分和全面,要尽量覆盖到交易者投资过程的各个方面,因此我们搜集了各量化基金构建组合时的约束变量,还会经常开分享会和讨论会来交换彼此的想法和见解,会中大家各抒己见,畅所欲言,实现思想上充分自由的碰撞。除了思考全面外,约束条件的设置还需兼顾交易者的实用性,如果光有理论支持,在实际使用过程中效果甚微,也不会纳入我们的选择范围。经过综合考量,最终我们确定使用个股权重、行业中性、风格中性、基准成分股权重这几个约束条件,后续,我们可能还会根据用户的使用反馈来丰富和增加条件。
模型确定好后,就要确认具体的实施路径了,即算法的选择。对于算法的选择也同样要满足上述要求,没有想象中那么容易,过程也不会一帆风顺。就比如我们在研究换手率这个约束条件的时候,就遇到了一些困难:一般的优化模型都是线性规划,而它是锥规划,所以涉及到的数学模型是比较复杂的,不知道其中函数的参数该如何去使用,所以就翻阅了官网的讲解和案例,虽然是纯英文的,但也一点点学习了下来;但是在应用后发现,它的运算时间长,对于我们的目标用户群体来说也不会起到很大的作用,所以最后果断舍弃了。算法确定后,研究的过程也就几乎接近了尾声,接下来就是测试的环节,我们会用
Python
编写模型来测试算法是否达到了我们的设计目标。如果达到了预期,就会上线供交易者们使用了。
最终,一个界面式操作的组合赋权优化功能就诞生了,它大大降低了使用者的专业性门槛,让交易者即使不懂复杂的编程和高深的数理统计知识,也可以轻松使用组合优化策略,为交易者提供了极大的便利。