我正在调用RQuantLib的AmericanOption方法来将希腊人作为
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?
我发错了吗?
我需要进行哪些更改才能获得所有有效值?
答案 0 :(得分:0)
你必须以数字方式计算剩余的希腊人。
向Dirk's answer to a similar question添加一个位:根据设计,QuantLib函数(RQuantLib所依赖的)仅返回可以廉价计算的希腊字母。例如,欧洲期权通过分析公式定价,并且可以通过返回其衍生物(也通过分析公式给出,因此便宜计算)来返回所有希腊人。
相反,美国期权的价格是通过有限差分模拟计算出来的,所以没有公式可以区分。模拟的机制使得计算和返回返回的Delta和Gamma变得容易,如您所见 - 但其他希腊人必须通过更改输入和重新定价选项来数值计算;再看看Dirk的答案或this screencast I recorded中链接的主题。这并不便宜,因此留给能够评估希腊人计算什么以及准确度的用户。