我更像是 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。
正如我所说,任何输入都将受到高度赞赏。非常感谢您!
万事如意!