10.12.2019 Views

Python for Finance

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Volatility, Implied Volatility, ARCH, and GARCH

Here, is the variance at time t, is the ith coefficient, is the squared error

term for the period of t-i, and q is the order of error terms. When q is 1, we have the

simplest ARCH (1) process as follows:

Simulating an ARCH (1) process

It is a good idea that we simulate an ARCH (1) process and have a better

understanding of the volatility clustering, which means that high volatility is usually

followed by a high-volatility period while low volatility is usually followed by a lowvolatility

period. The following code reflects this phenomenon:

import scipy as sp

import matplotlib.pyplot as plt

#

sp.random.seed(12345)

n=1000 # n is the number of observations

n1=100 # we need to drop the first several observations

n2=n+n1 # sum of two numbers

#

a=(0.1,0.3) # ARCH (1) coefficients alpha0 and alpha1, see Equation

(3)

errors=sp.random.normal(0,1,n2)

t=sp.zeros(n2)

t[0]=sp.random.normal(0,sp.sqrt(a[0]/(1-a[1])),1)

for i in range(1,n2-1):

t[i]=errors[i]*sp.sqrt(a[0]+a[1]*t[i-1]**2)

y=t[n1-1:-1] # drop the first n1 observations

#

plt.title('ARCH (1) process')

x=range(n)

plt.plot(x,y)

plt.show()

[ 536 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!