繁体   English   中英

在使用 R 的公式中使用随机生成的数字需要帮助

[英]Need help using randomly generated numbers in a formula using R

这是我下面的代码,我得到的只是一个相同值的列表,似乎 R 并没有采用随机生成的值,运行等式然后给我结果。

montecarlo = function(r,v,t,x,k,n) {
   y = rnorm(n)
   stockprice = x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))
   MCOP = exp(-r*t)*(stockprice-k)
   return(MCOP)
}

如果我设置 n = 100,此代码的输出只是单个值 100 次

让我们添加一些print()语句(您也可以使用debug(montecarlo)以交互方式逐步执行该函数):

montecarlo = function(r,v,t,x,k,n) {
   y = rnorm(n)
   p = (-v*sqrt(t)*y)+((r-(.5*v^2))*t)
   print(range(p))
   stockprice = x*exp(p)
   print(range(stockprice))   
   MCOP = exp(-r*t)*(stockprice-k)
   return(MCOP)
}

现在试试这个功能:

set.seed(101)
m <- montecarlo(.45,65,1,30,29,100)
[1] -2232.440 -1961.294  ## exponent values
[1] 0 0                  ## stockprice values

因此指数具有如此大(负)的幅度,以至于指数函数下溢为零。 由于随机值仅通过stockprice进入表达式,因此它们会被清零。

看起来这里的罪魁祸首是v ,您已将其设置为 65,因此v^2是一个很大的数字...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM