请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3365836 新帖:11

用python 模拟GARCH 随机过程

我是一个土豆发表于:5 月 10 日 07:17回复(1)

import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
import scipy as sp

sp.random.seed(12345)

n=1000# n is the number of observations
n1=100# we need to drop the first seveal observations
n2=n n1# sum of two numbers
alpha=(0.1,0.3)# GARCH (1,1) coefficients alpha0 and alpha1, see Equation (3)
beta=0.2
errors=sp.random.normal(0,1,n2)
t=sp.zeros(n2)
t[0]=sp.random.normal(0,sp.sqrt(alpha[0]/(1-alpha1)),1)

for i in range(1,n2-1):
t[i]=errors[i]sp.sqrt(alpha[0] alpha1errors[i-1]2 beta*t[i-1]2)

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

x=range(n)
plt.plot(x,y)

garch1.png

import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
import scipy as sp

sp.random.seed(12345)

n=1000# n is the number of observations
n1=100# we need to drop the first seveal observations
n2=n+n1# sum of two numbers
alpha=(0.1,0.3)# GARCH (1,1) coefficients alpha0 and alpha1, see Equation (3)
beta=0.2
errors=sp.random.normal(0,1,n2)
t=sp.zeros(n2)
t[0]=sp.random.normal(0,sp.sqrt(alpha[0]/(1-alpha[1])),1)

for i in range(1,n2-1):
    t[i]=errors[i]*sp.sqrt(alpha[0]+alpha[1]*errors[i-1]**2+beta*t[i-1]**2)

y=t[n1-1:-1]# drop the first n1 observations
#title('GARCH (1,1) process')
x=range(n)
plt.plot(x,y)
[<matplotlib.lines.Line2D at 0x7f7e39a26c18>]
 

全部回复

0/140

量化课程

    移动端课程