model
{
mu ~ dnorm(1,0.04)
for( i in 2 : n ) {
v ~ dnorm(vmean,ivd)
}
kt ~ dnorm( 0.0, 1.0)
k ~ dnorm( 0.0, 1.0)
theta <- kt / k
for( i in 2 : n ) {
ksy ~ dnorm(muy,tauy)
}
for( i in 2 : n ) {
j ~ dbern(lambda)
}
lambda ~ dbeta(2,40)
sigy2 <- 1 / tauy
tauy ~ dgamma( 5.0,20)
muy ~ dnorm( 0.0,0.01)
for( i in 2 : n ) {
rmean <- mu + ksy * j+rho/sqrt(sigv2)*(v-v[i-1]-kt+k*v[i-1])
}
tauv ~ dgamma( 2.5, 0.1)
sigv2 <- 1 / tauv
for( i in 2 : n ) {
vmean <- v[i - 1] +( kt-k* v[i - 1]) +sqrt(sigv2)* rho * (y - y[i - 1] - mu - ksy * j)
}
for( i in 2 : n ) {
ivd <- tauv/((1-rho*rho)*v[i-1])
}
for( i in 2 : n ) {
ird <- 1/(v[i-1]*(1-rho*rho))
}
for( i in 2 : n ) {
r <- y-y[i-1]
r ~ dnorm(rmean,ird)
}
rho ~ dunif(-1,1)
v[1] <- 0.5
}
这是svj程序,我想要估计初始波动率及其它参数(期权定价中要用到),v[1]<-0.5 应该是不对的吧?(这样等于设了初始波动率为0.5,而我是想估计它 )
但如果不写v[1]<-0.5 就说我没有定义v,程序无法运行


雷达卡



京公网安备 11010802022788号







