全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
7168 2
2019-01-11
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) :
  被替换的项目不是替换值长度的倍数
请问应该怎么修改啊

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-1-11 13:32:51

问题1: tmp(i - 1, j)的调用方法对吗?
问题2:stock[i - 1, j] * tmp(i - 1, j) 可以相乘吗?
问题3:stock(i,j)?opt(i,j)?是什么
建议你先补下R基础
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-1-11 16:27:32
zhou1_20 发表于 2019-1-11 13:32
问题1: tmp(i - 1, j)的调用方法对吗?
问题2:stock * tmp(i - 1, j) 可以相乘吗?
问题3:stock(i,j ...
问题三应该是用[ ],问题1和2该怎么解决啊?不太懂,这段代码是从matlab代码改过来的。能指点下吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群