全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1418 1
2019-03-27

本人也是刚接触代码,这也是第一次写,比较简陋,请见谅。问题是最后一个for循环每次运行只会跑一遍,导致price与profit的数据只能出现前面几个,后面的数据无法跑出来,请问问题在哪里,怎么解决?

K=50

S0=50;        #initial price S0

mu=0.04;    #drift mu

sigma=0.1;  # volatility sigma

T=1;           #1 year

NSteps=20;

NReps=2;

SPaths = matrix(NA,NReps,NSteps+1);

d1 = matrix(NA,NReps,NSteps+1);

d2 = matrix(NA,NReps,NSteps+1);

N1 = matrix(NA,NReps,NSteps+1);

N2 = matrix(NA,NReps,NSteps+1);

c = matrix(NA,NReps,NSteps+1);

qty = matrix(NA,NReps,NSteps+1);

price = matrix(NA,NReps,NSteps+1);

profit = matrix(NA,NReps,NSteps+1);

QTY = matrix(NA,NReps,NSteps+1);

SPaths[,1] = S0;

dt = T/NSteps

nudt = (mu-0.5*sigma^2)*dt

sidt = sigma*sqrt(dt)

for (i in 1:NReps){

  for(j in 1:NSteps){

   SPaths[i,j+1] = SPaths[i,j]*exp(nudt + sidt*rnorm(1))

   time=(NSteps-j+1)/NSteps

   d1[i,j]=(log(SPaths[i,j]/K)+(mu+0.5*sigma^2)*time)/(sigma*sqrt(time))

   d2[i,j]=(log(SPaths[i,j]/K)+(mu-0.5*sigma^2)*time)/(sigma*sqrt(time))

   N1[i,j]=pnorm(d1[i,j])

   N2[i,j]=pnorm(d2[i,j])

   c[i,j]=SPaths[i,j]*N1[i,j]-K*exp(-mu*time)*N2[i,j]

   QTY[i,j]=1000*N1[i,j]

  }

}

qty[,1]=SPaths[,1]*QTY[,1];

price[,1]=qty[,1];

profit[,1]=(exp(mu/NSteps)-1)*price[,1];

for (i in 1:NReps){

  for(j in 1:NSteps){

   qty[i,j+1]=(QTY[i,j+1]-QTY[i,j])*SPaths[i,j+1]

   price[i,j+1]=price[i,j]+profit[i,j]+qty[i,j+1]

   profit[i,j]=(exp(mu/NSteps)-1)*price[i,j]

  }

}


二维码

扫码加我 拉你入群

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

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

全部回复
2019-3-27 17:22:40
谱尼测试是一家专业的第三方检测公司
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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