RQuantLib 正在返回 Vega、Theta、Rho、DivRho NA

RQuantLib is returning Vega, Theta, Rho, DivRho NA

我正在调用 RQuantLib 的 AmericanOption 方法来获取 Greeks 作为

print( AmericanOption(type = 'call', 
                            underlying = 100,
                            strike = 100,
                            dividendYield = 0.02,
                            riskFreeRate = 0.0023,
                            maturity = 0.5,
                            volatility= 0.4, 
                            timeSteps = 150, 
                            gridPoints = 149,
                            engine="CrankNicolson"))

对于上述参数,我们得到以下希腊人 AmericanOption

估值简明摘要
  value   delta   gamma    vega   theta     rho  divRho 
10.8149  0.5429  0.0141      NA      NA      NA      NA

为什么有些值是 NA ?

我是否发送了错误的值?

我需要进行哪些更改才能获得所有有效值?

你必须用数字计算剩下的希腊人。

Dirk's answer to a similar question 添加一点:根据设计,QuantLib 函数(RQuantLib 所依赖的函数)仅 return 可以廉价计算的希腊字母。例如,欧式期权通过解析公式定价,并且可以 return 所有希腊人通过 return 计算其衍生品(也由解析公式给出,因此计算成本低)。

相反,美式期权的价格是通过 finite-difference 模拟计算的,因此没有公式可以区分。模拟的机制使得计算和 return Delta 和 Gamma 变得容易——如您所见,它们是 returned——但其他希腊人必须通过改变输入和重新定价期权来计算数字;再次查看 Dirk 的回答或 this screencast I recorded 中链接的线程。这并不便宜,所以留给用户来评估要计算的希腊字母和准确度。