原文链接:基于隐马尔可夫模型的市场择时策略
一、引言
1988年,著名的数学家西蒙斯成立了大奖章基金,该基金采用纯粹的技术量化方法进行投资。成立以来到2008年,大奖章基金的平均年度净回报是35.6%。并且,在期间的几次有名的股灾中均表现优异。2000年科技股灾,标普500下跌10.1%,大奖章净回报98.5%;2008年,全球金融危机,,各类资产价格下滑,大奖章净回报80%。这些收益均为剔除了管理费以及收益提出的净回报。大奖章基金各类费用非常高,每年固定管理费2%,外加20%收益提出,2002年剔除比例提高到36%,2008年提高到44%。这些优异的收益数据令众多投资者对其神秘的投资方法感到好奇。
1988年3月,复兴技术成立初期有三位著名的科学家对公司的长期发展产生重要影响,鲍姆就是其中之一。统计学中著名的鲍姆-威尔士算法就是以他的名字命名,该算法是确定某种不可确知的变量出现的概率,被广泛应用于语音识别等领域。同时,鲍姆也是率先提出隐马尔科夫模型(Hidden Markov Model,HMM)的科学家之一,该方法在语音识别中得到非常成功的应用。在金融领域中,HMM可以被用来推测目前的市场状态(market state or regime)究竟是趋势还是震荡,究竟是高波动还是低波动。1993年加盟复兴技术的剑桥大学数学博士尼可·帕特森就是全球HMM领域公认的专家。复兴技术使用HMM模型的可能性非常大。
在之前的检索过程中发现,国内关于HMM在股票市场的研究文献并不多。广发证券在2010年发表过题为「探寻西蒙斯投资之道:基于 HMM 模型的周择时策略研究」,获得70周67.84%的期末收益率,同期沪深300指数的收益率为-33.3%。当然,能检索到的英文文献还是很多的。
HMM为什么能应用于股票市场中?我们首先需要知道HMM是什么,HMM与马尔科夫模型相比,不同的地方在于隐藏变量。我们知道,马尔科夫链是具有有限记忆属性的模型,比如知道昨天下雨,那么今天天晴的下雨的概率就很大(状态转移概率)。但有时候我们并不知道当时那个地方的天气如何,却有可能了解到那一天雨伞的销售量出现了提高,这样我们就可以通过观察雨伞的销售量来预测天气状态。在这种情况中,雨伞的销售量就是一个观察变量,而天气是一个隐(latent)变量,即隐藏状态。
在股票市场中,也能遇到相似的情况。我们无法准确知道当前时刻的市场状态,而市场状态决定了择时策略。但我们可以通过一系列的观察变量来进行猜测,比如通过股票收益率、成交量、主力资金流向、融资余额增长量等观测数据对市场状态(即隐藏状态)进行猜测,并得到第二天的市场状态预测。这样一个基于HMM的量化模型的雏形就出来了。
二、模型设置我对中国的A股市场做了测试,测试时间从2010年4月1日至2016年3月17日(包含牛熊市场),模型设置如下:
- 隐藏状态数(hidden state):6;
- 特征向量:一日对数收益差、五日对数收益差、当日对数高低价差、当日成交量、对数融资余额差,总计5个;
- 假设所有的特征向量的状态服从高斯分布(强假设,便于求解。点击参看原文代码)
三、实验结果
最后得到的结果如下图所示,不同的状态用不同的颜色来表示,
可以看到,不同的市场情况确实通过HMM被学习出来。比如,深蓝色的状态0表示熊市中的下跌阶段,浅蓝色的状态5表示熊市中的反弹阶段等等。
下面画出对不同状态进行timing的策略,结果如下,
需要说明的是,原文中对操作做了延时一日的处理,即当天得到某状态后,第二天才能进行操作。可以看到,状态1和状态5是一个明显的上升阶段,可以分别对应于牛市的泡沫期和熊市的反弹期;而状态0是明显的熊市下跌期,状态4是泡沫破裂阶段,状态3更像是某种上升状态后的调整,而状态2就比较subtle,也就是不久前的市场状态 ,也许可以借鉴一下2010年年末的那段时期。
接着实现下简单的策略
考虑到股指期货可以做空,原文中设计了这样一个策略:当处于状态1和5时第二天做多,当处于状态0、3、4时第二天做空(不管状态2 ),其收益曲线如下
从图中可以看到,从2010年至2016年的约6年间,可以获得约10倍的收益。
但是要注意,尽管对做多和做空操作做了延时处理,但事实上该结果是in-sample的。真实操作时,并没有未来信息来训练模型(也可见广发的研报似乎是有瑕疵)。各位朋友有好的想法也欢迎到社区关注原作者交流探讨。