我RQuantlib
在 R 中使用包来计算隐含波动率。作为函数的输入,EuropeanOptionImpliedVolatility
我使用 TTM 天数除以 365。但如果我使用输出的隐含波动率使用手工制作的 Black Scholes 函数计算期权价格,我会以不同的值结束。
我发现原因在于europeanOptionImpliedVolatilityEngine
,它通过使用转换来转换输入的小数年
int(maturity*360 + 0.5);
因此,在某些情况下,这最终会将传递给 C 代码函数的 TTM 值偏移 1 天,在我的情况下,大约 70% 的数据得到了日期偏移。
x=OptGreeks$TTM/365
y=floor(x*360+0.5)
z=OptGreeks$TTM - y
table(z)
输出
z
0 1
2636 4910
知道为什么要这样做,以及获得正确天数(TTM)而不是这种异常情况的任何措施吗?希望有人听。