关于算法:R语言隐马尔可夫模型HMM识别不断变化的股票市场条件

31次阅读

共计 1435 个字符,预计需要花费 4 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=3784

理解不同的市场情况如何影响您的策略体现可能会对您的收益产生微小的影响。

某些策略在稳定激烈的市场中体现良好,而其余策略则须要强劲而安稳的趋势,否则将面临长时间的上涨危险。搞清楚什么时候开始或进行交易策略,调整危险和资金治理技巧,甚至设置进入和退出条件的参数都取决于市场“状态”或以后的状况。

可能辨认不同的市场状态并相应地扭转您的策略可能意味着市场胜利和失败之间的区别。在本文中,咱们将探讨如何通过应用一种弱小的机器学习算法来辨认不同的市场区制(机制),称为“隐马尔可夫模型”。

隐马尔可夫模型

马尔科夫模型是一个概率过程,看以后的状态来预测下一个状态。一个简略的例子就是看天气。假如咱们有三个天气条件(也称为区制或机制):多雨,阴天,晴天。如果明天下雨,马尔可夫模型寻找每个不同的天气情况产生的概率。例如,今天可能持续下雨的概率较高,多云的可能性略低,晴天可能性较小。

明天的天气今天的天气变动的概率

多雨的多雨的 65%

多雨的多云的 25%

多雨的晴朗 10%

多云的多雨的 55%

多云的多云的 20%

多云的晴朗 25%

晴朗多雨的 10%

晴朗多云的 30%

晴朗晴朗 60%

这仿佛是一个非常简单的过程,但其复杂性在于不晓得每个状态转移的概率,以及如何解释这些随工夫变动的概率。这就是隐马尔可夫模型(HMM)发挥作用的中央。他们可能预计每个状态的转移概率,而后依据目前的状况输入最可能的状态。

咱们能够将市场定义为看涨,看跌,安稳,或者稳定率高或者低,或者咱们晓得的一些因素的综合影响咱们的策略的体现,而不是天气条件。

构建实在数据模型

咱们正在寻找基于这些因素的不同的市场机制,而后咱们能够用它来优化咱们的交易策略。为此,咱们将应用 EUR / USD 数据来构建模型。

首先,构建咱们的数据集。

ModelData <-data.frame(LogReturns,ATR)# 为咱们的 HMM 模型创立数据


ModelData <-ModelData [-c(1:14),]# 删除计算指标数据


colnames(ModelData)< - c("LogReturns","ATR")# 命名咱们的列

咱们将对数收益率和 ATR 设置为咱们的因变量。应用咱们刚刚构建的数据框,要设置 3 个不同的状态,并将因变量散布设置为高斯分布。

HMMfit <-fit(HMM,verbose = FALSE)# 将咱们的模型增加到数据集中

转移矩阵给了咱们从一个状态动到下一个状态的概率。

HMMpost <-posterior(HMMfit)# 查找咱们的数据集中每个状态的后验概率

咱们能够看到,咱们当初有每个状态的概率以及最高概率类别。

让咱们看看发现了什么:

每个状态的概率:

咱们能够看到,状态 3 往往是高稳定和大幅度稳定的期间,状态 2 的特点是中等稳定,状态 1 是低稳定的。

隐马尔可夫模型是弱小的工具,能够让你洞察一直变动的市场状态。

 还有问题?分割咱们!


最受欢迎的见解

1.用 R 语言模仿混合制排队随机服务排队零碎

2. R 语言中应用排队论预测等待时间

3. R 语言中实现马尔可夫链蒙特卡罗 MCMC 模型

4. R 语言中的马尔科夫机制转换 (Markov regime switching) 模型

5.matlab 贝叶斯隐马尔可夫 hmm 模型

6.用 R 语言模仿混合制排队随机服务排队零碎

7.Python 基于粒子群优化的投资组合优化

8. R 语言马尔可夫转换模型钻研交通伤亡人数事变预测

9.用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用

正文完
 0