西蒙斯的赚钱秘籍:隐马尔科夫模型(HMM)的择时应用.docVIP

西蒙斯的赚钱秘籍:隐马尔科夫模型(HMM)的择时应用.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . 西蒙斯的赚钱秘籍:隐马尔科夫模型(HMM)的择时应用 之前做过相关方面的研究,针对的是国外的期货市场。也有朋友建议说拿A股来试试看。所以有了下面的这篇东西。扯上西蒙斯前辈,是因为确实不少猜测认为文艺复兴用的就是HMM模型。 一、从大奖章讲起 Renaissance Medallion(文艺复兴科技和大奖章)量化圈都非常熟悉了。Simons一群物理学家和数学家碰撞在一起,1989年到2008年的yearly return达到35.6%。文艺复兴大概一百多个员工,AUM:50亿美金,在全球金融危机的08年,大部分对冲基金都亏损,而大奖章的return高达80%。 神秘的文艺复兴科技和神秘的大奖章基金,到底一群数学家和物理学家聚在一起搞出了什么赚钱利器?外界猜测众说纷纭。而隐马尔科夫模型也由于一些原因被推举出来。 成立初期的创始人中,有一位科学家发明了广泛应用在语音识别等领域的鲍姆-威尔士算法,用来确定不可确知的变量可能出现的概率。今天要介绍的HMM模型,也是在语音识别中运用非常成功的模型,最早是由鲍姆等人提出的。 之前拜读人大的一位教授14年写的一本书,解密复兴科技:基于隐蔽马尔科夫模型的时序分析方法,书中介绍了为什么觉得HMM是Renaissance使用的模型,并且含有详细的公式推导和运算,以及附上了一些些实证结果(个人认为还有很多有待补充和粗糙的地方)。感兴趣推荐研读。 二、认识模型 HMM模型,又叫隐马尔科夫模型。要正确的理解和搞懂模型,教材里有很多经典的例子。我从自己理解后的角度尽量浅显的给大家做一个解释,方便大家快速理清概念投入应用。 我们能观测到的序列(Y1,...,Yn)称为可观测序列,如股价,成交量,资金净额等等。 而每一个可观测值的产生对应着市场状态序列(Z1,...,Zn),每个状态通过不同的分布函数来产生观测值。 通过HMM模型,可以用简单的输入,来得出对目前市场状态的判断,从而帮助我们进行择时选择。因为市场状态不是显性可观测的,属于隐藏状态,我们通过对可观测变量的处理来进行推测。 这里对HMM模型进行了扩展得到HMS-GMD模型,因为收益率序列尖峰厚尾的特性导致的非正态分布,引入了混合高斯分布作为状态到观测值之间产生关系的分布函数。 将HMM模型看作一个黑箱子,这个黑箱子可以利用极其方便、简洁的数据,处理后得出: 1. 每个时刻对应的状态序列; 2. 混合分布的均值和方差矩阵; 3. 混合分布的权重矩阵; 4. 状态间转移概率矩阵。 而黑箱子需要事先给定两个参数:状态数目、混合高斯分布的成分数目。 当然,输入这里是拿单一的价格序列举例。输入也可以是并行的数据矩阵,比如从价格、成交量、资金净额等多个角度来看。 总结一下,使用模型需要在初期设定: 1. 隐藏状态数目 2. 输入的观测变量 3. 混合高斯分布成分数目 三、A股市场实证 下面拿A股市场来做检验。 模型的设定如下: 1. 隐藏状态数目:6 2. 输入变量:当日对数收益率,五日对数收益率,当日对数高低价差(其他备选因素成交量、成交额等大家可以自行尝试) 3. 混合高斯分布成分数目:1(为了简便,假定对数收益率服从单一高斯分布) In [1]: from hmmlearn.hmm import GaussianHMM import datetime import numpy as np import pandas as pd import seaborn as sns from matplotlib import cm from matplotlib import pyplot startdate = 2012-06-01 enddate = 2016-04-07 df = get_price([000300.XSHG], start_date=startdate, end_date=enddate, frequency=daily, fields=[close,volume,high,low]) close = df[close][000300.XSHG] high = df[high][000300.XSHG][5:] low = df[low][000300.XSHG][5:] volume = df[volume][000300.XSHG][5:] money = df[volume][000300.XSHG][5:] datelist = pd.to_datetime(close.index[5:]) logreturn = (np.log(np.array(close[1:]))-np.log(np.array(close[:-1])))[4:] logreturn5 = np.log(np.array(close[5:]))-n

文档评论(0)

hmwn621 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档