Hidden Markov Model (HMM)

Hi guys ,

I'm a beginner in HMM ...I've read that It makes a Detection Regime. First of all , what is a detection regime meaning ?

I've read that It prevents my algorithm from high volatility and thus It doesn't trade on it . So it is a way to handle better Money Management.

import pandas as pd

data = web.DataReader("^GSPC","yahoo",start = "2004-11-19",end = "2018-11-19")

rets = data['Close'].pct_change()[1:]
volume = data['Volume'][1:]
dates = data.index[1:]
close_v = volume

from hmmlearn import hmm
import matplotlib.pyplot as plt

model = hmm.GaussianHMM(n_components=2, covariance_type="full", n_iter=1000)

import numpy as np

X = np.column_stack([rets, np.log(volume)])

model.fit(X)
hidden_states = model.predict(X)

from matplotlib import cm

def plot_in_sample_hidden_states(hmm_model, df):
"""
the in-sample hidden states as a mechanism
to understand the market regimes.
"""
# Predict the hidden states array
hidden_states = hmm_model.predict(X)
# Create the correctly formatted plot
fig, axs = plt.subplots(
hmm_model.n_components,
sharex=True, sharey=True
)
colours = cm.rainbow(
np.linspace(0, 1, hmm_model.n_components)
)
for i, (ax, colour) in enumerate(zip(axs, colours)):
ax.plot_date(
".", linestyle='none',
c=colour
)
ax.set_title("Hidden State #%s" % i)
ax.grid(True)
plt.show()

plot_in_sample_hidden_states(model, data)


I've taken the code of this publication :

https://www.quantopian.com/posts/using-hidden-state-markov-model-and-support-vector-machine-to-detect-market-regimes

I got an error in the last line as following : "Boolean index has wrong length: 3524 instead of 3525"

Also , I'm working on Jupyter not QUANTOPIAN

Regards
Iheb