McPrice <- function(x = 1, t =0, T=1, r=1 ,sigma =1, M = 1000, N=5
) {
tmp<- function(x = 1, t =0, T=1, r=1 ,sigma =1, M = 1000, N=5
) {exp((r-0.5*sigma^2)*(T/N) + sigma*sqrt(T/N)*rnorm(M*N))
}
stock <-matrix(NA, N+1, M)
S0 <- stock[1, ]
for( i in seq(2,N+1,by=1)){
for( j in seq(1,M,by = 1)){
stock[i, j] = stock[i -1, j]*tmp(i-1,j)
}
}
opt2 <- matrix(NA, N+1, M)
for( i in seq(2,N+1,by=1)){
for( j in seq(1,M,by = 1)){
if (stock(i,j)>K)
{opt(i,j)=(stock(i,j)-K)*exp(-r*dt*(i-1))
}else {opt(i, j) = 0
}
}
}
option = max(opt)
price=sum(option)/M
}
S0 <-100
K<- 99
r<- 0.05
T<-1
N<-5
M<-1000
sigma<-0.25
McPrice(x=S0, t=0, T=T,r=r, sigma= sigma, M=M, N=N)
这段代码的第一个循环部分
for( i in seq(2,N+1,by=1)){
for( j in seq(1,M,by = 1)){
stock[i, j] = stock[i -1, j]*tmp(i-1,j)
运行后显示Error in stock[i, j] <- stock[i - 1, j] * tmp(i - 1, j) :
被替换的项目不是替换值长度的倍数
请问应该怎么修改啊


雷达卡



京公网安备 11010802022788号







