查看原文
其他

【HMM研究实例】运用HMM模型的择时策略

2016-05-20 西西 量化投资与机器学习

查看之前文章请点击右上角,关注并且查看历史消息,还可以在文章最后评论留言。谢谢您的支持!

下面拿A股市场来做检验。

模型的设定如下:

  1. 隐藏状态数目:6

  2. 输入变量:当日对数收益率,五日对数收益率,当日对数高低价差(其他备选因素成交量、成交额等大家可以自行尝试)

  3. 混合高斯分布成分数目:1(为了简便,假定对数收益率服从单一高斯分布)

HMM模型的算法使用hmmlearn模块。简单介绍一下函数的各个参数意思。

以上。我们看到了六个状态的HMM模型输出的市场状态序列。需要注意的是:HMM模型只是能分离出不同的状态,具体对每个状态赋予现实的市场意义,是需要人为来辨别和观察的。

下面我们来用简单的timming策略来识别6种latent_state所带来的效果。



上图可以看出:

  1. 状态0——蓝色——牛市上涨

  2. 状态1——绿色——牛市下跌

  3. 状态2——红色——牛市下跌

  4. 状态3——紫色——小幅的上涨

  5. 状态4——黄色——震荡下跌

  6. 状态5——浅蓝色——震荡下跌

以上的意义归结是存在一定主观性的。因为HMM模型对输入的多维度观测变量进行处理后,只负责分出几个类别,而并不会定义出每种类别的实际含义。所以我们从图形中做出上述的判断。

四、择时策略

我们根据模拟出来的隐藏状态,来进行择时。

1. 理论版:股指期货可卖空。

策略是这样设计的:

  1. 当天处在状态0,3时,买入指数基金;

  2. 当天处在状态1,2,4,5时,卖空股指期货;

我们来看一下收益效果:

2. A股版

鉴于卖空指数对散户来说没什么可操作性,我们单看能做多的A股市场。选择嘉实沪深300基金来复制沪深300指数。

策略是这样设计的:

  1. 当天处在状态0,3时,买入指数基金;

  2. 当天处在状态1,2,4,5时,空仓;

鉴于研究模块自己搭伪回测算出来的收益曲线很难考虑到滑点、交易规则限制等各方面的要求,所以如下的策略回测只贴上最后的图。代码具体见策略。

我采取的方式是把研究模块得出的状态序列导出,导入到回测模块使用。

回测结果截图贴在这。回撤和收益都看起来很漂亮。虽然我也没太懂为什么跟可卖空的结果差不多= =,可能是单纯算收益率的伪回测不太准吧。第二是状态1(绿色)有涨有跌,卖空它也有亏钱的时候。


【过往文章】

0.【重!磅!干!货!】互联网金融之量化投资深度文本挖掘——附源码文档

1.【机器学习课程】深度学习与神经网络系列之绪论介绍

2.【Python机器学习】系列之线性回归篇【深度详细】

3.多因子策略系列(一)——因子回溯测试的总体框架

4.Python机器学习:数据拟合与广义线性回归

5.【分级基金】之分级A的隐含收益率研究分析

6.【精华干货】Quant 需要哪些 Python 知识

7.【干货】量化投资国内外很棒的论坛网站

8.朴素贝叶斯模型(NBM)详解与在Matlab和Python里的具体应用

9.机器学习的前期入门汇总

10.【深度原创研究】分级基金下折全攻略(一)

11.【深度原创研究】分级基金下折全攻略(二)

12.【知识食粮】最新华尔街牛人必读书籍排行

13.通过 MATLAB 处理大数据

14.【扎实资料干货分享】Python、研究报告、计量经济学、投资书籍、R语言等!(Book+Video)

15.机器学习在统计套利中的应用

16.量化投资修行之路

17.统计套利在股指期货跨期套利中的应用:基于协整方法的估计

18.股指期货跨品种套利交易

19.沪港通股票统计套利:基于BP神经网络

20.机器学习到底在量化金融里哪些方面有应用?

21.【Matlab机器学习】之图像识别

22.【干货分享】Python数据结构与算法设计总结篇

23.基于Python的股票数据接口调用代码实例

24.基于Python爬取腾讯网的最热评论代码实例

25.卷积神经网络反向传播推导

26.深度学习项目


量化投资与机器学习

知识、能力、深度、专业

勤奋、天赋、耐得住寂寞


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存