R语言隐马尔可夫模型(HMM)识别不断变化的股市状况股票指数预测实战|附代码数据

发布时间 2023-07-21 12:23:54作者: 拓端tecdat

全文下载链接: http://tecdat.cn/?p=1557

最近我们被客户要求撰写关于隐马尔可夫模型(HMM)的研究报告,包括一些图形和统计输出。

“了解不同的股市状况,改变交易策略,对股市收益有很大的影响。弄清楚何时开始或何时止损,调整风险和资金管理技巧,都取决于股市的当前状况 ( 点击文末“阅读原文”获取完整代码数据******** ) 。

有些策略在波澜不惊的股市中表现良好,而有些策略可能适合强劲增长或长期下跌的情况。

在本文中,我们将通过使用一类强大的机器学习算法“隐马尔科夫模型”(HMM)来探索如何识别不同的股市状况。

▍隐马尔科夫模型

 

马尔科夫模型是一个概率过程,查看当前状态来预测下一个状态。一个简单的例子就是看天气。

假设我们有三种天气情况:下雨、多云、阳光明媚。如果今天下雨,马尔科夫模型就会寻找每种不同天气的概率。例如,明天可能会持续下雨的可能性较高,变得多云的可能性略低,而会变得晴朗的几率很小。

 

▍构建模型

 

基于以上背景, 然后我们可以用来找到不同的股市状况优化我们的交易策略。我们使用2004年至今的上证指数(000001.ss)来构建模型。

首先,我们得到上证指数的收盘价数据,计算得到收益率数据,并建立HMM模型比较模型的预测结果。

图片

 

绘制上证指数的收盘价和收益率数据,我们看到2004年和2017年期间股市的波动情况。


点击标题查阅往期内容

图片

R语言用隐马尔可夫模型HMM进行股票预测

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

图片

对收益率拟合了三状态隐马尔可夫模型之后, 绘制每个状态的后验概率:

2007 – 2009年间,由于次贷危机,股市出现了惊人的波动,迅速改变了不同状态的后验概率,可以看到2008年前后状态2和状态3的概率出现了很大的变化。

股市在2010年后变得平静,因此状态2和状态3的概率处于平衡状态。

图片

基于以上判断,我们将三种不同的状态进行定义。状态1认为是震荡市场,状态2认为是下跌市场,状态3认为是上涨市场。然后将不同状态的预测结果返回到真实的上证指数来观察是否符合客观逻辑。

图片

通过真实数据拟合,我们看到状态1(紫色)震荡市场,状态2(绿色)下跌市场,状态3(红色)上涨市场符合实际的情况。

通过隐马尔科夫模型,可以深入了解不断变化的股市状况。从而提高交易策略的性能。就从我们的简单探索来看,这个模型应当是值得花一些时间去打磨的。可改进的地方非常多。例如可以引入多因子分析,建立多元模型等。

图片

本文摘选 《 用机器学习识别不断变化的股市状况—隐马尔可夫模型(HMM)股票指数预测实战 》 ,点击“阅读原文”获取全文完整资料。

图片

图片

点击标题查阅往期内容

马尔可夫Markov区制转移模型分析基金利率
马尔可夫区制转移模型Markov regime switching
时变马尔可夫区制转换MRS自回归模型分析经济时间序列
马尔可夫转换模型研究交通伤亡人数事故时间序列预测
如何实现马尔可夫链蒙特卡罗MCMC模型、Metropolis算法?
Matlab用BUGS马尔可夫区制转换Markov switching随机波动率模型、序列蒙特卡罗SMC、M H采样分析时间序列
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
matlab用马尔可夫链蒙特卡罗 (MCMC) 的Logistic逻辑回归模型分析汽车实验数据
stata马尔可夫Markov区制转移模型分析基金利率
PYTHON用时变马尔可夫区制转换(MRS)自回归模型分析经济时间序列
R语言使用马尔可夫链对营销中的渠道归因建模
matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计
R语言隐马尔可夫模型HMM识别不断变化的股票市场条件
R语言中的隐马尔可夫HMM模型实例
用机器学习识别不断变化的股市状况—隐马尔科夫模型(HMM)
Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型
MATLAB中的马尔可夫区制转移(Markov regime switching)模型
Matlab马尔可夫区制转换动态回归模型估计GDP增长率
R语言马尔可夫区制转移模型Markov regime switching
stata马尔可夫Markov区制转移模型分析基金利率
R语言如何做马尔可夫转换模型markov switching model
R语言隐马尔可夫模型HMM识别股市变化分析报告
R语言中实现马尔可夫链蒙特卡罗MCMC模型