In [5]:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from msm import BinomialMarkovSwitchingMultifractal

matplotlib.style.use('ggplot')

# define MSM model
m = BinomialMarkovSwitchingMultifractal(8,1.4,0.5,0.95,3)

# run simulation
rset, mset = m.simulate(6000)

# compute price from log(return)
pset = [20.0]
for lr in rset:
    p0 = pset[-1]
    pset.append(p0*np.exp(lr)) # FIXME: unstable results

# plot
plt.figure(figsize=(16, 2))
plt.plot(pset, 'k-')
plt.show()

plt.figure(figsize=(16, 2))
plt.plot(rset, 'k-')
plt.show()

for k in range(mset.shape[1]):
    plt.figure(figsize=(16, 1))
    plt.plot(mset[:,k], 'k-')
    plt.show()



In [ ]: