2

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

非常感谢您的意见!

我采取的步骤概述如下。

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

n = 10000; m = 100; T = 5; S = 100; X = 100; r = 0.1; v = 0.1; d = 0
pat = matrix(NA,n,m+1)
pat[,1] = S
dt = T/m
for(i in 1:n)
{
  for (j in seq(2,m+1))
  {
    pat[i,j] = pat[i,j-1] + pat[i,j-1]*((r-d)* dt + v*sqrt(dt)*rnorm(1))
  }
}

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(看跌)。Black Scholes Call Price(因为没有股息收益率)为 39.42。

正如我所说,任何输入都将受到高度赞赏。非常感谢您!

万事如意!

4

1 回答 1

1

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

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

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

于 2018-04-25T12:29:18.763 回答