简单的美式期权定价通过蒙特卡罗模拟在R-结果太高

简单的美式期权定价通过蒙特卡罗模拟在R-结果太高,r,finance,montecarlo,financialinstrument,R,Finance,Montecarlo,Financialinstrument,我更像是R方面的新手,一直在尝试使用简单的蒙特卡罗模拟(无回归等)建立美式期权(看涨期权或看跌期权)定价公式。虽然该准则适用于欧式期权,但它似乎高估了美式期权的价值(与二项式/三项式树和其他定价模型相比) 我将非常感谢你的意见 我采取的步骤概述如下 1.)用m+1步(几何布朗运动)模拟n条股票价格路径: 2.)我通过反向归纳法计算看涨期权、看跌期权和贴现的收益矩阵: # Put option payP = matrix(NA,n,m+1) payP[,m+1] = pmax(X-pat[,m+1

我更像是R方面的新手,一直在尝试使用简单的蒙特卡罗模拟(无回归等)建立美式期权(看涨期权或看跌期权)定价公式。虽然该准则适用于欧式期权,但它似乎高估了美式期权的价值(与二项式/三项式树和其他定价模型相比)

我将非常感谢你的意见

我采取的步骤概述如下

1.)用m+1步(几何布朗运动)模拟n条股票价格路径:

2.)我通过反向归纳法计算看涨期权、看跌期权和贴现的收益矩阵:

# Put option
payP = matrix(NA,n,m+1)
payP[,m+1] = pmax(X-pat[,m+1],0)
  for (j in seq(m,1)){
    payP[,j] = pmax(X-pat[,j],payP[,j+1]*exp(-r*dt))
  }

# Call option
payC = matrix(NA,n,m+1)
payC[,m+1] = pmax(pat[,m+1]-X,0)
for (j in seq(m,1)){
  payC[,j] = pmax(pat[,j]-X,payC[,j+1]*exp(-r*dt))
}
3.)我将期权价格计算为时间0时的平均(平均)收益:

mean(payC[,1])
mean(payP[,1])
在上例中,发现买入价约为44.83,卖出价约为3.49。然而,按照三项式树方法(n=250步),价格应为39.42(看涨)和1.75(看跌)。 布莱克-斯科尔斯买入价(因为没有股息收益率)为39.42

正如我所说,我们非常感谢您的任何意见。提前非常感谢


一切都好

我认为您的问题更像是一个概念问题,而不是一个实际的编码问题

您的代码目前所做的是,在事后看来,在整个模拟股票价格路径上行使美式期权需要最佳时间点。它没有考虑到一旦美式期权的内在价值高于其计算的期权价格,你就行使它——这意味着,你放弃了在未来行使它的机会,因为内在价值和期权价格之间的差异可能更大(取决于已实现的股票价格变动)


因此,您高估了期权价格。

您确定10000条路径就足够了吗?运行1000000次迭代(路径)而不是10000次不会产生显著变化(即45.11(看涨)和3.45(看跌))。
mean(payC[,1])
mean(payP[,1])