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 [ ]: