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 中链接的线程。这并不便宜,所以留给用户来评估要计算的希腊字母和准确度。
我正在调用 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 中链接的线程。这并不便宜,所以留给用户来评估要计算的希腊字母和准确度。