您好我希望能够帮助整合基于随机变量的函数。该函数用于获得连续分布的期望值。
这是我到目前为止的代码。
montecarlo = function(r,v,t,x,k) {
y = rnorm(1)
e = (y*(x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k))
MCOP=exp(-r*t)*integrate(e, lower = -Inf, upper = Inf)
if((x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k) > 0) {
return(MCOP)
} else {
return(0)
}
}
如果我输入例如:
montecarlo(.03, .65, 3, 34, 30)
我收到一条错误消息:
get中的错误(as.character(FUN),mode =" function",envir = envir):
对象' e'模式'功能'没找到
答案 0 :(得分:0)
您的代码有多个问题,但导致错误的第一个问题是e
应该是一个函数。
即,而不是
y = rnorm(1)
e = (y*(x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k))
你应该
e = function(y){y*(x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k)}